DocBook|Search
Class Reference
%Compiler.COS.Traveler
   
Server:basexml
Instance:SOAXML
User:UnknownUser
 
-
  [USER] >  [%Compiler] >  [COS] >  [Traveler]
Private  Storage  

class %Compiler.COS.Traveler extends %Compiler.COS.Visitor

This class can be used to test the traversal of a parse tree. It simply notifies the caller that a node is being descended through or being visited.

Inventory

Parameters Properties Methods Queries Indices ForeignKeys Triggers
62


Summary

Properties
blockTypeStack codeStack compileParameter contextStack
errorQueue exceptionDepth exceptionStack flo
formalSpec importPackages opStack settings
warningQueue

Methods
%%OIDGet %AddToSaveSet %BindExport %ClassIsLatestVersion
%ClassName %ConstructClone %DispatchClassMethod %DispatchGetModified
%DispatchGetProperty %DispatchMethod %DispatchSetModified %DispatchSetMultidimProperty
%DispatchSetProperty %Extends %GetParameter %IsA
%IsModified %New %NormalizeObject %ObjectModified
%OriginalNamespace %PackageName %RemoveFromSaveSet %SerializeObject
%SetModified %ValidateObject compile compileStream
finalizeCode interactive parseName v1
v10 v11 v12 v13
v14 v15 v16 v17
v18 v19 v2 v20
v21 v22 v23 v24
v25 v26 v27 v28
v29 v3 v30 v31
v32 v33 v34 v35
v36 v37 v38 v39
v4 v40 v41 v42
v43 v44 v45 v46
v47 v48 v49 v5
v50 v51 v52 v53
v54 v55 v56 v57
v58 v59 v6 v60
v7 v8 v9 visit
visitInit visited

Subclasses
%Compiler.COS.Refactor

Methods

