F diff --git a/src/backend/text/print/print.c b/src/backend/text/print/print.c
--- a/src/backend/text/print/print.c
+++ b/src/backend/text/print/print.c
case KW_COLUMN:
append_to_last_line(":",compile_data->lines);
break;
- case KW_SEMI_COLUMN:
+ case KW_SEMICOLON:
append_to_last_line(";",compile_data->lines);
break;
case KW_LESS:
case KW_COLUMN:
fprintf(out,"KW_COLUMN");
break;
- case KW_SEMI_COLUMN:
- fprintf(out,"KW_SEMI_COLUMN");
+ case KW_SEMICOLON:
+ fprintf(out,"KW_SEMICOLON");
break;
case KW_LESS:
fprintf(out,"KW_LESS");
F diff --git a/src/frontend/lex/lexer.c b/src/frontend/lex/lexer.c
--- a/src/frontend/lex/lexer.c
+++ b/src/frontend/lex/lexer.c
case KW_DOT:
case KW_ARROW:
case KW_COLUMN:
- case KW_SEMI_COLUMN:
+ case KW_SEMICOLON:
case KW_LESS:
case KW_EQ:
case KW_EQEQ:
F diff --git a/src/frontend/parse/parse_declaration.c b/src/frontend/parse/parse_declaration.c
--- a/src/frontend/parse/parse_declaration.c
+++ b/src/frontend/parse/parse_declaration.c
struct Denoted *hold;
prototype=parse_declaration_specifiers(translation_data,scope);
- while(!get_and_check(translation_data,KW_SEMI_COLUMN))
+ while(!get_and_check(translation_data,KW_SEMICOLON))
{
hold=parse_declarator(translation_data,scope,prototype);
parse_function_definitions=0; /*here so we don't have int a,main(){ return 0 }*/
- if(!get_and_check(translation_data,KW_COMMA) && !check(translation_data,KW_SEMI_COLUMN))
+ if(!get_and_check(translation_data,KW_COMMA) && !check(translation_data,KW_SEMICOLON))
{
/*TODO error*/
Queue_Push(where_to_push_objects,get_declaration_error_tree(NULL));
- push_translation_error("semi column expected",translation_data);
+ push_translation_error("Semicolon expected",translation_data);
break;
}
}
struct Denoted_Object *hold_denoted_object;
prototype=parse_specifier_qualifier_list(translation_data,(struct Scope*)base->inner_namespace);
- while(!get_and_check(translation_data,KW_SEMI_COLUMN))
+ while(!get_and_check(translation_data,KW_SEMICOLON))
{
hold_denoted=parse_struct_declarator(translation_data,(struct Scope*)base->inner_namespace,prototype);
if(hold_denoted!=NULL && hold_denoted->denotation!=DT_Error)
return 0;
}
- if(!get_and_check(translation_data,KW_COMMA) && !check(translation_data,KW_SEMI_COLUMN))
+ if(!get_and_check(translation_data,KW_COMMA) && !check(translation_data,KW_SEMICOLON))
{
wonky_free(prototype);
push_translation_error("semi column expected in struct declaration",translation_data);
F diff --git a/src/frontend/parse/parse_statement.c b/src/frontend/parse/parse_statement.c
--- a/src/frontend/parse/parse_statement.c
+++ b/src/frontend/parse/parse_statement.c
{
hold->condition=parse_expression(translation_data,scope);
- if(get_and_check(translation_data,KW_CLOSE_NORMAL) && get_and_check(translation_data,KW_SEMI_COLUMN))
+ if(get_and_check(translation_data,KW_CLOSE_NORMAL) && get_and_check(translation_data,KW_SEMICOLON))
{
wonky_assert(is_valid_do_while_statement(hold));
return (struct AST*)hold;
struct token_identifier *hold_id_token;
hold_id_token=(struct token_identifier*)get_next_token(translation_data);
ret=get_goto_statement_tree(hold_id_token->id,scope,translation_data);
- if(get_and_check(translation_data,KW_SEMI_COLUMN))
+ if(get_and_check(translation_data,KW_SEMICOLON))
{
wonky_assert(is_valid_goto_statement(ret));
return (struct AST*)ret;
{
struct AST_Break_Continue_Statement *hold;
- if(get_and_check(translation_data,KW_SEMI_COLUMN))
+ if(get_and_check(translation_data,KW_SEMICOLON))
{
hold=get_break_continue_statement_tree(parse_data->continue_statement_owner,translation_data,ST_CONTINUE);
{
struct AST_Break_Continue_Statement *hold;
- if(get_and_check(translation_data,KW_SEMI_COLUMN))
+ if(get_and_check(translation_data,KW_SEMICOLON))
{
hold=get_break_continue_statement_tree(parse_data->break_statement_owner,translation_data,ST_BREAK);
struct AST* parse_finish_return_statement(struct Translation_Data* translation_data,struct Scope *scope,struct Parse_Statement_Data *parse_data)
{
struct AST_Return_Statement *hold;
- if(get_and_check(translation_data,KW_SEMI_COLUMN))
+ if(get_and_check(translation_data,KW_SEMICOLON))
{
hold=get_return_statement_tree(get_nop_tree(),translation_data,scope);
hold=get_return_statement_tree(parse_expression(translation_data,scope),translation_data,scope);
- if(get_and_check(translation_data,KW_SEMI_COLUMN))
+ if(get_and_check(translation_data,KW_SEMICOLON))
{
return (struct AST*)hold;
}else
struct AST* parse_expression_statement(struct Translation_Data* translation_data,struct Scope *scope,struct Parse_Statement_Data *parse_data)
{
struct AST *hold;
- if(get_and_check(translation_data,KW_SEMI_COLUMN))
+ if(get_and_check(translation_data,KW_SEMICOLON))
{
hold=get_nop_tree();
return (struct AST*)hold;
push_translation_error(" in statement",translation_data);
return (struct AST*)get_error_tree(hold);
}
- if(get_and_check(translation_data,KW_SEMI_COLUMN))
+ if(get_and_check(translation_data,KW_SEMICOLON))
{
wonky_assert(is_valid_ast(hold));
return hold;
void chase_next_semicolumn(struct Translation_Data *translation_data)
{
/*chase ; and start parsing next declaration*/
- while(!get_and_check(translation_data,KW_SEMI_COLUMN) && !get_and_check(translation_data,KW_CLOSE_CURLY) &&
+ while(!get_and_check(translation_data,KW_SEMICOLON) && !get_and_check(translation_data,KW_CLOSE_CURLY) &&
!translation_eof(translation_data))
{
chomp(translation_data);
F diff --git a/src/semantics/program/translation_unit.c b/src/semantics/program/translation_unit.c
--- a/src/semantics/program/translation_unit.c
+++ b/src/semantics/program/translation_unit.c
case KW_DOT:
include_name=gstrn_append(include_name,".",100);
break;
+ case KW_MINUS:
+ include_name=gstrn_append(include_name,"-",100);
+ break;
default:
push_token_ptr_error("Unsupported symbol found inside filename in include directive with angular brackets and macro expansion",ptr);
ptr->state=TOKEN_POINTER_STATE_ERROR;
F diff --git a/src/syntax/automatas/automata.hh b/src/syntax/automatas/automata.hh
--- a/src/syntax/automatas/automata.hh
+++ b/src/syntax/automatas/automata.hh
KW_DOT,
KW_ARROW,
KW_COLUMN,
- KW_SEMI_COLUMN,
+ KW_SEMICOLON,
KW_LESS,
KW_EQ,
KW_EQEQ,
PKW_STDC_HOSTED_MACRO,
PKW_STDC_VERSION_MACRO,
PKW_TIME_MACRO,
+ PKW_ANGULAR_BRACKET_INCLUDE_NAME,
LT_EOF,
LT_ERROR,
F diff --git a/src/syntax/automatas/generator/keyword_list.c b/src/syntax/automatas/generator/keyword_list.c
--- a/src/syntax/automatas/generator/keyword_list.c
+++ b/src/syntax/automatas/generator/keyword_list.c
},
{
.keyword=";",
- .preprocessing_kw_string="KW_SEMI_COLUMN",
- .kw_string="KW_SEMI_COLUMN",
+ .preprocessing_kw_string="KW_SEMICOLON",
+ .kw_string="KW_SEMICOLON",
.action_string="AUTOMATA_ACTION_DISPENSE_TOKEN",
.data_string="NULL"
},