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