Система программирования 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