Add lexer and parser sources
This commit is contained in:
@ -318,7 +318,7 @@ namespace elna::gcc
|
||||
}
|
||||
}
|
||||
|
||||
void generic_visitor::declare_procedure(boot::procedure_definition *const definition)
|
||||
void generic_visitor::declare_procedure(boot::procedure_declaration *const definition)
|
||||
{
|
||||
tree declaration_type = build_procedure_type(definition->heading());
|
||||
tree fndecl = build_fn_decl(definition->identifier.identifier.c_str(), declaration_type);
|
||||
@ -409,11 +409,11 @@ namespace elna::gcc
|
||||
{
|
||||
declaration->accept(this);
|
||||
}
|
||||
for (boot::constant_definition *const constant : unit->constants)
|
||||
for (boot::constant_declaration *const constant : unit->constants)
|
||||
{
|
||||
constant->accept(this);
|
||||
}
|
||||
for (boot::type_definition *const type : unit->types)
|
||||
for (boot::type_declaration *const type : unit->types)
|
||||
{
|
||||
type->accept(this);
|
||||
}
|
||||
@ -421,17 +421,17 @@ namespace elna::gcc
|
||||
{
|
||||
variable->accept(this);
|
||||
}
|
||||
for (boot::procedure_definition *const procedure : unit->procedures)
|
||||
for (boot::procedure_declaration *const procedure : unit->procedures)
|
||||
{
|
||||
declare_procedure(procedure);
|
||||
}
|
||||
for (boot::procedure_definition *const procedure : unit->procedures)
|
||||
for (boot::procedure_declaration *const procedure : unit->procedures)
|
||||
{
|
||||
procedure->accept(this);
|
||||
}
|
||||
}
|
||||
|
||||
void generic_visitor::visit(boot::procedure_definition *definition)
|
||||
void generic_visitor::visit(boot::procedure_declaration *definition)
|
||||
{
|
||||
if (!definition->body.has_value())
|
||||
{
|
||||
@ -449,7 +449,7 @@ namespace elna::gcc
|
||||
{
|
||||
this->symbols->enter(IDENTIFIER_POINTER(DECL_NAME(argument_chain)), argument_chain);
|
||||
}
|
||||
for (boot::constant_definition *const constant : definition->body.value().constants())
|
||||
for (boot::constant_declaration *const constant : definition->body.value().constants())
|
||||
{
|
||||
constant->accept(this);
|
||||
}
|
||||
@ -818,7 +818,7 @@ namespace elna::gcc
|
||||
}
|
||||
}
|
||||
|
||||
void generic_visitor::visit(boot::constant_definition *definition)
|
||||
void generic_visitor::visit(boot::constant_declaration *definition)
|
||||
{
|
||||
location_t definition_location = get_location(&definition->position());
|
||||
definition->body().accept(this);
|
||||
@ -858,7 +858,7 @@ namespace elna::gcc
|
||||
this->current_expression = NULL_TREE;
|
||||
}
|
||||
|
||||
void generic_visitor::visit(boot::type_definition *definition)
|
||||
void generic_visitor::visit(boot::type_declaration *definition)
|
||||
{
|
||||
location_t definition_location = get_location(&definition->position());
|
||||
this->current_expression = this->unresolved.at(definition->identifier.identifier);
|
||||
|
Reference in New Issue
Block a user