Система программирования PascalABC.NET
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
>
|
|
::=
|
|
::=
|
|
::= tkReal
| tkSingle
| tkDouble
| tkExtended
| tkCurrency
| tkComp
::= tkShortInt
| tkSmallInt
| tkOrdInteger
| tkByte
| tkLongInt
| tkInt64
| tkWord
| tkBoolean
| tkChar
| tkWideChar
| tkLongWord
| tkPChar
| tkCardinal
::= tkVariant
| tkOleVariant
::= tkAbstract
| tkOverload
| tkOverride
| tkVirtual
| tkStatic
::= tkDefault
| tkRead
| tkWrite
| tkStored
| tkNodefault
| tkImplements
| tkWriteOnly
| tkReadOnly
| tkDispid
::= tkAt
| tkAbsolute
| tkOn
| tkName
| tkIndex
| tkMessage
| tkContains
| tkRequires
| tkForward
| tkOut
| tkObject
::= tkInternal
| tkPublic
| tkProtected
| tkPrivate
::= tkPackage
| tkUnit
| tkLibrary
| tkExternal
| tkBF
| tkParams
::=
| tkOr
| tkTypeOf
| tkSizeOf
| tkWhere
| tkXor
| tkAnd
| tkDiv
| tkMod
| tkShl
| tkShr
| tkNot
| tkAs
| tkIn
| tkIs
| tkArray
| tkBegin
| tkCase
| tkClass
| tkConst
| tkConstructor
| tkDestructor
| tkDownto
| tkDo
| tkElse
| tkEnd
| tkExcept
| tkFile
| tkFinalization
| tkFinally
| tkFor
| tkFunction
| tkIf
| tkImplementation
| tkInherited
| tkInitialization
| tkInterface
| tkProcedure
| tkProperty
| tkRaise
| tkRecord
| tkRepeat
| tkSet
| tkTry
| tkType
| tkThen
| tkTo
| tkUntil
| tkUses
| tkUsing
| tkVar
| tkWhile
| tkWith
| tkNil
| tkGoto
| tkOf
| tkLabel
| tkProgram
::= tkOperator
::= tkMinus
| tkPlus
| tkSquareOpen tkSquareClose
| tkRoundOpen tkRoundClose
| tkSlash
| tkStar
| tkEqual
| tkGreater
| tkGreaterEqual
| tkLower
| tkLowerEqual
| tkNotEqual
| tkOr
| tkXor
| tkAnd
| tkDiv
| tkMod
| tkShl
| tkShr
| tkNot
| tkIn
| tkAddressOf
| tkDeref
|
::= tkAssign
| tkPlusEqual
| tkMinusEqual
| tkMultEqual
| tkDivEqual
ПРИЛОЖЕНИЕ 2. Классы синтаксического дерева
Классы отображены в следующем формате:
имя_класса->базовый_класс
тип_поля1 поле1
тип_поля2 поле2
. . .
syntax_tree_node
SourceContext source_context_list->statementsubnodes>syntax_tree_node>statement_value tofrom_expr->addressed_valueleftright_type operation_type_expr->addressed_valuesubnode_type operation_type_node->addressed_value_const->const_nodeval_const->const_nodeval_const->const_nodeval>syntax_tree_node_body->syntax_tree_node_list subprogram_code_definitions subprogram_defs>addressed_value_funcnamename_const->const_nodeval_value->expression_definition->syntax_tree_node_type_reference->type_definitionunit_nametype_name_definitions->subprogram_definition_def_statementArrayList var_definitions_list->syntax_tree_nodeidents_def_statement->subprogram_definition_list vars_definition vars_typeinital_value_definition->type_definition_definitions->syntax_tree_node_definitionArrayList defs_tree->syntax_tree_node_unitArrayList compilation_units_name->syntax_tree_nodeprog_name_const->literalValue_list->expressionexpressions>addressed_value_funcname_value dereferencing_value_dereference->dereference>dereference_list indexes_node->statementloop_variableinitial_valuefinish_valuestatements_cycle_type cycle_typeincrement_value_node->statementstatementsexpr_node->statementexprstatements_node->statementconditionthen_bodyelse_body_type->type_definition_definition pointed_to>type_definitionleftright_types->type_definition_definitionArrayList indexers_type->type_definition_types indexers_definition elemets_types_definitions->subprogram_definition_list labels_attribute->ident_attribute attribute_type_parametres->syntax_tree_node_list idents_definition vars_type_kind param_kindinital_value_parametres->syntax_tree_node_parametresArrayList params_list_attributes_list->syntax_tree_node_attributeArrayList proc_attributes_header->subprogram_definition_parametres parametres_attributes_list proc_attributes_name nameof_objectclass_keyword_header->procedure_header_definition return_type_definition->subprogram_definition_header proc_header_block proc_body_declaration->subprogram_definitiontype_name_definition type_def_declarations->subprogram_definition_declarationArrayList types_decl_const_definition->const_definition_const_definition->const_definition_definition const_type_definition->syntax_tree_nodeconst_nameconst_value_definitions_list->subprogram_definition_definitionArrayList const_defs_name->syntax_tree_nodeidunit_name_unit->syntax_tree_nodeunit_name_unit_in->uses_unit_const in_file_list->syntax_tree_node_unitArrayList units_body->syntax_tree_node_list used_units_definitions program_definitions_list program_code_list using_list_unit->syntax_tree_nodefile_name_module->compilation_unit_name unit_name_node interface_part_node implementation_part_list initialization_part_list finalization_part_module->compilation_unit_name program_name_list used_unitsprogram_block_list using_namespaces_constant->long_const_address->addressed_value_funcname_value address_of_variant->statement_list conditionsexec_if_true_node->statementparam_variants conditionselse_statement_name->syntax_tree_nodeclass_namemeth_name_node->addressed_value_funcname_value left_value right_statement->statement_statement->statementlabel_statement->statementlabel_nameto_statement_statement->statementwhat_do_list do_with_call->dereference_list parametres_set_constant->expression_list values_const->expression_list elements_accessor_name->syntax_tree_nodeaccessor_name_accessor_name->syntax_tree_nodeaccessor_name_accessors->syntax_tree_node_accessor_name read_accessor_accessor_name write_accessor_property->subprogram_definitionproperty_name_definition property_typeindex_expression_accessors accessors_array_default array_default_parameter_list parameter_list_property->simple_property_parametres property_parametres_indexer_property_node is_default_members->syntax_tree_node_definitionArrayList members_modifer_node access_mod_modifer_node->syntax_tree_node_modifer access_level_body->syntax_tree_node_membersArrayList class_def_blocks_definition->type_definition_list class_parents_body body_indexer_property_node->syntax_tree_node_type_definition->type_definition_type tpunit_name_type_definition->type_definition_definition of_type_statement->statement_list statements_exception->syntax_tree_nodeexception_var_nameexception_type_namestat_exception_list->syntax_tree_node_exceptionArrayList on_exceptions_finally_statement->try_statement_list finally_statements_except_statement->try_statement_exception_list on_except_list else_statements_const_definition->statementnameval_const->expression_const_definitionArrayList rec_consts_type->type_definition_type_parts parts_definition base_type_type_definition->type_definition_list values_const->literalcconst_statement->statementexcep_char_const->literalchar_num_const_line->literalliterals_num_definition->type_definitionnum_of_symbols>syntax_tree_node_list vars_definition vars_type_list->syntax_tree_nodevars_type->syntax_tree_node_list case_exprs_type_parts parts_types->syntax_tree_node_typeArrayList vars_record_type->syntax_tree_nodevar_name_definition var_type_types vars_call->statement_value func_name_predefinition->type_declarationclass_name_const->const_node_type_definition->type_definition_definition elem_type>procedure_header>procedure_header_method_call->statementmethod_name_list exprs_node->addressed_value_value left_definition right_node->syntax_tree_node_definitions interface_definitions_list uses_modules_list using_namespaces_node->syntax_tree_node_list uses_modules_definitions implementation_definitions_list using_namespaces_expr->expressionleftright>proc_block_definitions defs_list program_code_block->syntax_tree_node_of_named_type_definition->type_definition_type_reference type_name_of_const_type_definition->type_definition>const_node_variants->syntax_tree_node_variantArrayList variants_expr->express