Система программирования PascalABC.NET

Структура компилятора PascalABC.NET. Структура дерева и примеры узлов. Упрощенный синтаксис записи модулей. Объявление имен, совпадающих с ключевыми словами. Генерация узла семантического дерева. Сериализация и десериализация узлов семантического дерева.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 18.12.2011
Размер файла 1,8 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

| tkWhile

| tkWith

| tkNil

| tkGoto

| tkOf

| tkLabel

| tkProgram

<reserved_keyword>

::= tkOperator

<overload_operator>

::= 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

| <assign_operator>

<assign_operator>

::= tkAssign

| tkPlusEqual

| tkMinusEqual

| tkMultEqual

| tkDivEqual

ПРИЛОЖЕНИЕ 2. Классы синтаксического дерева

Классы отображены в следующем формате:

имя_класса->базовый_класс

тип_поля1 поле1

тип_поля2 поле2

. . .

syntax_tree_node

SourceContext source_context

statement_list->statement

statementArrayList subnodes

expression->syntax_tree_node

assign->statement

addressed_value to

expression from

bin_expr->addressed_value

expression left

expression right

op_type operation_type

un_expr->addressed_value

expression subnode

op_type operation_type

const_node->addressed_value

bool_const->const_node

bool val

int_const->const_node

long val

double_const->const_node

double val

statement->syntax_tree_node

subprogram_body->syntax_tree_node

statement_list subprogram_code

subprogram_definitions subprogram_defs

ident->addressed_value_funcname

string name

long_const->const_node

long val

addressed_value->expression

type_definition->syntax_tree_node

named_type_reference->type_definition

ident unit_name

ident type_name

variable_definitions->subprogram_definition

var_def_statementArrayList var_definitions

ident_list->syntax_tree_node

identArrayList idents

var_def_statement->subprogram_definition

ident_list vars

type_definition vars_type

expression inital_value

subprogram_definition->type_definition

subprogram_definitions->syntax_tree_node

subprogram_definitionArrayList defs

program_tree->syntax_tree_node

compilation_unitArrayList compilation_units

program_name->syntax_tree_node

ident prog_name

string_const->literal

string Value

expression_list->expression

expressionArrayList expressions

dereference->addressed_value_funcname

addressed_value dereferencing_value

roof_dereference->dereference

indexer->dereference

expression_list indexes

for_node->statement

ident loop_variable

expression initial_value

expression finish_value

statement statements

for_cycle_type cycle_type

expression increment_value

repeat_node->statement

statement statements

expression expr

while_node->statement

expression expr

statement statements

if_node->statement

expression condition

statement then_body

statement else_body

ref_type->type_definition

type_definition pointed_to

diapason->type_definition

expression left

expression right

indexers_types->type_definition

type_definitionArrayList indexers

array_type->type_definition

indexers_types indexers

type_definition elemets_types

label_definitions->subprogram_definition

ident_list labels

procedure_attribute->ident

proc_attribute attribute_type

typed_parametres->syntax_tree_node

ident_list idents

type_definition vars_type

parametr_kind param_kind

expression inital_value

formal_parametres->syntax_tree_node

typed_parametresArrayList params_list

procedure_attributes_list->syntax_tree_node

procedure_attributeArrayList proc_attributes

procedure_header->subprogram_definition

formal_parametres parametres

procedure_attributes_list proc_attributes

method_name name

bool of_object

bool class_keyword

function_header->procedure_header

type_definition return_type

procedure_definition->subprogram_definition

procedure_header proc_header

proc_block proc_body

type_declaration->subprogram_definition

ident type_name

type_definition type_def

type_declarations->subprogram_definition

type_declarationArrayList types_decl

simple_const_definition->const_definition

typed_const_definition->const_definition

type_definition const_type

const_definition->syntax_tree_node

ident const_name

expression const_value

consts_definitions_list->subprogram_definition

const_definitionArrayList const_defs

unit_name->syntax_tree_node

ident idunit_name

uses_unit->syntax_tree_node

ident unit_name

uses_unit_in->uses_unit

string_const in_file

uses_list->syntax_tree_node

uses_unitArrayList units

program_body->syntax_tree_node

uses_list used_units

subprogram_definitions program_definitions

statement_list program_code

using_list using_list

compilation_unit->syntax_tree_node

string file_name

unit_module->compilation_unit

unit_name unit_name

interface_node interface_part

implementation_node implementation_part

statement_list initialization_part

statement_list finalization_part

program_module->compilation_unit

program_name program_name

uses_list used_units

block program_block

using_list using_namespaces

hex_constant->long_const

get_address->addressed_value_funcname

addressed_value address_of

case_variant->statement

expression_list conditions

statement exec_if_true

case_node->statement

expression param

case_variants conditions

statement else_statement

method_name->syntax_tree_node

ident class_name

ident meth_name

dot_node->addressed_value_funcname

addressed_value left

addressed_value right

empty_statement->statement

goto_statement->statement

ident label