• method v1(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
PlainBlock(1): child list-Line NOT GENERATED - you MUST run makehptinc.pl if you edit this Used by %CPT.HPT.* classes. PROGRAM STRUCTURE
• method v10(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
UnknownPreProcessorCommand(10): ann string Snarf:1
• method v11(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
CommandSET(11): ann name CommandName:1, optional child PostCondition-Expression:1, optional child Arguments-CommandSETArguments:2 SET COMMAND
• method v12(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
CommandSETArguments(12): child list-CommandSETArgument
• method v13(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
CommandSETArgument(13): child Lhs-CommandSETArgLhs:1, child Rhs-Expression:2
• method v14(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
CommandSETArgLhs(14): ann bool IsMultiple:1, child list-SETTarget
• method v15(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
CommandIFLine(15): ann name CommandName:1, optional child Conditions-ListExpressions:1, optional child RestOfLine-ListLineElement:2 nodeclass SETTarget: LvnRef for now IF LINE COMMAND
• method v16(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
ListLineElements(16): child list-LineElement
• method v17(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
CommandIFBlock(17): child If-CommandIFBlockIf:1, optional child ListElseIf-ListCommandIFBlockElseIf:2, optional child Else-CommandIFBlockElse:3 IF CONSTRUCT COMMAND
• method v18(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
CommandIFBlockIf(18): ann name CommandName:1, optional child Conditions-ListExpressions:1, child BraceBlock:2 Conditions is omitted if empty
• method v19(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
CommandIFBlockElse(19): ann name CommandName:1, child BraceBlock:1
• method v2(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
PlainLine(2): optional ann name Label:1, optional child ListFormals:1, optional child Body-LineBody:2 CODE LINES
• method v20(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
CommandIFBlockElseIf(20): ann name CommandName:1, optional child Conditions-ListExpressions:1, child BraceBlock:2 Conditions is omitted if empty
• method v21(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
BraceBlock(21): child list-Line
• method v22(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
ListCommandIFBlockElseIf(22): child list-CommandIFBlockElseIf
• method v23(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
CommandWHILEBlock(23): ann name CommandName:1, child Conditions-ListExpressions:1, child BraceBlock:2 WHILE CONSTRUCT COMMAND
• method v24(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
CommandDOBlock(24): ann name CommandName:1, child BraceBlock:1, child WhilePart-CommandDOBlockWhile:2 DO CONSTRUCT COMMAND
• method v25(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
ListExpressions(25): child list-Expression EXPRESSIONS
• method v26(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
Argument(26): ann string Snarf:1
• method v27(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
LiteralString(27): ann string Value:1 nodeclass ExprOrTerm: Expression | Term nodeclass Term: LvnRef | LiteralString | LiteralNumber | ParenExpr | SystemVar | ObjectRef | GvnRef | SystemFun | Indirection | ExtrFunCall | SsvnRef | VisualM | SlotVar | MacroCall | PPFunc VisualM b/w "_" monops: + - '
• method v28(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
LiteralNumber(28): ann string Value:1
• method v29(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
ParenExpr(29): child Expr-Expression:1
• method v3(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
LineBody(3): optional child ListLineElements:1, optional child LineCommand:2
• method v30(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
SystemVar(30): ann string VarName:1
• method v31(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
Subscripts(31): child ListExpressions:1
• method v32(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
ObjectRef(32): child ObjectRefBase:1, optional child ListMemberRefs:2
• method v33(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
ListMemberRefs(33): child list-MemberRef nodeclass ObjectRefBase: Term | PPClass | DotDotBase note: HPT only supports the following sorts of Term as an object base: LvnRef, ParenExpr, SystemVar (just to confirm: ObjectRef won't appear here either)
• method v34(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
MemberRef(34): ann name MemberName:1, optional child ActualParameters:1
• method v35(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
PPClass(35): ann name ClassKeywordName:1, child ListClassNameComponents:1
• method v36(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
ClassNameComponent(36): ann name Name:1
• method v37(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
DotDotBase(37): child MemberRef:1
• method v38(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
ActualParameters(38): child list-ActualParameter
• method v39(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
ByRefLvn(39): child LvnRef:1 nodeclass ActualParameter: Expression | ByRefLvn | Omitted
• method v4(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
CommandGeneral(4): ann name CommandName:1, optional child PostCondition-Expression:1, optional child Arguments-CommandGeneralArguments:2 nodeclass LineElement: Command COMMANDS not all commands have postconditions so an optional OmittedPostCondition child is used in these cases - no child will ever appear in the tree ... this means that we can fix the common annotation and child indices of non-construct command nodes :- CommandName is 1, PostCondition is 1, ListCommandArguments is 2 nodeclass Command: PlainCommand | BlockCommand nodeclass PlainCommand: CommandGeneral | CommandSET | CommandIFLine | CommandDO nodeclass BlockCommand: CommandIFBlock | CommandWHILEBlock
• method v40(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
Omitted(40):
• method v41(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
ListClassNameComponents(41): child list-ClassNameComponent NAMES
• method v42(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
GvnRef(42): optional ann name Name:1, optional child Environment:1, optional child Subscripts:2 the Name does not include the "^" Name and Environment are absent for a naked reference
• method v43(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
Environment(43): ann bool BracketsUsed:1, optional child Env1:1, optional child Env2:2
• method v44(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
CommandDO(44): ann name CommandName:1, optional child PostCondition-Expression:1, optional child Arguments-CommandDOArguments:2 DO COMMAND
• method v45(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
CommandDOArguments(45): child list-CommandDOArgument
• method v46(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
SystemFunGeneral(46): ann string FunName:1, child Arguments-ListExpressions:1 SYSTEM FUNCTIONS nodeclass SystemFun: SystemFunGeneral | SystemFunCASE | SystemFunDATA | SystemFunGET | SystemFunORDER | SystemFunSELECT
• method v47(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
CommandDOBlockWhile(47): ann name CommandName:1, child Conditions-ListExpressions:1
• method v48(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
SystemFunORDER(48): ann string FunName:1, child Reference:1, optional child Direction-Expression:2, optional child Data-Reference:3
• method v49(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
SystemFunDATA(49): ann string FunName:1, child Reference:1, optional child Data-Reference:2
• method v5(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
Expression(5): child Lhs-ExprOrTerm:1, optional ann string DyOp:1, optional child Rhs-ExprOrTerm:2
• method v50(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
SystemFunGET(50): ann string FunName:1, child Reference:1, optional child Default-Expression:2
• method v51(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
SystemFunSELECT(51): ann string FunName:1, child list-SystemFunSELECTItem
• method v52(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
SystemFunSELECTItem(52): child Condition-Expression:1, child Result-Expression:2
• method v53(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
SystemFunCASE(53): ann string FunName:1, child Base-Expression:1, child Items-ListSystemFunCASEItems:2
• method v54(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
ListSystemFunCASEItems(54): child list-SystemFunCASEItem
• method v55(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
SystemFunCASEItem(55): optional child Test-Expression:1, child Result-Expression:2 the Test child can only be absent in the final Item in the parent list
• method v56(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
PPDim(56): ann name DimName:1, child ListLvns:1, optional child As-PPDimAs:2, optional child Assign-PPDimAssign:3 nodeclass Line: PreProcessorCommand | PlainLine PREPROCESSOR nodeclass PreProcessorCommand: PPDim | UnknownPreProcessorCommand
• method v57(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
Lvn(57): ann name Name:1
• method v58(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
ListLvns(58): child list-Lvn
• method v59(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
PPDimAs(59): ann name AsName:1, ann name CollectionTypeName:2, ann name OfName:3, ann enum CollectionType:4, child Class-ListClassNameComponents:1 CollectionTypeName and OfName are empty unless CollectionType is List or Array enum CollectionType: List:1, Array:2
• method v6(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
CommandGeneralArguments(6): child list-Argument
• method v60(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
PPDimAssign(60): child Expression:1
• method v7(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
ListFormals(7): child list-Formal
• method v8(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
Formal(8): ann bool Ampersand:1, ann name Name:2, ann bool Scoop:3, optional child Default-Expression:1 the default Expression will always be a Literal
• method v9(parseTree As %Compiler.Util.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
LvnRef(9): ann name Name:1, ann enum LvnType:2, optional child Subscripts:1 nodeclass CommandDOArgument: ObjectRef just that for now LOCAL/GLOBAL VARIABLES enum LvnType: Private:1, Public:2, Parameter:3
• method visit(parseTree As %Compiler.Informix.ParseTree, visit As %Integer, nodePtr As %Integer, parentPtr As %Integer)
This method could be included in a separate class but to keep visit() visit a parse tree node. This method is just a stub that could be used to perform the polymorphic dispatch based on the node type. The accept() method of the parse tree will actually dispatch based on node type.
• method visited()
visited() This is the exit interview - the parse tree has successfully visited all nodes in the tree and is ready to finish. This is the last visit method to be called. It is a good place to put end of code generation cycle processing.