Update to GCC 15.1
This commit is contained in:
@ -108,7 +108,7 @@ along with GCC; see the file COPYING3. If not see
|
||||
ELSE "else"
|
||||
ELSIF "elsif"
|
||||
RETURN "return"
|
||||
REPEAT "repeat"
|
||||
PROGRAM "program"
|
||||
BREAK "break"
|
||||
BEGIN_BLOCK "begin"
|
||||
END_BLOCK "end"
|
||||
@ -166,15 +166,15 @@ along with GCC; see the file COPYING3. If not see
|
||||
%type <std::vector<std::string>> identifiers;
|
||||
%%
|
||||
program:
|
||||
constant_part type_part variable_part procedure_part "begin" statements "end" "."
|
||||
"program" constant_part type_part variable_part procedure_part "begin" statements "end" "."
|
||||
{
|
||||
auto tree = new boot::program(boot::make_position(@5));
|
||||
auto tree = new boot::program(boot::make_position(@6));
|
||||
|
||||
std::swap(tree->constants, $1);
|
||||
std::swap(tree->types , $2);
|
||||
std::swap(tree->variables, $3);
|
||||
std::swap(tree->procedures, $4);
|
||||
std::swap(tree->body, $6);
|
||||
std::swap(tree->constants, $2);
|
||||
std::swap(tree->types , $3);
|
||||
std::swap(tree->variables, $4);
|
||||
std::swap(tree->procedures, $5);
|
||||
std::swap(tree->body, $7);
|
||||
|
||||
driver.tree.reset(tree);
|
||||
}
|
||||
@ -211,12 +211,12 @@ procedure_heading:
|
||||
}
|
||||
}
|
||||
procedure_definition:
|
||||
"proc" identifier_definition procedure_heading ";" block
|
||||
"proc" identifier_definition procedure_heading block
|
||||
{
|
||||
$$ = new boot::procedure_definition(boot::make_position(@1), std::move($2), $3.second, $5);
|
||||
$$ = new boot::procedure_definition(boot::make_position(@1), std::move($2), $3.second, $4);
|
||||
std::swap($3.first, $$->parameter_names);
|
||||
}
|
||||
| "proc" identifier_definition procedure_heading ";" "extern"
|
||||
| "proc" identifier_definition procedure_heading "extern"
|
||||
{
|
||||
$$ = new boot::procedure_definition(boot::make_position(@1), std::move($2), $3.second);
|
||||
std::swap($3.first, $$->parameter_names);
|
||||
@ -419,8 +419,6 @@ statement:
|
||||
| return_statement { $$ = $1; }
|
||||
| "break" IDENTIFIER
|
||||
{ $$ = new boot::escape_statement(boot::make_position(@1), boot::escape_direction::end, $2); }
|
||||
| "repeat" IDENTIFIER
|
||||
{ $$ = new boot::escape_statement(boot::make_position(@1), boot::escape_direction::begin, $2); }
|
||||
| call_expression { $$ = $1; }
|
||||
| "defer" statements "end" { $$ = new boot::defer_statement(boot::make_position(@1), std::move($2)); }
|
||||
| "case" expression "of" switch_cases else_statements "end"
|
||||
|
Reference in New Issue
Block a user