labeled_statement->statement

ident label_name

statement to_statement

with_statement->statement

statement what_do

expression_list do_with

method_call->dereference

expression_list parametres

pascal_set_constant->expression

expression_list values

array_const->expression

expression_list elements

write_accessor_name->syntax_tree_node

ident accessor_name

read_accessor_name->syntax_tree_node

ident accessor_name

property_accessors->syntax_tree_node

read_accessor_name read_accessor

write_accessor_name write_accessor

simple_property->subprogram_definition

ident property_name

type_definition property_type

expression index_expression

property_accessors accessors

property_array_default array_default

property_parameter_list parameter_list

index_property->simple_property

formal_parametres property_parametres

default_indexer_property_node is_default

class_members->syntax_tree_node

subprogram_definitionArrayList members

access_modifer_node access_mod

access_modifer_node->syntax_tree_node

access_modifer access_level

class_body->syntax_tree_node

class_membersArrayList class_def_blocks

class_definition->type_definition

ident_list class_parents

class_body body

default_indexer_property_node->syntax_tree_node

known_type_definition->type_definition

known_type tp

ident unit_name

set_type_definition->type_definition

type_definition of_type

try_statement->statement

statement_list statements

on_exception->syntax_tree_node

ident exception_var_name

ident exception_type_name

statement stat

on_exception_list->syntax_tree_node

on_exceptionArrayList on_exceptions

try_finally_statement->try_statement

statement_list finally_statements

try_except_statement->try_statement

on_exception_list on_except

statement_list else_statements

record_const_definition->statement

ident name

expression val

record_const->expression

record_const_definitionArrayList rec_consts

record_type->type_definition

record_type_parts parts

type_definition base_type

enum_type_definition->type_definition

ident_list values

char_const->literal

char cconst

raise_statement->statement

expression excep

sharp_char_const->literal

int char_num

literal_const_line->literal

literalArrayList literals

string_num_definition->type_definition

expression num_of_symbols

variant->syntax_tree_node

ident_list vars

type_definition vars_type

variant_list->syntax_tree_node

variantArrayList vars

variant_type->syntax_tree_node

expression_list case_exprs

record_type_parts parts

variant_types->syntax_tree_node

variant_typeArrayList vars

variant_record_type->syntax_tree_node

ident var_name

type_definition var_type

variant_types vars

procedure_call->statement

addressed_value func_name

class_predefinition->type_declaration

ident class_name

nil_const->const_node

file_type_definition->type_definition

type_definition elem_type

constructor->procedure_header

destructor->procedure_header

inherited_method_call->statement

ident method_name

expression_list exprs

as_node->addressed_value

addressed_value left

type_definition right

interface_node->syntax_tree_node

subprogram_definitions interface_definitions

uses_list uses_modules

using_list using_namespaces

implementation_node->syntax_tree_node

uses_list uses_modules

subprogram_definitions implementation_definitions

using_list using_namespaces

diap_expr->expression

expression left

expression right

block->proc_block

subprogram_definitions defs

statement_list program_code

proc_block->syntax_tree_node

array_of_named_type_definition->type_definition

named_type_reference type_name

array_of_const_type_definition->type_definition

literal->const_node

case_variants->syntax_tree_node

case_variantArrayList variants

diapason_expr->expression

expression left

expression right

var_def_list->syntax_tree_node

var_def_statementArrayList vars

record_type_parts->syntax_tree_node

var_def_list fixed_part

variant_record_type variant_part

property_array_default->syntax_tree_node

property_interface

property_parameter_list parameter_list

type_definition property_type

expression index_expression

property_parameter->syntax_tree_node

ident_list names

type_definition type

property_parameter_list->syntax_tree_node

property_parameterArrayList parameters

inherited_ident->ident

format_expr->expression

expression expr

expression format1

expression format2

initfinal_part

statement_list initialization_sect

statement_list finalization_sect

token_info->syntax_tree_node

string text

raise_stmt->statement

expression expr

expression address

op_type_node->token_info

op_type type

file_type->type_definition

type_definition file_of_type

known_type_ident->ident

known_type type

exception_handler->syntax_tree_node

ident variable

named_type_reference type_name

statement statements

exception_ident->syntax_tree_node

ident variable

named_type_reference type_name

exception_handler_list->syntax_tree_node

exception_handlerArrayList handlers

exception_block->syntax_tree_node

statement_list stmt_list

exception_handler_list handlers

statement_list else_stmt_list

try_handler->syntax_tree_node

try_handler_finally->try_handler

statement_list stmt_list

try_handler_except->try_handler

exception_block except_block

try_stmt->statement

statement_list stmt_list

try_handler handler

inherited_message->statement

external_directive->proc_block

expression modulename

expression name

name_space->syntax_tree_node

ident_list name_space_parts

using_list->syntax_tree_node

name_spaceArrayList namespaces

oberon_import_module->uses_unit

ident new_name

oberon_module->compilation_unit

ident first_name

ident second_name

