pascalabcnet/TestSamples/CompilationSamples/SemanticTree.pas
Бондарев Иван e6e67c193c initial commit
2015-05-14 21:35:07 +02:00

2425 lines
60 KiB
ObjectPascal

unit SemanticTree;
interface
uses System, System.Collections.Generic, System.Reflection;
type node_kind = (basic, common, compiled);
node_location_kind = (in_function_location,in_class_location,in_namespace_location,in_block_location);
parameter_type = (value, &var);
polymorphic_state = (ps_static,ps_common, ps_virtual, ps_virtual_abstract);
runtime_statement_type = (invoke_delegate,ctor_delegate,begin_invoke_delegate,end_invoke_delegate);
SpecialFunctionKind = (spkNone,&New,Dispose,NewArray);
type_access_level = (tal_public,tal_internal);
type_special_kind =
(
none_kind,
array_kind,
enum_kind,
typed_file,
binary_file,
short_string,
array_wrapper,
&record,
set_type,
base_set_type,
diap_type,
text_file
);
field_access_level =
(
fal_private,
fal_internal,
fal_protected,
fal_public
);
generic_parameter_kind =
(
gpk_none,
gpk_class,
gpk_value
);
basic_function_type=
(
none,
iadd,
isub,
imul,
idiv,
imod,
igr,
ism,
igreq,
ismeq,
ieq,
inoteq,
ishl,
ishr,
ior,
inot,
ixor,
iand,
iunmin,
iinc,
idec,
isinc,
isdec,
iassign,
uiadd,
uisub,
uimul,
uidiv,
uimod,
uigr,
uism,
uigreq,
uismeq,
uieq,
uinoteq,
uishl,
uishr,
uior,
uinot,
uixor,
uiand,
uiunmin,
uiinc,
uidec,
uisinc,
uisdec,
uiassign,
badd,
bsub,
bmul,
bdiv,
bmod,
bgr,
bsm,
bgreq,
bsmeq,
beq,
bnoteq,
bshl,
bshr,
bor,
bnot,
bxor,
band,
bunmin,
binc,
bdec,
bsinc,
bsdec,
bassign,
sbadd,
sbsub,
sbmul,
sbdiv,
sbmod,
sbgr,
sbsm,
sbgreq,
sbsmeq,
sbeq,
sbnoteq,
sbshl,
sbshr,
sbor,
sbnot,
sbxor,
sband,
sbunmin,
sbinc,
sbdec,
sbsinc,
sbsdec,
sbassign,
sadd,
ssub,
smul,
sdiv,
smod,
sgr,
ssm,
sgreq,
ssmeq,
seq,
snoteq,
sshl,
sshr,
sor,
snot,
sxor,
sand,
sunmin,
sinc,
sdec,
ssinc,
ssdec,
sassign,
usadd,
ussub,
usmul,
usdiv,
usmod,
usgr,
ussm,
usgreq,
ussmeq,
useq,
usnoteq,
usshl,
usshr,
usor,
usnot,
usxor,
usand,
usunmin,
usinc,
usdec,
ussinc,
ussdec,
usassign,
ladd,
lsub,
lmul,
ldiv,
lmod,
lgr,
lsm,
lgreq,
lsmeq,
leq,
lnoteq,
lshl,
lshr,
lor,
lnot,
lxor,
land,
lunmin,
linc,
ldec,
lsinc,
lsdec,
lassign,
uladd,
ulsub,
ulmul,
uldiv,
ulmod,
ulgr,
ulsm,
ulgreq,
ulsmeq,
uleq,
ulnoteq,
ulshl,
ulshr,
ulor,
ulnot,
ulxor,
uland,
ulunmin,
ulinc,
uldec,
ulsinc,
ulsdec,
ulassign,
fadd,
fsub,
fmul,
fdiv,
fgr,
fsm,
fgreq,
fsmeq,
feq,
fnoteq,
funmin,
fassign,
dadd,
dsub,
dmul,
ddiv,
dgr,
dsm,
dgreq,
dsmeq,
deq,
dnoteq,
dunmin,
dassign,
boolgr,
boolsm,
boolgreq,
boolsmeq,
booleq,
boolnoteq,
boolor,
boolnot,
boolxor,
booland,
boolassign,
chargr,
charsm,
chargreq,
charsmeq,
chareq,
charnoteq,
cinc,
cdec,
csinc,
csdec,
charassign,
chartous,
chartoi,
chartoui,
chartol,
chartoul,
chartof,
chartod,
chartob,
chartosb,
chartos,
btos,
btous,
btoi,
btoui,
btol,
btoul,
btof,
btod,
btosb,
btochar,
sbtos,
sbtoi,
sbtol,
sbtof,
sbtod,
sbtob,
sbtous,
sbtoui,
sbtoul,
sbtochar,
stoi,
stol,
stof,
stod,
stob,
stosb,
stous,
stoui,
stoul,
stochar,
ustoi,
ustoui,
ustol,
ustoul,
ustof,
ustod,
ustob,
ustosb,
ustos,
ustochar,
itol,
itof,
itod,
itob,
itosb,
itos,
itous,
itoui,
itoul,
itochar,
uitol,
uitoul,
uitob,
uitosb,
uitos,
uitous,
uitoi,
uitof,
uitod,
uitochar,
ltof,
ltod,
ltob,
ltosb,
ltos,
ltous,
ltoi,
ltoui,
ltoul,
ltochar,
ultob,
ultosb,
ultos,
ultous,
ultoi,
ultoui,
ultol,
ultochar,
ultof,
ultod,
ftod,
ftob,
ftosb,
ftos,
ftous,
ftoi,
ftoui,
ftol,
ftoul,
ftochar,
dtob,
dtosb,
dtos,
dtous,
dtoi,
dtoui,
dtol,
dtoul,
dtof,
dtochar,
objassign,
objeq,
objnoteq,
objtoobj,
boolinc,
booldec,
boolsinc,
boolsdec,
booltoi,
enumgr,
enumgreq,
enumsm,
enumsmeq
);
type ISemanticVisitor = interface;
IDocument = interface
{ Properties }
property file_name: string read;
end;
ILocation = interface
{ Properties }
property begin_column_num: integer read;
property begin_line_num: integer read;
property document: IDocument read;
property end_column_num: integer read;
property end_line_num: integer read;
end;
ISemanticNode = interface
{ Methods }
procedure visit(visitor: ISemanticVisitor);
end;
IDefinitionNode = interface (ISemanticNode)
{ Properties }
property Documentation: String read;
end;
ILocated = interface
{ Properties }
property Location: ILocation read;
end;
IStatementNode = interface (ISemanticNode, ILocated)
end;
ICommonFunctionNode = interface;
ICommonTypeNode = interface;
ITypeNode = interface (IDefinitionNode, ISemanticNode)
{ Properties }
property base_type: ITypeNode read;
property common_generic_function_container: ICommonFunctionNode read;
property element_type: ITypeNode read;
property generic_type_container: ICommonTypeNode read;
property ImplementingInterfaces: List<ITypeNode> read;
property is_class: Boolean read;
property is_generic_parameter: Boolean read;
property is_generic_type_definition: Boolean read;
property is_value_type: Boolean read;
property IsAbstract: Boolean read;
property IsInterface: Boolean read;
property name: String read;
property NodeKind: node_kind read;
property TypeSpecialKind: type_special_kind read;
end;
IParameterNode = interface;
IFunctionNode = interface (IDefinitionNode, ISemanticNode)
{ Properties }
property generic_parameters_count: Int32 read;
property is_generic_function: Boolean read;
property name: String read;
property NodeKind: node_kind read;
property NodeLocationKind: node_location_kind read;
property parameters: array of IParameterNode read;
property return_value_type: ITypeNode read;
end;
ICommonFunctionConstantDefinitionNode = interface;
ICommonNestedInFunctionFunctionNode = interface;
ILocalVariableNode = interface;
ICommonFunctionNode = interface (IFunctionNode, IDefinitionNode, ISemanticNode, ILocated)
{ Properties }
property constants: array of ICommonFunctionConstantDefinitionNode read;
property function_code: IStatementNode read;
property functions_nodes: array of ICommonNestedInFunctionFunctionNode read;
property generic_params: List<ICommonTypeNode> read;
property return_variable: ILocalVariableNode read;
property _SpecialFunctionKind: SpecialFunctionKind read;
property var_definition_nodes: array of ILocalVariableNode read;
end;
IClassMemberNode = interface
{ Properties }
property comperehensive_type: ITypeNode read;
property _field_access_level: field_access_level read;
property _polymorphic_state: polymorphic_state read;
end;
ICommonClassMemberNode = interface (IClassMemberNode)
{ Properties }
property common_comprehensive_type: ICommonTypeNode read;
end;
ICommonMethodNode = interface (ICommonFunctionNode, IFunctionNode, IDefinitionNode, ISemanticNode, ILocated, ICommonClassMemberNode, IClassMemberNode)
{ Properties }
property is_constructor: Boolean read;
property is_final: Boolean read write;
property newslot_awaited: Boolean read write;
property overrided_method: IFunctionNode read;
end;
IExpressionNode = interface (IStatementNode, ISemanticNode, ILocated)
{ Properties }
property &type: ITypeNode read;
end;
IVAriableDefinitionNode = interface (IDefinitionNode, ISemanticNode)
{ Properties }
property inital_value: IExpressionNode read;
property name: String read;
property NodeLocationKind: node_location_kind read;
property &type: ITypeNode read;
end;
IParameterNode = interface (IVAriableDefinitionNode, IDefinitionNode, ISemanticNode)
{ Properties }
property &function: IFunctionNode read;
property is_params: Boolean read;
property _parameter_type: parameter_type read;
end;
ILabelNode = interface (IDefinitionNode, ISemanticNode, ILocated)
{ Properties }
property name: String read;
end;
IGenericInstance = interface
{ Properties }
property generic_parameters: List<ITypeNode> read;
end;
IAddressedExpressionNode = interface (IExpressionNode, IStatementNode, ISemanticNode, ILocated)
end;
IConstantNode = interface (IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property value: Object read;
end;
IArrayConstantNode = interface (IConstantNode, IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property ElementType: ITypeNode read;
property ElementValues: array of IConstantNode read;
end;
IArrayInitializer = interface (IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property ElementType: ITypeNode read;
property ElementValues: array of IExpressionNode read;
end;
IAsNode = interface (IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property left: IExpressionNode read;
property right: ITypeNode read;
end;
IBasicFunctionNode = interface (IFunctionNode, IDefinitionNode, ISemanticNode)
{ Properties }
property _basic_function_type: basic_function_type read;
end;
IFunctionCallNode = interface (IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property &function: IFunctionNode read;
property last_result_function_call: Boolean read write;
property real_parameters: array of IExpressionNode read;
end;
IBasicFunctionCallNode = interface (IFunctionCallNode, IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property basic_function: IBasicFunctionNode read;
end;
IBasicParameterNode = interface (IParameterNode, IVAriableDefinitionNode, IDefinitionNode, ISemanticNode)
end;
IPropertyNode = interface (IDefinitionNode, ISemanticNode)
{ Properties }
property comprehensive_type: ITypeNode read;
property get_function: IFunctionNode read;
property name: String read;
property _node_kind: node_kind read;
property parametres: array of IParameterNode read;
property property_type: ITypeNode read;
property set_function: IFunctionNode read;
end;
IBasicPropertyNode = interface (IPropertyNode, IDefinitionNode, ISemanticNode)
end;
IBasicTypeNode = interface (ITypeNode, IDefinitionNode, ISemanticNode)
end;
IBoolConstantNode = interface (IConstantNode, IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property constant_value: Boolean read;
end;
IByteConstantNode = interface (IConstantNode, IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property constant_value: Byte read;
end;
IIntConstantNode = interface (IConstantNode, IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property constant_value: Int32 read;
end;
ICaseRangeNode = interface (IStatementNode, ISemanticNode, ILocated)
{ Properties }
property high_bound: IIntConstantNode read;
property lower_bound: IIntConstantNode read;
end;
ICaseVariantNode = interface (IStatementNode, ISemanticNode, ILocated)
{ Properties }
property elements: array of IIntConstantNode read;
property ranges: array of ICaseRangeNode read;
property statement_to_execute: IStatementNode read;
end;
ICharConstantNode = interface (IConstantNode, IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property constant_value: Char read;
end;
IConstantDefinitionNode = interface (IDefinitionNode, ISemanticNode)
{ Properties }
property constant_value: IConstantNode read;
property name: String read;
property &type: ITypeNode read;
end;
IClassConstantDefinitionNode = interface (IConstantDefinitionNode, IDefinitionNode, ISemanticNode, IClassMemberNode, ILocated)
end;
ICommonClassFieldNode = interface (IVAriableDefinitionNode, IDefinitionNode, ISemanticNode, ICommonClassMemberNode, IClassMemberNode, ILocated)
end;
IReferenceNode = interface (IAddressedExpressionNode, IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property Variable: IVAriableDefinitionNode read;
end;
ICommonClassFieldReferenceNode = interface (IReferenceNode, IAddressedExpressionNode, IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property field: ICommonClassFieldNode read;
property obj: IExpressionNode read;
end;
IEventNode = interface (IDefinitionNode, ISemanticNode)
end;
ICommonEventNode = interface (IEventNode, IDefinitionNode, ISemanticNode, ICommonClassMemberNode, IClassMemberNode, ILocated)
{ Properties }
property AddMethod: ICommonMethodNode read;
property DelegateType: ITypeNode read;
property IsStatic: Boolean read;
property Name: String read;
property RaiseMethod: ICommonMethodNode read;
property RemoveMethod: ICommonMethodNode read;
end;
ICommonFunctionConstantDefinitionNode = interface (IConstantDefinitionNode, IDefinitionNode, ISemanticNode, ILocated)
{ Properties }
property comprehensive_function: ICommonFunctionNode read;
end;
ICommonStaticMethodCallNode = interface (IFunctionCallNode, IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property common_type: ICommonTypeNode read;
property static_method: ICommonMethodNode read;
end;
ICommonConstructorCall = interface (ICommonStaticMethodCallNode, IFunctionCallNode, IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Methods }
function new_obj_awaited: Boolean;
end;
ICommonConstructorCallAsConstant = interface (IConstantNode, IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property ConstructorCall: ICommonConstructorCall read;
end;
ICommonNamespaceNode = interface;
ICommonPropertyNode = interface;
INamespaceMemberNode = interface
{ Properties }
property comprehensive_namespace: ICommonNamespaceNode read;
end;
ICommonTypeNode = interface (ITypeNode, IDefinitionNode, ISemanticNode, INamespaceMemberNode, ILocated)
{ Properties }
property constants: array of IClassConstantDefinitionNode read;
property default_property: IPropertyNode read;
property events: array of ICommonEventNode read;
property fields: array of ICommonClassFieldNode read;
property generic_params: List<ICommonTypeNode> read;
property has_static_constructor: Boolean read;
property is_generic_type_definition: Boolean read;
property IsSealed: Boolean read;
property lower_value: IConstantNode read;
property methods: array of ICommonMethodNode read;
property properties: array of ICommonPropertyNode read;
property runtime_initialization_marker: ICommonClassFieldNode read;
property static_constructor: ICommonMethodNode read;
property _type_access_level: type_access_level read;
property upper_value: IConstantNode read;
end;
IGenericTypeInstance = interface (IGenericInstance, ICommonTypeNode, ITypeNode, IDefinitionNode, ISemanticNode, INamespaceMemberNode, ILocated)
{ Properties }
property original_generic: ITypeNode read;
property used_members: System.Collections.Hashtable read;
end;
ICommonGenericTypeInstance = interface (IGenericTypeInstance, IGenericInstance, ICommonTypeNode, ITypeNode, IDefinitionNode, ISemanticNode, INamespaceMemberNode, ILocated)
end;
INonStaticMethodCallNode = interface (IFunctionCallNode, IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property virtual_call: Boolean read write;
end;
ICommonMethodCallNode = interface (INonStaticMethodCallNode, IFunctionCallNode, IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property &method: ICommonMethodNode read;
property obj: IExpressionNode read;
end;
ICommonNamespaceFunctionNode = interface;
ICommonNamespaceFunctionCallNode = interface (IFunctionCallNode, IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property namespace_function: ICommonNamespaceFunctionNode read;
end;
ICommonNamespaceFunctionCallNodeAsConstant = interface (IConstantNode, IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property MethodCall: ICommonNamespaceFunctionCallNode read;
end;
ICommonNamespaceFunctionNode = interface (ICommonFunctionNode, IFunctionNode, IDefinitionNode, ISemanticNode, ILocated, INamespaceMemberNode)
{ Properties }
property namespace_node: ICommonNamespaceNode read;
end;
INamespaceNode = interface (IDefinitionNode, ISemanticNode)
{ Properties }
property namespace_name: String read;
end;
INamespaceConstantDefinitionNode = interface;
ICommonNamespaceVariableNode = interface;
ICommonNamespaceNode = interface (INamespaceNode, IDefinitionNode, ISemanticNode, ILocated)
{ Properties }
property comprehensive_namespace: INamespaceNode read;
property constants: array of INamespaceConstantDefinitionNode read;
property functions: array of ICommonNamespaceFunctionNode read;
property IsMain: Boolean read;
property nested_namespaces: array of ICommonNamespaceNode read;
property types: array of ICommonTypeNode read;
property variables: array of ICommonNamespaceVariableNode read;
end;
ICommonNamespaceVariableNode = interface (IVAriableDefinitionNode, IDefinitionNode, ISemanticNode, INamespaceMemberNode, ILocated)
end;
ICommonNestedInFunctionFunctionCallNode = interface (IFunctionCallNode, IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property common_function: ICommonNestedInFunctionFunctionNode read;
property static_depth: Int32 read;
end;
IFunctionMemberNode = interface
{ Properties }
property &function: ICommonFunctionNode read;
end;
ICommonNestedInFunctionFunctionNode = interface (ICommonFunctionNode, IFunctionNode, IDefinitionNode, ISemanticNode, ILocated, IFunctionMemberNode)
end;
ICommonParameterNode = interface (IParameterNode, IVAriableDefinitionNode, IDefinitionNode, ISemanticNode, ILocated)
{ Properties }
property common_function: ICommonFunctionNode read;
property is_used_as_unlocal: Boolean read;
end;
ICommonParameterReferenceNode = interface (IReferenceNode, IAddressedExpressionNode, IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property parameter: ICommonParameterNode read;
property static_depth: Int32 read;
end;
ICommonPropertyNode = interface (IPropertyNode, IDefinitionNode, ISemanticNode, ICommonClassMemberNode, IClassMemberNode, ILocated)
end;
ICompiledTypeNode = interface (ITypeNode, IDefinitionNode, ISemanticNode)
{ Properties }
property compiled_type: &Type read;
end;
ICompiledClassConstantDefinitionNode = interface (IConstantDefinitionNode, IDefinitionNode, ISemanticNode, IClassMemberNode)
{ Properties }
property comprehensive_type: ICompiledTypeNode read;
end;
ICompiledClassMemberNode = interface (IClassMemberNode)
{ Properties }
property comprehensive_type: ICompiledTypeNode read;
end;
ICompiledClassFieldNode = interface (IVAriableDefinitionNode, IDefinitionNode, ISemanticNode, ICompiledClassMemberNode, IClassMemberNode)
{ Properties }
property compiled_field: FieldInfo read;
end;
ICompiledConstantNode = interface (IConstantDefinitionNode, IDefinitionNode, ISemanticNode)
{ Properties }
property comprehensive_type: ICompiledTypeNode read;
end;
ICompiledConstructorNode = interface (IFunctionNode, IDefinitionNode, ISemanticNode, ICompiledClassMemberNode, IClassMemberNode)
{ Properties }
property constructor_info: ConstructorInfo read;
end;
ICompiledConstructorCall = interface (IFunctionCallNode, IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Methods }
function new_obj_awaited: Boolean;
{ Properties }
property compiled_type: ICompiledTypeNode read;
property &constructor: ICompiledConstructorNode read;
end;
ICompiledConstructorCallAsConstant = interface (IConstantNode, IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property MethodCall: ICompiledConstructorCall read;
end;
ICompiledEventNode = interface (IEventNode, IDefinitionNode, ISemanticNode)
end;
ICompiledFieldReferenceNode = interface (IReferenceNode, IAddressedExpressionNode, IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property field: ICompiledClassFieldNode read;
property obj: IExpressionNode read;
end;
ICompiledGenericMethodInstance = interface;
ICompiledGenericTypeInstance = interface (IGenericTypeInstance, IGenericInstance, ICommonTypeNode, ITypeNode, IDefinitionNode, ISemanticNode, INamespaceMemberNode, ILocated)
end;
ICompiledMethodNode = interface (IFunctionNode, IDefinitionNode, ISemanticNode, ICompiledClassMemberNode, IClassMemberNode)
{ Properties }
property method_info: MethodInfo read;
end;
ICompiledMethodCallNode = interface (INonStaticMethodCallNode, IFunctionCallNode, IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property compiled_method: ICompiledMethodNode read;
property obj: IExpressionNode read;
end;
ICompiledNamespaceNode = interface (INamespaceNode, IDefinitionNode, ISemanticNode)
end;
ICompiledParameterNode = interface (IParameterNode, IVAriableDefinitionNode, IDefinitionNode, ISemanticNode)
{ Properties }
property compiled_function: ICompiledMethodNode read;
end;
ICompiledPropertyNode = interface (IPropertyNode, IDefinitionNode, ISemanticNode, ICompiledClassMemberNode, IClassMemberNode)
{ Properties }
property compiled_comprehensive_type: ICompiledTypeNode read;
property compiled_get_method: ICompiledMethodNode read;
property compiled_set_method: ICompiledMethodNode read;
property property_info: PropertyInfo read;
end;
ICompiledStaticMethodCallNode = interface (IFunctionCallNode, IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property compiled_type: ICompiledTypeNode read;
property static_method: ICompiledMethodNode read;
property template_parametres: array of ITypeNode read;
end;
ICompiledStaticMethodCallNodeAsConstant = interface (IConstantNode, IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property MethodCall: ICompiledStaticMethodCallNode read;
end;
IDefaultOperatorNode = interface (IExpressionNode, IStatementNode, ISemanticNode, ILocated)
end;
IDereferenceNode = interface (IAddressedExpressionNode, IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property derefered_expr: IExpressionNode read;
end;
IProgramBase = interface (IDefinitionNode, ISemanticNode, ILocated)
{ Properties }
property namespaces: array of ICommonNamespaceNode read;
end;
IDllNode = interface (IProgramBase, IDefinitionNode, ISemanticNode, ILocated)
{ Properties }
property finalization_function: ICommonNamespaceFunctionNode read;
property initialization_function: ICommonNamespaceFunctionNode read;
end;
IDoubleConstantNode = interface (IConstantNode, IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property constant_value: real read;
end;
IEnumConstNode = interface (IConstantNode, IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property constant_value: Int32 read;
end;
ILocalBlockVariableReferenceNode = interface;
IExceptionFilterBlockNode = interface (IStatementNode, ISemanticNode, ILocated)
{ Properties }
property ExceptionHandler: IStatementNode read;
property ExceptionInstance: ILocalBlockVariableReferenceNode read;
property ExceptionType: ITypeNode read;
end;
IExitProcedure = interface (IStatementNode, ISemanticNode, ILocated)
end;
IExternalStatementNode = interface (IStatementNode, ISemanticNode, ILocated)
{ Properties }
property module_name: String read;
property name: String read;
end;
IFloatConstantNode = interface (IConstantNode, IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property constant_value: Single read;
end;
IForNode = interface (IStatementNode, ISemanticNode, ILocated)
{ Properties }
property body: IStatementNode read;
property increment_statement: IStatementNode read;
property init_while_expr: IExpressionNode read;
property initialization_statement: IStatementNode read;
property IsBoolCycle: Boolean read;
property while_expr: IExpressionNode read;
end;
IForBreakNode = interface (IStatementNode, ISemanticNode, ILocated)
{ Properties }
property for_node: IForNode read;
end;
IForContinueNode = interface (IStatementNode, ISemanticNode, ILocated)
{ Properties }
property for_node: IForNode read;
end;
IForeachNode = interface (IStatementNode, ISemanticNode, ILocated)
{ Properties }
property Body: IStatementNode read;
property InWhatExpr: IExpressionNode read;
property VarIdent: IVAriableDefinitionNode read;
end;
IForeachBreakNode = interface (IStatementNode, ISemanticNode, ILocated)
{ Properties }
property foreach_node: IForeachNode read;
end;
IForeachContinueNode = interface (IStatementNode, ISemanticNode, ILocated)
{ Properties }
property foreach_node: IForeachNode read;
end;
IFunctionConstantDefinitionNode = interface (IConstantDefinitionNode, IDefinitionNode, ISemanticNode, ILocated)
{ Properties }
property &function: ICommonFunctionNode read;
end;
IFunctionConstantReference = interface (IConstantNode, IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property Constant: ICommonFunctionConstantDefinitionNode read;
end;
IGenericFunctionInstance = interface (IGenericInstance, ICommonFunctionNode, IFunctionNode, IDefinitionNode, ISemanticNode, ILocated)
{ Properties }
property original_function: IFunctionNode read;
end;
IGetAddrNode = interface (IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property addr_of_expr: IExpressionNode read;
end;
IGotoStatementNode = interface (IStatementNode, ISemanticNode, ILocated)
{ Properties }
property &label: ILabelNode read;
end;
IIfNode = interface (IStatementNode, ISemanticNode, ILocated)
{ Properties }
property condition: IExpressionNode read;
property else_body: IStatementNode read;
property then_body: IStatementNode read;
end;
IIsNode = interface (IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property left: IExpressionNode read;
property right: ITypeNode read;
end;
ILabeledStatementNode = interface (IStatementNode, ISemanticNode, ILocated)
{ Properties }
property &label: ILabelNode read;
property statement: IStatementNode read;
end;
ILocalBlockVariableNode = interface;
IStatementsListNode = interface (IStatementNode, ISemanticNode, ILocated)
{ Properties }
property LeftLogicalBracketLocation: ILocation read;
property LocalVariables: array of ILocalBlockVariableNode read;
property RightLogicalBracketLocation: ILocation read;
property statements: array of IStatementNode read;
end;
ILocalBlockVariableNode = interface (IVAriableDefinitionNode, IDefinitionNode, ISemanticNode, ILocated)
{ Properties }
property Block: IStatementsListNode read;
end;
ILocalBlockVariableReferenceNode = interface (IReferenceNode, IAddressedExpressionNode, IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property Variable: ILocalBlockVariableNode read;
end;
ILocalVariableNode = interface (IVAriableDefinitionNode, IDefinitionNode, ISemanticNode, IFunctionMemberNode, ILocated)
{ Properties }
property is_used_as_unlocal: Boolean read;
end;
ILocalVariableReferenceNode = interface (IReferenceNode, IAddressedExpressionNode, IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property static_depth: integer read;
property variable: ILocalVariableNode read;
end;
ILockStatement = interface (IStatementNode, ISemanticNode, ILocated)
{ Properties }
property Body: IStatementNode read;
property LockObject: IExpressionNode read;
end;
ILongConstantNode = interface (IConstantNode, IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property constant_value: Int64 read;
end;
INamespaceConstantDefinitionNode = interface (IConstantDefinitionNode, IDefinitionNode, ISemanticNode, ILocated)
{ Properties }
property comprehensive_namespace: ICommonNamespaceNode read;
end;
INamespaceConstantReference = interface (IConstantNode, IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property Constant: INamespaceConstantDefinitionNode read;
end;
INamespaceVariableReferenceNode = interface (IReferenceNode, IAddressedExpressionNode, IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property variable: ICommonNamespaceVariableNode read;
end;
IStaticEventReference = interface (IAddressedExpressionNode, IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property &Event: IEventNode read;
end;
INonStaticEventReference = interface (IStaticEventReference, IAddressedExpressionNode, IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property obj: IExpressionNode read;
end;
INullConstantNode = interface (IConstantNode, IExpressionNode, IStatementNode, ISemanticNode, ILocated)
end;
IProgramNode = interface (IProgramBase, IDefinitionNode, ISemanticNode, ILocated)
{ Properties }
property generic_function_instances: List<IGenericFunctionInstance> read;
property generic_type_instances: List<IGenericTypeInstance> read;
property InitializationCode: IStatementNode read;
property main_function: ICommonNamespaceFunctionNode read;
end;
IQuestionColonExpressionNode = interface (IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property condition: IExpressionNode read;
property ret_if_false: IExpressionNode read;
property ret_if_true: IExpressionNode read;
end;
IRecordConstantNode = interface (IConstantNode, IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property FieldValues: array of IConstantNode read;
end;
IRecordInitializer = interface (IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property FieldValues: array of IExpressionNode read;
end;
IRefTypeNode = interface (ITypeNode, IDefinitionNode, ISemanticNode)
{ Properties }
property pointed_type: ITypeNode read;
end;
IRepeatNode = interface (IStatementNode, ISemanticNode, ILocated)
{ Properties }
property body: IStatementNode read;
property condition: IExpressionNode read;
end;
IRepeatBreakNode = interface (IStatementNode, ISemanticNode, ILocated)
{ Properties }
property repeat_node: IRepeatNode read;
end;
IRepeatContinueNode = interface (IStatementNode, ISemanticNode, ILocated)
{ Properties }
property repeat_node: IRepeatNode read;
end;
IRethrowStatement = interface (IStatementNode, ISemanticNode, ILocated)
end;
IReturnNode = interface (IStatementNode, ISemanticNode, ILocated)
{ Properties }
property return_value: IExpressionNode read;
end;
IRuntimeManagedMethodBody = interface (IStatementNode, ISemanticNode, ILocated)
{ Properties }
property _runtime_statement_type: runtime_statement_type read;
end;
ISByteConstantNode = interface (IConstantNode, IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property constant_value: SByte read;
end;
IShortConstantNode = interface (IConstantNode, IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property constant_value: Int16 read;
end;
ISimpleArrayIndexingNode = interface (IAddressedExpressionNode, IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property &array: IExpressionNode read;
property index: IExpressionNode read;
end;
ISimpleArrayNode = interface (ITypeNode, IDefinitionNode, ISemanticNode)
{ Properties }
property element_type: ITypeNode read;
property length: Int32 read;
end;
ISizeOfOperator = interface (IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property oftype: ITypeNode read;
end;
IStatementsExpressionNode = interface (IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property expresion: IExpressionNode read;
property statements: array of IStatementNode read;
end;
ICompiledGenericMethodInstance = interface (IGenericFunctionInstance, IGenericInstance, ICommonMethodNode, ICommonFunctionNode, IFunctionNode, IDefinitionNode, ISemanticNode, ILocated, ICommonClassMemberNode, IClassMemberNode)
end;
IStaticCommonClassFieldReferenceNode = interface (IReferenceNode, IAddressedExpressionNode, IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property class_type: ICommonTypeNode read;
property static_field: ICommonClassFieldNode read;
end;
IStaticCompiledFieldReferenceNode = interface (IReferenceNode, IAddressedExpressionNode, IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property class_type: ICompiledTypeNode read;
property static_field: ICompiledClassFieldNode read;
end;
IStringConstantNode = interface (IConstantNode, IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property constant_value: String read;
end;
ISwitchNode = interface (IStatementNode, ISemanticNode, ILocated)
{ Properties }
property case_expression: IExpressionNode read;
property case_variants: array of ICaseVariantNode read;
property default_statement: IStatementNode read;
end;
IThisNode = interface (IExpressionNode, IStatementNode, ISemanticNode, ILocated)
end;
IThrowNode = interface (IStatementNode, ISemanticNode, ILocated)
{ Properties }
property exception_expresion: IExpressionNode read;
end;
ITryBlockNode = interface (IStatementNode, ISemanticNode, ILocated)
{ Properties }
property ExceptionFilters: array of IExceptionFilterBlockNode read;
property FinallyStatements: IStatementNode read;
property TryStatements: IStatementNode read;
end;
ITypeOfOperator = interface (IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property oftype: ITypeNode read;
end;
ITypeSynonym = interface (IDefinitionNode, ISemanticNode, ILocated)
{ Properties }
property name: String read;
property original_type: ITypeNode read;
end;
IUIntConstantNode = interface (IConstantNode, IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property constant_value: UInt32 read;
end;
IULongConstantNode = interface (IConstantNode, IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property constant_value: UInt64 read;
end;
IUnsizedArray = interface (ITypeNode, IDefinitionNode, ISemanticNode)
{ Properties }
property element_type: ITypeNode read;
end;
IUShortConstantNode = interface (IConstantNode, IExpressionNode, IStatementNode, ISemanticNode, ILocated)
{ Properties }
property constant_value: UInt16 read;
end;
IWhileNode = interface (IStatementNode, ISemanticNode, ILocated)
{ Properties }
property body: IStatementNode read;
property condition: IExpressionNode read;
end;
IWhileBreakNode = interface (IStatementNode, ISemanticNode, ILocated)
{ Properties }
property while_node: IWhileNode read;
end;
IWhileContinueNode = interface (IStatementNode, ISemanticNode, ILocated)
{ Properties }
property while_node: IWhileNode read;
end;
ISemanticVisitor = interface
procedure visit(value: IAddressedExpressionNode);
procedure visit(value: IArrayConstantNode);
procedure visit(value: IArrayInitializer);
procedure visit(value: IAsNode);
procedure visit(value: IBasicFunctionCallNode);
procedure visit(value: IBasicFunctionNode);
procedure visit(value: IBasicParameterNode);
procedure visit(value: IBasicPropertyNode);
procedure visit(value: IBasicTypeNode);
procedure visit(value: IBoolConstantNode);
procedure visit(value: IByteConstantNode);
procedure visit(value: ICaseRangeNode);
procedure visit(value: ICaseVariantNode);
procedure visit(value: ICharConstantNode);
procedure visit(value: IClassConstantDefinitionNode);
procedure visit(value: IClassMemberNode);
procedure visit(value: ICommonClassFieldNode);
procedure visit(value: ICommonClassFieldReferenceNode);
procedure visit(value: ICommonClassMemberNode);
procedure visit(value: ICommonConstructorCall);
procedure visit(value: ICommonConstructorCallAsConstant);
procedure visit(value: ICommonEventNode);
procedure visit(value: ICommonFunctionConstantDefinitionNode);
procedure visit(value: ICommonFunctionNode);
procedure visit(value: ICommonMethodCallNode);
procedure visit(value: ICommonMethodNode);
procedure visit(value: ICommonNamespaceFunctionCallNode);
procedure visit(value: ICommonNamespaceFunctionCallNodeAsConstant);
procedure visit(value: ICommonNamespaceFunctionNode);
procedure visit(value: ICommonNamespaceNode);
procedure visit(value: ICommonNamespaceVariableNode);
procedure visit(value: ICommonNestedInFunctionFunctionCallNode);
procedure visit(value: ICommonNestedInFunctionFunctionNode);
procedure visit(value: ICommonParameterNode);
procedure visit(value: ICommonParameterReferenceNode);
procedure visit(value: ICommonPropertyNode);
procedure visit(value: ICommonStaticMethodCallNode);
procedure visit(value: ICommonTypeNode);
procedure visit(value: ICompiledClassConstantDefinitionNode);
procedure visit(value: ICompiledClassFieldNode);
procedure visit(value: ICompiledClassMemberNode);
procedure visit(value: ICompiledConstructorCall);
procedure visit(value: ICompiledConstructorCallAsConstant);
procedure visit(value: ICompiledConstructorNode);
procedure visit(value: ICompiledEventNode);
procedure visit(value: ICompiledFieldReferenceNode);
procedure visit(value: ICompiledMethodCallNode);
procedure visit(value: ICompiledMethodNode);
procedure visit(value: ICompiledNamespaceNode);
procedure visit(value: ICompiledParameterNode);
procedure visit(value: ICompiledPropertyNode);
procedure visit(value: ICompiledStaticMethodCallNode);
procedure visit(value: ICompiledStaticMethodCallNodeAsConstant);
procedure visit(value: ICompiledTypeNode);
procedure visit(value: IConstantDefinitionNode);
procedure visit(value: IConstantNode);
procedure visit(value: IDefaultOperatorNode);
procedure visit(value: IDefinitionNode);
procedure visit(value: IDereferenceNode);
procedure visit(value: IDllNode);
procedure visit(value: IDoubleConstantNode);
procedure visit(value: IEnumConstNode);
procedure visit(value: IEventNode);
procedure visit(value: IExceptionFilterBlockNode);
procedure visit(value: IExitProcedure);
procedure visit(value: IExpressionNode);
procedure visit(value: IExternalStatementNode);
procedure visit(value: IFloatConstantNode);
procedure visit(value: IForBreakNode);
procedure visit(value: IForContinueNode);
procedure visit(value: IForeachBreakNode);
procedure visit(value: IForeachContinueNode);
procedure visit(value: IForeachNode);
procedure visit(value: IForNode);
procedure visit(value: IFunctionCallNode);
procedure visit(value: IFunctionConstantReference);
procedure visit(value: IFunctionMemberNode);
procedure visit(value: IFunctionNode);
procedure visit(value: IGetAddrNode);
procedure visit(value: IGotoStatementNode);
procedure visit(value: IIfNode);
procedure visit(value: IIntConstantNode);
procedure visit(value: IIsNode);
procedure visit(value: ILabeledStatementNode);
procedure visit(value: ILabelNode);
procedure visit(value: ILocalBlockVariableNode);
procedure visit(value: ILocalBlockVariableReferenceNode);
procedure visit(value: ILocalVariableNode);
procedure visit(value: ILocalVariableReferenceNode);
procedure visit(value: ILockStatement);
procedure visit(value: ILongConstantNode);
procedure visit(value: INamespaceConstantDefinitionNode);
procedure visit(value: INamespaceConstantReference);
procedure visit(value: INamespaceMemberNode);
procedure visit(value: INamespaceNode);
procedure visit(value: INamespaceVariableReferenceNode);
procedure visit(value: INonStaticEventReference);
procedure visit(value: INullConstantNode);
procedure visit(value: IParameterNode);
procedure visit(value: IProgramNode);
procedure visit(value: IPropertyNode);
procedure visit(value: IQuestionColonExpressionNode);
procedure visit(value: IRecordConstantNode);
procedure visit(value: IRecordInitializer);
procedure visit(value: IRefTypeNode);
procedure visit(value: IRepeatBreakNode);
procedure visit(value: IRepeatContinueNode);
procedure visit(value: IRepeatNode);
procedure visit(value: IRethrowStatement);
procedure visit(value: IReturnNode);
procedure visit(value: IRuntimeManagedMethodBody);
procedure visit(value: ISByteConstantNode);
procedure visit(value: ISemanticNode);
procedure visit(value: IShortConstantNode);
procedure visit(value: ISimpleArrayIndexingNode);
procedure visit(value: ISimpleArrayNode);
procedure visit(value: ISizeOfOperator);
procedure visit(value: IStatementNode);
procedure visit(value: IStatementsExpressionNode);
procedure visit(value: IStatementsListNode);
procedure visit(value: IStaticCommonClassFieldReferenceNode);
procedure visit(value: IStaticCompiledFieldReferenceNode);
procedure visit(value: IStaticEventReference);
procedure visit(value: IStringConstantNode);
procedure visit(value: ISwitchNode);
procedure visit(value: IThisNode);
procedure visit(value: IThrowNode);
procedure visit(value: ITryBlockNode);
procedure visit(value: ITypeNode);
procedure visit(value: ITypeOfOperator);
procedure visit(value: IUIntConstantNode);
procedure visit(value: IULongConstantNode);
procedure visit(value: IUnsizedArray);
procedure visit(value: IUShortConstantNode);
procedure visit(value: IVAriableDefinitionNode);
procedure visit(value: IWhileBreakNode);
procedure visit(value: IWhileContinueNode);
procedure visit(value: IWhileNode);
end;
type AbstractVisitor = class(ISemanticVisitor)
protected constructor Create;
public procedure visit(value: IAddressedExpressionNode); virtual;
public procedure visit(value: IArrayConstantNode); virtual;
public procedure visit(value: IArrayInitializer); virtual;
public procedure visit(value: IAsNode); virtual;
public procedure visit(value: IBasicFunctionCallNode); virtual;
public procedure visit(value: IBasicFunctionNode); virtual;
public procedure visit(value: IBasicParameterNode); virtual;
public procedure visit(value: IBasicPropertyNode); virtual;
public procedure visit(value: IBasicTypeNode); virtual;
public procedure visit(value: IBoolConstantNode); virtual;
public procedure visit(value: IByteConstantNode); virtual;
public procedure visit(value: ICaseRangeNode); virtual;
public procedure visit(value: ICaseVariantNode); virtual;
public procedure visit(value: ICharConstantNode); virtual;
public procedure visit(value: IClassConstantDefinitionNode); virtual;
public procedure visit(value: IClassMemberNode); virtual;
public procedure visit(value: ICommonClassFieldNode); virtual;
public procedure visit(value: ICommonClassFieldReferenceNode); virtual;
public procedure visit(value: ICommonClassMemberNode); virtual;
public procedure visit(value: ICommonConstructorCall); virtual;
public procedure visit(value: ICommonConstructorCallAsConstant); virtual;
public procedure visit(value: ICommonEventNode); virtual;
public procedure visit(value: ICommonFunctionConstantDefinitionNode); virtual;
public procedure visit(value: ICommonFunctionNode); virtual;
public procedure visit(value: ICommonMethodCallNode); virtual;
public procedure visit(value: ICommonMethodNode); virtual;
public procedure visit(value: ICommonNamespaceFunctionCallNode); virtual;
public procedure visit(value: ICommonNamespaceFunctionCallNodeAsConstant); virtual;
public procedure visit(value: ICommonNamespaceFunctionNode); virtual;
public procedure visit(value: ICommonNamespaceNode); virtual;
public procedure visit(value: ICommonNamespaceVariableNode); virtual;
public procedure visit(value: ICommonNestedInFunctionFunctionCallNode); virtual;
public procedure visit(value: ICommonNestedInFunctionFunctionNode); virtual;
public procedure visit(value: ICommonParameterNode); virtual;
public procedure visit(value: ICommonParameterReferenceNode); virtual;
public procedure visit(value: ICommonPropertyNode); virtual;
public procedure visit(value: ICommonStaticMethodCallNode); virtual;
public procedure visit(value: ICommonTypeNode); virtual;
public procedure visit(value: ICompiledClassConstantDefinitionNode); virtual;
public procedure visit(value: ICompiledClassFieldNode); virtual;
public procedure visit(value: ICompiledClassMemberNode); virtual;
public procedure visit(value: ICompiledConstructorCall); virtual;
public procedure visit(value: ICompiledConstructorCallAsConstant); virtual;
public procedure visit(value: ICompiledConstructorNode); virtual;
public procedure visit(value: ICompiledEventNode); virtual;
public procedure visit(value: ICompiledFieldReferenceNode); virtual;
public procedure visit(value: ICompiledMethodCallNode); virtual;
public procedure visit(value: ICompiledMethodNode); virtual;
public procedure visit(value: ICompiledNamespaceNode); virtual;
public procedure visit(value: ICompiledParameterNode); virtual;
public procedure visit(value: ICompiledPropertyNode); virtual;
public procedure visit(value: ICompiledStaticMethodCallNode); virtual;
public procedure visit(value: ICompiledStaticMethodCallNodeAsConstant); virtual;
public procedure visit(value: ICompiledTypeNode); virtual;
public procedure visit(value: IConstantDefinitionNode); virtual;
public procedure visit(value: IConstantNode); virtual;
public procedure visit(value: IDefaultOperatorNode); virtual;
public procedure visit(value: IDefinitionNode); virtual;
public procedure visit(value: IDereferenceNode); virtual;
public procedure visit(value: IDllNode); virtual;
public procedure visit(value: IDoubleConstantNode); virtual;
public procedure visit(value: IEnumConstNode); virtual;
public procedure visit(value: IEventNode); virtual;
public procedure visit(value: IExceptionFilterBlockNode); virtual;
public procedure visit(value: IExitProcedure); virtual;
public procedure visit(value: IExpressionNode); virtual;
public procedure visit(value: IExternalStatementNode); virtual;
public procedure visit(value: IFloatConstantNode); virtual;
public procedure visit(value: IForBreakNode); virtual;
public procedure visit(value: IForContinueNode); virtual;
public procedure visit(value: IForeachBreakNode); virtual;
public procedure visit(value: IForeachContinueNode); virtual;
public procedure visit(value: IForeachNode); virtual;
public procedure visit(value: IForNode); virtual;
public procedure visit(value: IFunctionCallNode); virtual;
public procedure visit(value: IFunctionConstantReference); virtual;
public procedure visit(value: IFunctionMemberNode); virtual;
public procedure visit(value: IFunctionNode); virtual;
public procedure visit(value: IGetAddrNode); virtual;
public procedure visit(value: IGotoStatementNode); virtual;
public procedure visit(value: IIfNode); virtual;
public procedure visit(value: IIntConstantNode); virtual;
public procedure visit(value: IIsNode); virtual;
public procedure visit(value: ILabeledStatementNode); virtual;
public procedure visit(value: ILabelNode); virtual;
public procedure visit(value: ILocalBlockVariableNode); virtual;
public procedure visit(value: ILocalBlockVariableReferenceNode); virtual;
public procedure visit(value: ILocalVariableNode); virtual;
public procedure visit(value: ILocalVariableReferenceNode); virtual;
public procedure visit(value: ILockStatement); virtual;
public procedure visit(value: ILongConstantNode); virtual;
public procedure visit(value: INamespaceConstantDefinitionNode); virtual;
public procedure visit(value: INamespaceConstantReference); virtual;
public procedure visit(value: INamespaceMemberNode); virtual;
public procedure visit(value: INamespaceNode); virtual;
public procedure visit(value: INamespaceVariableReferenceNode); virtual;
public procedure visit(value: INonStaticEventReference); virtual;
public procedure visit(value: INullConstantNode); virtual;
public procedure visit(value: IParameterNode); virtual;
public procedure visit(value: IProgramNode); virtual;
public procedure visit(value: IPropertyNode); virtual;
public procedure visit(value: IQuestionColonExpressionNode); virtual;
public procedure visit(value: IRecordConstantNode); virtual;
public procedure visit(value: IRecordInitializer); virtual;
public procedure visit(value: IRefTypeNode); virtual;
public procedure visit(value: IRepeatBreakNode); virtual;
public procedure visit(value: IRepeatContinueNode); virtual;
public procedure visit(value: IRepeatNode); virtual;
public procedure visit(value: IRethrowStatement); virtual;
public procedure visit(value: IReturnNode); virtual;
public procedure visit(value: IRuntimeManagedMethodBody); virtual;
public procedure visit(value: ISByteConstantNode); virtual;
public procedure visit(value: ISemanticNode); virtual;
public procedure visit(value: IShortConstantNode); virtual;
public procedure visit(value: ISimpleArrayIndexingNode); virtual;
public procedure visit(value: ISimpleArrayNode); virtual;
public procedure visit(value: ISizeOfOperator); virtual;
public procedure visit(value: IStatementNode); virtual;
public procedure visit(value: IStatementsExpressionNode); virtual;
public procedure visit(value: IStatementsListNode); virtual;
public procedure visit(value: IStaticCommonClassFieldReferenceNode); virtual;
public procedure visit(value: IStaticCompiledFieldReferenceNode); virtual;
public procedure visit(value: IStaticEventReference); virtual;
public procedure visit(value: IStringConstantNode); virtual;
public procedure visit(value: ISwitchNode); virtual;
public procedure visit(value: IThisNode); virtual;
public procedure visit(value: IThrowNode); virtual;
public procedure visit(value: ITryBlockNode); virtual;
public procedure visit(value: ITypeNode); virtual;
public procedure visit(value: ITypeOfOperator); virtual;
public procedure visit(value: IUIntConstantNode); virtual;
public procedure visit(value: IULongConstantNode); virtual;
public procedure visit(value: IUnsizedArray); virtual;
public procedure visit(value: IUShortConstantNode); virtual;
public procedure visit(value: IVAriableDefinitionNode); virtual;
public procedure visit(value: IWhileBreakNode); virtual;
public procedure visit(value: IWhileContinueNode); virtual;
public procedure visit(value: IWhileNode); virtual;
end;
implementation
constructor AbstractVisitor.Create;
begin
end;
procedure AbstractVisitor.visit(value: IAddressedExpressionNode);
begin
end;
procedure AbstractVisitor.visit(value: IArrayConstantNode);
begin
end;
procedure AbstractVisitor.visit(value: IArrayInitializer);
begin
end;
procedure AbstractVisitor.visit(value: IAsNode);
begin
end;
procedure AbstractVisitor.visit(value: IBasicFunctionCallNode);
begin
end;
procedure AbstractVisitor.visit(value: IBasicFunctionNode);
begin
end;
procedure AbstractVisitor.visit(value: IBasicParameterNode);
begin
end;
procedure AbstractVisitor.visit(value: IBasicPropertyNode);
begin
end;
procedure AbstractVisitor.visit(value: IBasicTypeNode);
begin
end;
procedure AbstractVisitor.visit(value: IBoolConstantNode);
begin
end;
procedure AbstractVisitor.visit(value: IByteConstantNode);
begin
end;
procedure AbstractVisitor.visit(value: ICaseRangeNode);
begin
end;
procedure AbstractVisitor.visit(value: ICaseVariantNode);
begin
end;
procedure AbstractVisitor.visit(value: ICharConstantNode);
begin
end;
procedure AbstractVisitor.visit(value: IClassConstantDefinitionNode);
begin
end;
procedure AbstractVisitor.visit(value: IClassMemberNode);
begin
end;
procedure AbstractVisitor.visit(value: ICommonClassFieldNode);
begin
end;
procedure AbstractVisitor.visit(value: ICommonClassFieldReferenceNode);
begin
end;
procedure AbstractVisitor.visit(value: ICommonClassMemberNode);
begin
end;
procedure AbstractVisitor.visit(value: ICommonConstructorCall);
begin
end;
procedure AbstractVisitor.visit(value: ICommonConstructorCallAsConstant);
begin
end;
procedure AbstractVisitor.visit(value: ICommonEventNode);
begin
end;
procedure AbstractVisitor.visit(value: ICommonFunctionConstantDefinitionNode);
begin
end;
procedure AbstractVisitor.visit(value: ICommonFunctionNode);
begin
end;
procedure AbstractVisitor.visit(value: ICommonMethodCallNode);
begin
end;
procedure AbstractVisitor.visit(value: ICommonMethodNode);
begin
end;
procedure AbstractVisitor.visit(value: ICommonNamespaceFunctionCallNode);
begin
end;
procedure AbstractVisitor.visit(value: ICommonNamespaceFunctionCallNodeAsConstant);
begin
end;
procedure AbstractVisitor.visit(value: ICommonNamespaceFunctionNode);
begin
end;
procedure AbstractVisitor.visit(value: ICommonNamespaceNode);
begin
end;
procedure AbstractVisitor.visit(value: ICommonNamespaceVariableNode);
begin
end;
procedure AbstractVisitor.visit(value: ICommonNestedInFunctionFunctionCallNode);
begin
end;
procedure AbstractVisitor.visit(value: ICommonNestedInFunctionFunctionNode);
begin
end;
procedure AbstractVisitor.visit(value: ICommonParameterNode);
begin
end;
procedure AbstractVisitor.visit(value: ICommonParameterReferenceNode);
begin
end;
procedure AbstractVisitor.visit(value: ICommonPropertyNode);
begin
end;
procedure AbstractVisitor.visit(value: ICommonStaticMethodCallNode);
begin
end;
procedure AbstractVisitor.visit(value: ICommonTypeNode);
begin
end;
procedure AbstractVisitor.visit(value: ICompiledClassConstantDefinitionNode);
begin
end;
procedure AbstractVisitor.visit(value: ICompiledClassFieldNode);
begin
end;
procedure AbstractVisitor.visit(value: ICompiledClassMemberNode);
begin
end;
procedure AbstractVisitor.visit(value: ICompiledConstructorCall);
begin
end;
procedure AbstractVisitor.visit(value: ICompiledConstructorCallAsConstant);
begin
end;
procedure AbstractVisitor.visit(value: ICompiledConstructorNode);
begin
end;
procedure AbstractVisitor.visit(value: ICompiledEventNode);
begin
end;
procedure AbstractVisitor.visit(value: ICompiledFieldReferenceNode);
begin
end;
procedure AbstractVisitor.visit(value: ICompiledMethodCallNode);
begin
end;
procedure AbstractVisitor.visit(value: ICompiledMethodNode);
begin
end;
procedure AbstractVisitor.visit(value: ICompiledNamespaceNode);
begin
end;
procedure AbstractVisitor.visit(value: ICompiledParameterNode);
begin
end;
procedure AbstractVisitor.visit(value: ICompiledPropertyNode);
begin
end;
procedure AbstractVisitor.visit(value: ICompiledStaticMethodCallNode);
begin
end;
procedure AbstractVisitor.visit(value: ICompiledStaticMethodCallNodeAsConstant);
begin
end;
procedure AbstractVisitor.visit(value: ICompiledTypeNode);
begin
end;
procedure AbstractVisitor.visit(value: IConstantDefinitionNode);
begin
end;
procedure AbstractVisitor.visit(value: IConstantNode);
begin
end;
procedure AbstractVisitor.visit(value: IDefaultOperatorNode);
begin
end;
procedure AbstractVisitor.visit(value: IDefinitionNode);
begin
end;
procedure AbstractVisitor.visit(value: IDereferenceNode);
begin
end;
procedure AbstractVisitor.visit(value: IDllNode);
begin
end;
procedure AbstractVisitor.visit(value: IDoubleConstantNode);
begin
end;
procedure AbstractVisitor.visit(value: IEnumConstNode);
begin
end;
procedure AbstractVisitor.visit(value: IEventNode);
begin
end;
procedure AbstractVisitor.visit(value: IExceptionFilterBlockNode);
begin
end;
procedure AbstractVisitor.visit(value: IExitProcedure);
begin
end;
procedure AbstractVisitor.visit(value: IExpressionNode);
begin
end;
procedure AbstractVisitor.visit(value: IExternalStatementNode);
begin
end;
procedure AbstractVisitor.visit(value: IFloatConstantNode);
begin
end;
procedure AbstractVisitor.visit(value: IForBreakNode);
begin
end;
procedure AbstractVisitor.visit(value: IForContinueNode);
begin
end;
procedure AbstractVisitor.visit(value: IForeachBreakNode);
begin
end;
procedure AbstractVisitor.visit(value: IForeachContinueNode);
begin
end;
procedure AbstractVisitor.visit(value: IForeachNode);
begin
end;
procedure AbstractVisitor.visit(value: IForNode);
begin
end;
procedure AbstractVisitor.visit(value: IFunctionCallNode);
begin
end;
procedure AbstractVisitor.visit(value: IFunctionConstantReference);
begin
end;
procedure AbstractVisitor.visit(value: IFunctionMemberNode);
begin
end;
procedure AbstractVisitor.visit(value: IFunctionNode);
begin
end;
procedure AbstractVisitor.visit(value: IGetAddrNode);
begin
end;
procedure AbstractVisitor.visit(value: IGotoStatementNode);
begin
end;
procedure AbstractVisitor.visit(value: IIfNode);
begin
end;
procedure AbstractVisitor.visit(value: IIntConstantNode);
begin
end;
procedure AbstractVisitor.visit(value: IIsNode);
begin
end;
procedure AbstractVisitor.visit(value: ILabeledStatementNode);
begin
end;
procedure AbstractVisitor.visit(value: ILabelNode);
begin
end;
procedure AbstractVisitor.visit(value: ILocalBlockVariableNode);
begin
end;
procedure AbstractVisitor.visit(value: ILocalBlockVariableReferenceNode);
begin
end;
procedure AbstractVisitor.visit(value: ILocalVariableNode);
begin
end;
procedure AbstractVisitor.visit(value: ILocalVariableReferenceNode);
begin
end;
procedure AbstractVisitor.visit(value: ILockStatement);
begin
end;
procedure AbstractVisitor.visit(value: ILongConstantNode);
begin
end;
procedure AbstractVisitor.visit(value: INamespaceConstantDefinitionNode);
begin
end;
procedure AbstractVisitor.visit(value: INamespaceConstantReference);
begin
end;
procedure AbstractVisitor.visit(value: INamespaceMemberNode);
begin
end;
procedure AbstractVisitor.visit(value: INamespaceNode);
begin
end;
procedure AbstractVisitor.visit(value: INamespaceVariableReferenceNode);
begin
end;
procedure AbstractVisitor.visit(value: INonStaticEventReference);
begin
end;
procedure AbstractVisitor.visit(value: INullConstantNode);
begin
end;
procedure AbstractVisitor.visit(value: IParameterNode);
begin
end;
procedure AbstractVisitor.visit(value: IProgramNode);
begin
end;
procedure AbstractVisitor.visit(value: IPropertyNode);
begin
end;
procedure AbstractVisitor.visit(value: IQuestionColonExpressionNode);
begin
end;
procedure AbstractVisitor.visit(value: IRecordConstantNode);
begin
end;
procedure AbstractVisitor.visit(value: IRecordInitializer);
begin
end;
procedure AbstractVisitor.visit(value: IRefTypeNode);
begin
end;
procedure AbstractVisitor.visit(value: IRepeatBreakNode);
begin
end;
procedure AbstractVisitor.visit(value: IRepeatContinueNode);
begin
end;
procedure AbstractVisitor.visit(value: IRepeatNode);
begin
end;
procedure AbstractVisitor.visit(value: IRethrowStatement);
begin
end;
procedure AbstractVisitor.visit(value: IReturnNode);
begin
end;
procedure AbstractVisitor.visit(value: IRuntimeManagedMethodBody);
begin
end;
procedure AbstractVisitor.visit(value: ISByteConstantNode);
begin
end;
procedure AbstractVisitor.visit(value: ISemanticNode);
begin
end;
procedure AbstractVisitor.visit(value: IShortConstantNode);
begin
end;
procedure AbstractVisitor.visit(value: ISimpleArrayIndexingNode);
begin
end;
procedure AbstractVisitor.visit(value: ISimpleArrayNode);
begin
end;
procedure AbstractVisitor.visit(value: ISizeOfOperator);
begin
end;
procedure AbstractVisitor.visit(value: IStatementNode);
begin
end;
procedure AbstractVisitor.visit(value: IStatementsExpressionNode);
begin
end;
procedure AbstractVisitor.visit(value: IStatementsListNode);
begin
end;
procedure AbstractVisitor.visit(value: IStaticCommonClassFieldReferenceNode);
begin
end;
procedure AbstractVisitor.visit(value: IStaticCompiledFieldReferenceNode);
begin
end;
procedure AbstractVisitor.visit(value: IStaticEventReference);
begin
end;
procedure AbstractVisitor.visit(value: IStringConstantNode);
begin
end;
procedure AbstractVisitor.visit(value: ISwitchNode);
begin
end;
procedure AbstractVisitor.visit(value: IThisNode);
begin
end;
procedure AbstractVisitor.visit(value: IThrowNode);
begin
end;
procedure AbstractVisitor.visit(value: ITryBlockNode);
begin
end;
procedure AbstractVisitor.visit(value: ITypeNode);
begin
end;
procedure AbstractVisitor.visit(value: ITypeOfOperator);
begin
end;
procedure AbstractVisitor.visit(value: IUIntConstantNode);
begin
end;
procedure AbstractVisitor.visit(value: IULongConstantNode);
begin
end;
procedure AbstractVisitor.visit(value: IUnsizedArray);
begin
end;
procedure AbstractVisitor.visit(value: IUShortConstantNode);
begin
end;
procedure AbstractVisitor.visit(value: IVAriableDefinitionNode);
begin
end;
procedure AbstractVisitor.visit(value: IWhileBreakNode);
begin
end;
procedure AbstractVisitor.visit(value: IWhileContinueNode);
begin
end;
procedure AbstractVisitor.visit(value: IWhileNode);
begin
end;
end.