uses_list import_list

subprogram_definitions definitions

statement_list module_code

oberon_ident_with_export_marker->ident

oberon_export_marker marker

oberon_exit_stmt->statement

string text

return_stmt->statement

expression expr

oberon_procedure_receiver->syntax_tree_node

parametr_kind param_kind

ident receiver_name

ident receiver_typename

oberon_procedure_header->function_header

oberon_procedure_receiver receiver

ident first_name

ident second_name

oberon_withstmt_guardstat->syntax_tree_node

addressed_value name

type_definition type_name

statement stmt

oberon_withstmt_guardstat_list->syntax_tree_node

oberon_withstmt_guardstatArrayList guardstats

oberon_withstmt->statement

oberon_withstmt_guardstat_list quardstat_list

statement else_stmt

loop_stmt->statement

statement stmt

foreach_stmt->statement

ident identifier

type_definition type_name

expression in_what

statement stmt

operator_name->method_name

op_type_node operator_type

addressed_value_funcname->addressed_value

named_type_reference_list->syntax_syntax_tree_node

List<named_type_reference> types

template_param_list->dereference

List<type_definition> params_list

template_type_reference->named_type_reference

named_type_reference name

template_param_list params_list

int64_const->const_node

Int64 val

uint64_const->const_node

UInt64 val

new_expr->addressed_value

named_type_reference name_ref

expression_list params_list

type_definition_list->syntax_syntax_tree_node

List<type_definition> defs

where_definition->syntax_syntax_tree_node

ident_list names

type_definition_list types

type_definition_list constructor_specific_params

where_definition_list->syntax_syntax_tree_node

List<where_definition> defs

sizeof_operator->expression

named_type_reference type_name

typeof_operator->expression

named_type_reference type_name

compiler_directive->syntax_syntax_tree_node

string Name

string Directive

operator_name_ident->ident

op_type operator_type

var_statement->statement

var_def_statement var_def

Размещено на Allbest.ru


Подобные документы

  • Рассмотрение нелинейных динамических структур данных в виде бинарного дерева. Построение дерева двоичного поиска. Реализация трех обходов дерева, выведение обходов на экран компьютера. Разработка текста программы. Симметричноправая прошивка дерева.

    контрольная работа [81,6 K], добавлен 14.12.2011

  • Сбалансированные многоходовые деревья поиска. Исследование структуры B+-дерева, её основные операции. Доказательство их вычислительной сложности. Утверждение о высоте. Поиск, вставка, удаление записи, поиск по диапазону. B+-деревья в системах баз данных.

    курсовая работа [705,5 K], добавлен 26.12.2013

  • Организация таблицы идентификаторов, ее содержание и назначение. Метод бинарного дерева и цепочек. Проектирование лексического анализатора и схема распознавателя. Построение дерева вывода, синтаксический анализатор. Анализ результатов работы программы.

    курсовая работа [1,0 M], добавлен 25.12.2014

  • Простой и быстрый переход по иерархической файловой системе. Наличие файлового менеджера. Ряд глобальных переменных. Основные пользовательские функции. Основная идея формирования дерева. Функция добавления записи в список. Обновление дерева каталогов.

    курсовая работа [243,1 K], добавлен 04.06.2011

  • Понятие и базовые свойства ориентированного дерева. Обходы (способы нумерации вершин) в глубину и ширину. Представление бинарных графов с помощью указателей и массива, скобочной записи, списком прямых предков. Сбалансированность дерева двоичного поиска.

    презентация [330,6 K], добавлен 19.10.2014

  • Организация бинарного дерева. Порядок размещения данных в нелинейных структурах. Организация пользовательского интерфейса. Симметричный обход дерева. Параллельная работа обработчиков исключений. Расширенный графический интерфейс и его возможности.

    курсовая работа [426,0 K], добавлен 24.06.2013

  • Краткая история становления языка программирования Pascal и основные понятия графики. Основные функции и процедуры работы с графикой в PascalABC. Создание графического проекта: понятие "фрактал" и реализация треугольника. Построения фрактала "Дерево".

    курсовая работа [1,4 M], добавлен 26.10.2014

  • Разработка программы на языке С#, которая будет заниматься построением бинарного дерева для исходных данных и их редактированием, поиском информации о товарах по заданному ключу. Графические схемы алгоритмов поиска и удаления элемента бинарного дерева.

    курсовая работа [796,9 K], добавлен 22.02.2016

  • Понятие семантики; обзор и анализ существующих средств семантического разбора естественно-языковых текстов. Разработка алгоритма работы системы на основе семантического анализа, его реализация на языке программирования; проектирование интерфейса системы.

    дипломная работа [1,7 M], добавлен 18.03.2012

  • Изучение структуры доменных имен и описание возможностей их системы по использованию символьных наименований узлов в IP-сетях. Записи ресурсов домена и функции сети по расширению имен и зон обратного просмотра. Делегирование ответственности за домены.

    презентация [104,2 K], добавлен 25.10.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.