From df0916d407268207f9eb6640cec5f0278b344a1e Mon Sep 17 00:00:00 2001 From: Dayanne Fernandes Date: Fri, 16 Oct 2020 10:45:33 -0300 Subject: [PATCH 1/2] draft for parser doc --- cppython.pdf | Bin 253450 -> 275311 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/cppython.pdf b/cppython.pdf index a09c9595000d650d5791a87011622660cd4f259e..e178577ea092046ba1170a1535083e7d625d8865 100644 GIT binary patch delta 158765 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

SWlH3ey+@QG|674zQoovr;eUat`Nq8 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 From 3e60d7f515a919d2514a299aee8596e0d117b03c Mon Sep 17 00:00:00 2001 From: Dayanne Fernandes Date: Sat, 17 Oct 2020 12:01:53 -0300 Subject: [PATCH 2/2] inital parser --- .gitignore | 4 +- src/Makefile | 15 + src/README.md | 51 +- src/ast.c | 32 + src/ast.h | 31 + src/build.sh | 5 - src/cppython.lex | 195 ++-- src/cppython.y | 52 + src/{lex.yy.c => lexer.c} | 425 +++---- src/lexer.h | 474 ++++++++ src/main.c | 22 + src/parser.c | 1597 +++++++++++++++++++++++++++ src/parser.h | 83 ++ src/parser.output | 177 +++ src/sym_tab.c | 34 + src/sym_tab.h | 19 + src/tests/{ => lexer}/invalid_1.ppy | 0 src/tests/{ => lexer}/invalid_2.ppy | 0 src/tests/{ => lexer}/valid_1.ppy | 0 src/tests/{ => lexer}/valid_2.ppy | 0 src/tests/parser/invalid_1.ppy | 1 + src/tests/parser/invalid_2.ppy | 2 + src/tests/parser/valid_1.ppy | 1 + src/tests/parser/valid_2.ppy | 1 + 24 files changed, 2814 insertions(+), 407 deletions(-) create mode 100644 src/Makefile create mode 100644 src/ast.c create mode 100644 src/ast.h delete mode 100755 src/build.sh create mode 100644 src/cppython.y rename src/{lex.yy.c => lexer.c} (84%) create mode 100644 src/lexer.h create mode 100644 src/main.c create mode 100644 src/parser.c create mode 100644 src/parser.h create mode 100644 src/parser.output create mode 100644 src/sym_tab.c create mode 100644 src/sym_tab.h rename src/tests/{ => lexer}/invalid_1.ppy (100%) rename src/tests/{ => lexer}/invalid_2.ppy (100%) rename src/tests/{ => lexer}/valid_1.ppy (100%) rename src/tests/{ => lexer}/valid_2.ppy (100%) create mode 100644 src/tests/parser/invalid_1.ppy create mode 100644 src/tests/parser/invalid_2.ppy create mode 100644 src/tests/parser/valid_1.ppy create mode 100644 src/tests/parser/valid_2.ppy diff --git a/.gitignore b/.gitignore index b682d41..790dad5 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ -cppython \ No newline at end of file +cppython +*.tab.* +*.yy.* \ No newline at end of file diff --git a/src/Makefile b/src/Makefile new file mode 100644 index 0000000..d0b775f --- /dev/null +++ b/src/Makefile @@ -0,0 +1,15 @@ +FILES = parser.c lexer.c ast.c sym_tab.c main.c +CFLAGS = -g -Wall -pedantic -x c +CC = gcc + +cppython: $(FILES) ast.h sym_tab.h + $(CC) $(CFLAGS) $(FILES) -o cppython -lfl + +lexer.c: cppython.lex + flex cppython.lex + +parser.c: cppython.y + bison -d -v cppython.y + +clean: + rm -f *.o *~ lexer.c lexer.h parser.c parser.h parser.output cppython diff --git a/src/README.md b/src/README.md index c133f4b..81c33cc 100644 --- a/src/README.md +++ b/src/README.md @@ -3,46 +3,63 @@ ## Requirements - Flex 2.6.4 +- Bison 3.5.1 - GCC 9.3.0 ## Usage ```bash -$ chmod +x build.sh -$ ./build.sh -$ ./cppython tests/valid_1.ppy # for valid test -$ ./cppython tests/incorrect_1.ppy # for invalid test +$ make +$ ./cppython tests/parser/valid_1.ppy # for valid test +$ ./cppython tests/parser/invalid_1.ppy # for invalid test ``` ## Output examples - Valid input 1: - - Commands: ./build.sh && ./cppython tests/valid_1.ppy + - Commands: ./cppython tests/parser/valid_1.ppy - Output: ```bash - CPPython interpreter: + Welcome to CPPython interpreter: + Lexer/parser: - line 1. - line 2. - line 3. + line 1. Token: + + Creating integer expression node: 1 + Token: + Assign expression. + Token: + + Creating integer expression node: 1 + + line 2. + Assign expression. + + Creating binary expression node: 1 + 1 + 1 + + AST created. + + Lexer and parser finished. ``` - Invalid input 2: - - Commands: ./build.sh && ./cppython tests/invalid_1.ppy + - Commands: ./cppython tests/parser/invalid_1.ppy - Output: ```bash - CPPython interpreter: + Welcome to CPPython interpreter: + Lexer/parser: + + line 1. Token: + + Creating integer expression node: 1 - line 1. - line 2. - line 3. - line 4. +#include +#include "ast.h" + +ast_node* create_bin_expr(char *operator, ast_node* left, ast_node* right) { + printf("\nCreating binary expression node: %d %s %d\n", + left->op.integer_expr, operator, right->op.integer_expr); + ast_node* expr = (ast_node*) malloc(sizeof(ast_node)); + expr->op.binary_expr.operator = operator; + expr->op.binary_expr.left = left; + expr->op.binary_expr.right = right; + return expr; +} + +ast_node* create_int_expr(int value) { + printf("\n\nCreating integer expression node: %d\n", value); + ast_node* expr = (ast_node*) malloc(sizeof(ast_node)); + expr->op.integer_expr = value; + return expr; +} + +void create_ast(ast_node* expression) { + ast* ast_obj = (ast*) malloc(sizeof(ast)); + ast_obj->head = expression; + ast_obj->next = NULL; + printf("\nAST created.\n"); +} + +ast_node* show(ast_node* expression) { + printf("\nAssign expression.\n"); + return expression; +} \ No newline at end of file diff --git a/src/ast.h b/src/ast.h new file mode 100644 index 0000000..c56ff7f --- /dev/null +++ b/src/ast.h @@ -0,0 +1,31 @@ +#ifndef __AST_H__ +#define __AST_H__ + +int line, column; + +typedef struct exp { + union { + int integer_expr; + char *string_expr; + char *variable_expr; + struct { + char *operator; + struct exp* left; + struct exp* right; + } binary_expr; + } op; +} ast_node; + +typedef struct expr_list { + ast_node* head; + struct expr_list* next; +} ast; + +void create_ast(ast_node* expression); +ast_node* show(ast_node* expression); +ast_node* create_int_expr(int value); +ast_node* create_bin_expr(char *operator, ast_node* left, ast_node* right); + +void handle_token(int token); + +#endif // __AST_H__ \ No newline at end of file diff --git a/src/build.sh b/src/build.sh deleted file mode 100755 index a8bc7b4..0000000 --- a/src/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -rm -f cppython lex.yy.c -flex cppython.lex -gcc lex.yy.c -lfl -o cppython \ No newline at end of file diff --git a/src/cppython.lex b/src/cppython.lex index e7659ea..ee56e15 100644 --- a/src/cppython.lex +++ b/src/cppython.lex @@ -2,74 +2,44 @@ %{ #include - #include "uthash.h" + #include "sym_tab.h" + #include "ast.h" + #include "parser.h" enum TOKENS{ - ERROR=1, - NEWLINE, - WHITESPACE, - ID, - KEYWORD, - INTEGER, - FLOAT, - OPERATOR, - DELIMITER, - BOOLEAN, - BOOLEAN_OP, - STRING, - COMMENT + ERROR_TOK=1, + NEWLINE_TOK, + WHITESPACE_TOK, + ID_TOK, + KEYWORD_TOK, + FLOAT_TOK, + DELIMITER_TOK, + BOOLEAN_TOK, + BOOLEAN_OP_TOK, + STRING_TOK, + COMMENT_TOK, + INTEGER_TOK, + ADD_TOK, + SUB_TOK, + MULT_TOK, + DIV_TOK }; - - int line, column; - - struct word { - int key; - char name[50]; - UT_hash_handle hh; /* makes this structure hashable */ - }; - - struct word *symbol_table = NULL; - - void add_word(int key, char *name) { - struct word *s; - HASH_FIND_INT(symbol_table, &key, s); - if (s == NULL) { - s = (struct word *) malloc(sizeof *s); - s->key = key; - HASH_ADD_INT(symbol_table, key, s); - } - strcpy(s->name, name); - } - - struct word *find_word(int word_key) { - struct word *s; - - HASH_FIND_INT(symbol_table, &word_key, s); - return s; - } - - void delete_word(struct word *s) { - HASH_DEL(symbol_table, s); - free(s); - } - - void delete_all() { - struct word *cur_word, *tmp; - - HASH_ITER(hh, symbol_table, cur_word, tmp) { - HASH_DEL(symbol_table, cur_word); - free(cur_word); - } - } - %} +%option outfile="lexer.c" header-file="lexer.h" +%option nounput +%option noinput + /* regex and token definition */ DIGIT [0-9] NDIGIT [1-9] LETTER [a-zA-Z] -OPERATOR ("-"|"+"|"*"|"/") +SUB ("-") +ADD ("+") +MULT ("*") +DIV ("/") +OPERATOR (ADD|SUB|MULT|DIV) BOOLEAN_OP ("=="|"<="|">="|"!="|"<"|">"|"~"|"|"|"&"|"and"|"or"|"not") DELIMITER ("="|"("|")"|"["|"]"|";"|","|"."|":") BOOLEAN ("True"|"False") @@ -86,31 +56,34 @@ NUMBER ({INTEGER}|{FLOAT}) /* reserved keywords */ -("input"|"print"|"if"|"elif"|"else"|"return"|"def"|"for"|"while") return KEYWORD; +("input"|"print"|"if"|"elif"|"else"|"return"|"def"|"for"|"while") ; - /* arithmetics expressions */ + /* arithmetic expressions */ -{INTEGER} return INTEGER; -{FLOAT} return FLOAT; -{OPERATOR} return OPERATOR; -{DELIMITER} return DELIMITER; +{INTEGER} { handle_token(INTEGER_TOK); return INTEGER; }; +{FLOAT} ; +{SUB} { handle_token(SUB_TOK); return SUB; }; +{ADD} { handle_token(ADD_TOK); return ADD; }; +{MULT} { handle_token(MULT_TOK); return MULT; }; +{DIV} { handle_token(DIV_TOK); return DIV; }; +{DELIMITER} ; /* conditional and booleans expressions */ -{BOOLEAN} return BOOLEAN; -{BOOLEAN_OP} return BOOLEAN_OP; +{BOOLEAN} ; +{BOOLEAN_OP} ; /* structure helpers */ -#.*{NEWLINE} return COMMENT; -{STRING} return STRING; +#.*{NEWLINE} ; +{STRING} ; /* general */ -{NEWLINE} return NEWLINE; -{WHITESPACE} return WHITESPACE; -{VAR} return ID; -. return ERROR; /* any character but newline */ +{NEWLINE} { handle_token(NEWLINE_TOK); }; +{WHITESPACE} ; +{VAR} ; +. { handle_token(ERROR_TOK); }; /* any character but newline */ %% @@ -120,69 +93,39 @@ NUMBER ({INTEGER}|{FLOAT}) - Output: */ -void switcher(int token) { +void handle_token(int token) { switch (token) { - case ERROR: - printf("\nLexerError: line %d, column %d, token '%s' is not recognized\n", line, column, yytext); - break; - case NEWLINE: - line += 1; - column = 0; // reset column index - printf("\nline %d. ", line); - break; - case WHITESPACE: - break; // ignore - case ID: ; - int cur_key = HASH_COUNT(symbol_table) + 1; - add_word(cur_key, yytext); - printf(" ", cur_key); + case INTEGER_TOK: + printf("Token: ", yytext); + yylval.value = atoi(yytext); break; - case KEYWORD: - printf(" ", yytext); + case SUB_TOK: + printf("Token: ", yytext); + yylval.op = yytext; break; - case STRING: - printf(" ", yytext); + case ADD_TOK: + printf("Token: ", yytext); + yylval.op = yytext; break; - case DELIMITER: - printf(" ", yytext); + case MULT_TOK: + printf("Token: ", yytext); + yylval.op = yytext; break; - case OPERATOR: - printf(" ", yytext); + case DIV_TOK: + printf("Token: ", yytext); + yylval.op = yytext; break; - case BOOLEAN: - printf(" ", yytext); - break; - case BOOLEAN_OP: - printf(" ", yytext); - break; - case INTEGER: - printf(" ", yytext); - break; - case FLOAT: - printf(" ", yytext); - break; - case COMMENT: ; - char *comment = yytext; - comment[strlen(comment) - 1] = 0; - printf(" ", comment); + case NEWLINE_TOK: line += 1; column = 0; // reset column index printf("\nline %d. ", line); break; + case ERROR_TOK: + printf("\nLexerError: line %d, column %d, token '%s' is not recognized\n", + line, column, yytext); + exit(1); default: - printf("\nUndefined error.\n"); - } + break; // ignore + } column += strlen(yytext); -} - -int main (int argc, char *argv[]) { - line = column = 1; - printf("CPPython interpreter:\n"); - yyin = fopen(argv[1], "r"); - int token; - printf("\nline %d. ", line); - while ((token = yylex()) != 0) switcher(token); - fclose(yyin); - printf("\n"); - return 0; -} +} \ No newline at end of file diff --git a/src/cppython.y b/src/cppython.y new file mode 100644 index 0000000..38c8e9e --- /dev/null +++ b/src/cppython.y @@ -0,0 +1,52 @@ +%{ + #include + #include "ast.h" + + int yylex(); + void yyerror(char *s); +%} + +%output "parser.c" +%defines "parser.h" +%define lr.type ielr + +%start input + +%union { + int value; + char* op; + ast_node* expression; +} + +%token ADD SUB MULT DIV +%token INTEGER + +%left ADD SUB +%left MULT DIV + +%type expr term factor + +%% + +input : /* empty */ + | expr { create_ast($1); } + ; + +expr : term[L] ADD[C] term[R] { $$ = create_bin_expr($C, $L, $R); } + | term[L] SUB[C] term[R] { $$ = create_bin_expr($C, $L, $R); } + | term[U] { $$ = show($U); } + ; + +term : factor[L] MULT[C] factor[R] { $$ = create_bin_expr($C, $L, $R); } + | factor[L] DIV[C] factor[R] { $$ = create_bin_expr($C, $L, $R); } + | factor[U] { $$ = show($U); } + ; + +factor : INTEGER[U] { $$ = create_int_expr($U); } + ; + +%% + +void yyerror(char *s) { + printf("%s\n", s); +} diff --git a/src/lex.yy.c b/src/lexer.c similarity index 84% rename from src/lex.yy.c rename to src/lexer.c index b2756b6..713724f 100644 --- a/src/lex.yy.c +++ b/src/lexer.c @@ -1,5 +1,6 @@ +#line 2 "lexer.c" -#line 3 "lex.yy.c" +#line 4 "lexer.c" #define YY_INT_ALIGNED short int @@ -351,8 +352,8 @@ static void yynoreturn yy_fatal_error ( const char* msg ); (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 14 -#define YY_END_OF_BUFFER 15 +#define YY_NUM_RULES 17 +#define YY_END_OF_BUFFER 18 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -360,16 +361,16 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static const flex_int16_t yy_accept[78] = +static const flex_int16_t yy_accept[80] = { 0, - 0, 0, 15, 13, 11, 10, 13, 13, 13, 7, - 13, 5, 4, 4, 2, 2, 7, 5, 7, 12, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 13, 11, 7, 0, 9, 0, 8, - 0, 9, 0, 3, 0, 2, 12, 12, 12, 12, - 12, 12, 12, 1, 12, 12, 7, 12, 12, 12, - 3, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 6, 12, 12, 12, 12, 12, 0 + 0, 0, 18, 16, 14, 13, 16, 16, 16, 10, + 16, 8, 6, 5, 4, 7, 2, 2, 10, 8, + 10, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 16, 14, 10, 0, 12, + 0, 11, 0, 12, 0, 3, 0, 2, 15, 15, + 15, 15, 15, 15, 15, 1, 15, 15, 10, 15, + 15, 15, 3, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 9, 15, 15, 15, 15, 15, 0 } ; static const YY_CHAR yy_ec[256] = @@ -413,53 +414,53 @@ static const YY_CHAR yy_meta[49] = 3, 3, 3, 3, 3, 1, 1, 1 } ; -static const flex_int16_t yy_base[82] = +static const flex_int16_t yy_base[84] = { 0, 0, 0, 130, 131, 127, 131, 106, 122, 123, 131, - 117, 131, 131, 109, 34, 38, 101, 100, 99, 0, - 105, 88, 35, 80, 84, 79, 76, 20, 75, 72, - 71, 78, 75, 94, 106, 131, 102, 101, 102, 131, - 96, 95, 42, 131, 46, 50, 0, 65, 57, 68, - 65, 30, 57, 0, 57, 53, 0, 59, 51, 57, - 52, 50, 58, 56, 56, 44, 49, 42, 47, 45, - 0, 32, 31, 32, 38, 24, 131, 76, 79, 82, - 54 + 117, 131, 131, 109, 131, 131, 34, 38, 101, 100, + 99, 0, 105, 88, 35, 80, 84, 79, 76, 20, + 75, 72, 71, 78, 75, 94, 106, 131, 102, 101, + 102, 131, 96, 95, 42, 131, 46, 50, 0, 65, + 57, 68, 65, 30, 57, 0, 57, 53, 0, 59, + 51, 57, 52, 50, 58, 56, 56, 44, 49, 42, + 47, 45, 0, 32, 31, 32, 38, 24, 131, 76, + 79, 82, 54 } ; -static const flex_int16_t yy_def[82] = +static const flex_int16_t yy_def[84] = { 0, - 77, 1, 77, 77, 77, 77, 77, 78, 79, 77, - 80, 77, 77, 77, 77, 77, 77, 77, 77, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 77, 77, 77, 78, 78, 79, 77, - 80, 80, 77, 77, 77, 77, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 77, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 0, 77, 77, 77, - 77 + 79, 1, 79, 79, 79, 79, 79, 80, 81, 79, + 82, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 83, 83, 83, 83, 83, 83, 83, 83, 83, + 83, 83, 83, 83, 83, 79, 79, 79, 80, 80, + 81, 79, 82, 82, 79, 79, 79, 79, 83, 83, + 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, + 83, 83, 79, 83, 83, 83, 83, 83, 83, 83, + 83, 83, 83, 83, 83, 83, 83, 83, 0, 79, + 79, 79, 79 } ; static const flex_int16_t yy_nxt[180] = { 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 12, - 13, 14, 12, 13, 12, 13, 15, 16, 12, 12, - 17, 18, 19, 20, 21, 22, 23, 12, 12, 20, - 24, 25, 26, 27, 20, 28, 20, 29, 30, 31, - 32, 20, 20, 20, 33, 34, 10, 10, 44, 43, - 45, 45, 44, 54, 46, 46, 47, 55, 61, 61, - 44, 54, 45, 45, 44, 64, 46, 46, 61, 61, - 54, 65, 76, 54, 54, 49, 37, 71, 37, 39, - 39, 39, 41, 75, 41, 74, 73, 72, 54, 54, - 71, 70, 69, 68, 67, 57, 66, 54, 54, 57, - - 63, 62, 42, 42, 40, 38, 38, 35, 43, 60, - 59, 58, 57, 56, 53, 52, 51, 50, 48, 43, - 36, 36, 36, 43, 42, 40, 38, 36, 35, 77, - 3, 77, 77, 77, 77, 77, 77, 77, 77, 77, - 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, - 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, - 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, - 77, 77, 77, 77, 77, 77, 77, 77, 77 + 13, 14, 12, 15, 12, 16, 17, 18, 12, 12, + 19, 20, 21, 22, 23, 24, 25, 12, 12, 22, + 26, 27, 28, 29, 22, 30, 22, 31, 32, 33, + 34, 22, 22, 22, 35, 36, 10, 10, 46, 45, + 47, 47, 46, 56, 48, 48, 49, 57, 63, 63, + 46, 56, 47, 47, 46, 66, 48, 48, 63, 63, + 56, 67, 78, 56, 56, 51, 39, 73, 39, 41, + 41, 41, 43, 77, 43, 76, 75, 74, 56, 56, + 73, 72, 71, 70, 69, 59, 68, 56, 56, 59, + + 65, 64, 44, 44, 42, 40, 40, 37, 45, 62, + 61, 60, 59, 58, 55, 54, 53, 52, 50, 45, + 38, 38, 38, 45, 44, 42, 40, 38, 37, 79, + 3, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79 } ; static const flex_int16_t yy_chk[180] = @@ -468,21 +469,21 @@ static const flex_int16_t yy_chk[180] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 15, 23, - 15, 15, 16, 28, 16, 16, 81, 28, 43, 43, - 45, 76, 45, 45, 46, 52, 46, 46, 61, 61, - 75, 52, 74, 73, 72, 23, 78, 70, 78, 79, - 79, 79, 80, 69, 80, 68, 67, 66, 65, 64, - 63, 62, 60, 59, 58, 56, 55, 53, 51, 50, - - 49, 48, 42, 41, 39, 38, 37, 35, 34, 33, - 32, 31, 30, 29, 27, 26, 25, 24, 22, 21, - 19, 18, 17, 14, 11, 9, 8, 7, 5, 3, - 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, - 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, - 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, - 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, - 77, 77, 77, 77, 77, 77, 77, 77, 77 + 1, 1, 1, 1, 1, 1, 1, 1, 17, 25, + 17, 17, 18, 30, 18, 18, 83, 30, 45, 45, + 47, 78, 47, 47, 48, 54, 48, 48, 63, 63, + 77, 54, 76, 75, 74, 25, 80, 72, 80, 81, + 81, 81, 82, 71, 82, 70, 69, 68, 67, 66, + 65, 64, 62, 61, 60, 58, 57, 55, 53, 52, + + 51, 50, 44, 43, 41, 40, 39, 37, 36, 35, + 34, 33, 32, 31, 29, 28, 27, 26, 24, 23, + 21, 20, 19, 14, 11, 9, 8, 7, 5, 3, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79 } ; static yy_state_type yy_last_accepting_state; @@ -503,70 +504,33 @@ char *yytext; /* tokens mapping */ #line 4 "cppython.lex" #include - #include "uthash.h" + #include "sym_tab.h" + #include "ast.h" + #include "parser.h" enum TOKENS{ - ERROR=1, - NEWLINE, - WHITESPACE, - ID, - KEYWORD, - INTEGER, - FLOAT, - OPERATOR, - DELIMITER, - BOOLEAN, - BOOLEAN_OP, - STRING, - COMMENT + ERROR_TOK=1, + NEWLINE_TOK, + WHITESPACE_TOK, + ID_TOK, + KEYWORD_TOK, + FLOAT_TOK, + DELIMITER_TOK, + BOOLEAN_TOK, + BOOLEAN_OP_TOK, + STRING_TOK, + COMMENT_TOK, + INTEGER_TOK, + ADD_TOK, + SUB_TOK, + MULT_TOK, + DIV_TOK }; - - int line, column; - - struct word { - int key; - char name[50]; - UT_hash_handle hh; /* makes this structure hashable */ - }; - - struct word *symbol_table = NULL; - - void add_word(int key, char *name) { - struct word *s; - HASH_FIND_INT(symbol_table, &key, s); - if (s == NULL) { - s = (struct word *) malloc(sizeof *s); - s->key = key; - HASH_ADD_INT(symbol_table, key, s); - } - strcpy(s->name, name); - } - - struct word *find_word(int word_key) { - struct word *s; - - HASH_FIND_INT(symbol_table, &word_key, s); - return s; - } - - void delete_word(struct word *s) { - HASH_DEL(symbol_table, s); - free(s); - } - - void delete_all() { - struct word *cur_word, *tmp; - - HASH_ITER(hh, symbol_table, cur_word, tmp) { - HASH_DEL(symbol_table, cur_word); - free(cur_word); - } - } - -#line 567 "lex.yy.c" -#line 68 "cppython.lex" +#line 530 "lexer.c" +#define YY_NO_INPUT 1 +#line 34 "cppython.lex" /* regex and token definition */ -#line 570 "lex.yy.c" +#line 534 "lexer.c" #define INITIAL 0 @@ -627,8 +591,6 @@ extern int yywrap ( void ); #ifndef YY_NO_UNPUT - static void yyunput ( int c, char *buf_ptr ); - #endif #ifndef yytext_ptr @@ -783,12 +745,12 @@ YY_DECL } { -#line 86 "cppython.lex" +#line 56 "cppython.lex" /* reserved keywords */ -#line 792 "lex.yy.c" +#line 754 "lexer.c" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -815,7 +777,7 @@ YY_DECL while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 78 ) + if ( yy_current_state >= 80 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; @@ -847,81 +809,96 @@ YY_DECL case 1: YY_RULE_SETUP -#line 90 "cppython.lex" -return KEYWORD; +#line 60 "cppython.lex" +; YY_BREAK -/* arithmetics expressions */ +/* arithmetic expressions */ case 2: YY_RULE_SETUP -#line 94 "cppython.lex" -return INTEGER; +#line 64 "cppython.lex" +{ handle_token(INTEGER_TOK); return INTEGER; }; YY_BREAK case 3: YY_RULE_SETUP -#line 95 "cppython.lex" -return FLOAT; +#line 65 "cppython.lex" +; YY_BREAK case 4: YY_RULE_SETUP -#line 96 "cppython.lex" -return OPERATOR; +#line 66 "cppython.lex" +{ handle_token(SUB_TOK); return SUB; }; YY_BREAK case 5: YY_RULE_SETUP -#line 97 "cppython.lex" -return DELIMITER; +#line 67 "cppython.lex" +{ handle_token(ADD_TOK); return ADD; }; YY_BREAK -/* conditional and booleans expressions */ case 6: YY_RULE_SETUP -#line 101 "cppython.lex" -return BOOLEAN; +#line 68 "cppython.lex" +{ handle_token(MULT_TOK); return MULT; }; YY_BREAK case 7: YY_RULE_SETUP -#line 102 "cppython.lex" -return BOOLEAN_OP; +#line 69 "cppython.lex" +{ handle_token(DIV_TOK); return DIV; }; YY_BREAK -/* structure helpers */ case 8: -/* rule 8 can match eol */ YY_RULE_SETUP -#line 106 "cppython.lex" -return COMMENT; +#line 70 "cppython.lex" +; YY_BREAK +/* conditional and booleans expressions */ case 9: YY_RULE_SETUP -#line 107 "cppython.lex" -return STRING; +#line 74 "cppython.lex" +; YY_BREAK -/* general */ case 10: -/* rule 10 can match eol */ YY_RULE_SETUP -#line 111 "cppython.lex" -return NEWLINE; +#line 75 "cppython.lex" +; YY_BREAK +/* structure helpers */ case 11: +/* rule 11 can match eol */ YY_RULE_SETUP -#line 112 "cppython.lex" -return WHITESPACE; +#line 79 "cppython.lex" +; YY_BREAK case 12: YY_RULE_SETUP -#line 113 "cppython.lex" -return ID; +#line 80 "cppython.lex" +; YY_BREAK +/* general */ case 13: +/* rule 13 can match eol */ YY_RULE_SETUP -#line 114 "cppython.lex" -return ERROR; /* any character but newline */ +#line 84 "cppython.lex" +{ handle_token(NEWLINE_TOK); }; YY_BREAK case 14: YY_RULE_SETUP -#line 116 "cppython.lex" +#line 85 "cppython.lex" +; + YY_BREAK +case 15: +YY_RULE_SETUP +#line 86 "cppython.lex" +; + YY_BREAK +case 16: +YY_RULE_SETUP +#line 87 "cppython.lex" +{ handle_token(ERROR_TOK); }; /* any character but newline */ + YY_BREAK +case 17: +YY_RULE_SETUP +#line 89 "cppython.lex" ECHO; YY_BREAK -#line 925 "lex.yy.c" +#line 902 "lexer.c" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -1218,7 +1195,7 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 78 ) + if ( yy_current_state >= 80 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; @@ -1246,54 +1223,17 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 78 ) + if ( yy_current_state >= 80 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 77); + yy_is_jam = (yy_current_state == 79); return yy_is_jam ? 0 : yy_current_state; } #ifndef YY_NO_UNPUT - static void yyunput (int c, char * yy_bp ) -{ - char *yy_cp; - - yy_cp = (yy_c_buf_p); - - /* undo effects of setting up yytext */ - *yy_cp = (yy_hold_char); - - if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) - { /* need to shift things up to make room */ - /* +2 for EOB chars. */ - int number_to_move = (yy_n_chars) + 2; - char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ - YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; - char *source = - &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; - - while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) - *--dest = *--source; - - yy_cp += (int) (dest - source); - yy_bp += (int) (dest - source); - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = - (yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size; - - if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) - YY_FATAL_ERROR( "flex scanner push-back overflow" ); - } - - *--yy_cp = (char) c; - - (yytext_ptr) = yy_bp; - (yy_hold_char) = *yy_cp; - (yy_c_buf_p) = yy_cp; -} - #endif #ifndef YY_NO_INPUT @@ -1926,7 +1866,7 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 116 "cppython.lex" +#line 89 "cppython.lex" /* @@ -1935,70 +1875,39 @@ void yyfree (void * ptr ) - Output: */ -void switcher(int token) { +void handle_token(int token) { switch (token) { - case ERROR: - printf("\nLexerError: line %d, column %d, token '%s' is not recognized\n", line, column, yytext); + case INTEGER_TOK: + printf("Token: ", yytext); + yylval.value = atoi(yytext); break; - case NEWLINE: - line += 1; - column = 0; // reset column index - printf("\nline %d. ", line); - break; - case WHITESPACE: - break; // ignore - case ID: ; - int cur_key = HASH_COUNT(symbol_table) + 1; - add_word(cur_key, yytext); - printf(" ", cur_key); - break; - case KEYWORD: - printf(" ", yytext); - break; - case STRING: - printf(" ", yytext); - break; - case DELIMITER: - printf(" ", yytext); + case SUB_TOK: + printf("Token: ", yytext); + yylval.op = yytext; break; - case OPERATOR: - printf(" ", yytext); + case ADD_TOK: + printf("Token: ", yytext); + yylval.op = yytext; break; - case BOOLEAN: - printf(" ", yytext); + case MULT_TOK: + printf("Token: ", yytext); + yylval.op = yytext; break; - case BOOLEAN_OP: - printf(" ", yytext); + case DIV_TOK: + printf("Token: ", yytext); + yylval.op = yytext; break; - case INTEGER: - printf(" ", yytext); - break; - case FLOAT: - printf(" ", yytext); - break; - case COMMENT: ; - char *comment = yytext; - comment[strlen(comment) - 1] = 0; - printf(" ", comment); + case NEWLINE_TOK: line += 1; column = 0; // reset column index printf("\nline %d. ", line); break; + case ERROR_TOK: + printf("\nLexerError: line %d, column %d, token '%s' is not recognized\n", + line, column, yytext); + exit(1); default: - printf("\nUndefined error.\n"); - } + break; // ignore + } column += strlen(yytext); } - -int main (int argc, char *argv[]) { - line = column = 1; - printf("CPPython interpreter:\n"); - yyin = fopen(argv[1], "r"); - int token; - printf("\nline %d. ", line); - while ((token = yylex()) != 0) switcher(token); - fclose(yyin); - printf("\n"); - return 0; -} - diff --git a/src/lexer.h b/src/lexer.h new file mode 100644 index 0000000..c2d5b6b --- /dev/null +++ b/src/lexer.h @@ -0,0 +1,474 @@ +#ifndef yyHEADER_H +#define yyHEADER_H 1 +#define yyIN_HEADER 1 + +#line 6 "lexer.h" + +#line 8 "lexer.h" + +#define YY_INT_ALIGNED short int + +/* A lexical scanner generated by flex */ + +#define FLEX_SCANNER +#define YY_FLEX_MAJOR_VERSION 2 +#define YY_FLEX_MINOR_VERSION 6 +#define YY_FLEX_SUBMINOR_VERSION 4 +#if YY_FLEX_SUBMINOR_VERSION > 0 +#define FLEX_BETA +#endif + +/* First, we deal with platform-specific or compiler-specific issues. */ + +/* begin standard C headers. */ +#include +#include +#include +#include + +/* end standard C headers. */ + +/* flex integer type definitions */ + +#ifndef FLEXINT_H +#define FLEXINT_H + +/* C99 systems have . Non-C99 systems may or may not. */ + +#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L + +/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, + * if you want the limit (max/min) macros for int types. + */ +#ifndef __STDC_LIMIT_MACROS +#define __STDC_LIMIT_MACROS 1 +#endif + +#include +typedef int8_t flex_int8_t; +typedef uint8_t flex_uint8_t; +typedef int16_t flex_int16_t; +typedef uint16_t flex_uint16_t; +typedef int32_t flex_int32_t; +typedef uint32_t flex_uint32_t; +#else +typedef signed char flex_int8_t; +typedef short int flex_int16_t; +typedef int flex_int32_t; +typedef unsigned char flex_uint8_t; +typedef unsigned short int flex_uint16_t; +typedef unsigned int flex_uint32_t; + +/* Limits of integral types. */ +#ifndef INT8_MIN +#define INT8_MIN (-128) +#endif +#ifndef INT16_MIN +#define INT16_MIN (-32767-1) +#endif +#ifndef INT32_MIN +#define INT32_MIN (-2147483647-1) +#endif +#ifndef INT8_MAX +#define INT8_MAX (127) +#endif +#ifndef INT16_MAX +#define INT16_MAX (32767) +#endif +#ifndef INT32_MAX +#define INT32_MAX (2147483647) +#endif +#ifndef UINT8_MAX +#define UINT8_MAX (255U) +#endif +#ifndef UINT16_MAX +#define UINT16_MAX (65535U) +#endif +#ifndef UINT32_MAX +#define UINT32_MAX (4294967295U) +#endif + +#ifndef SIZE_MAX +#define SIZE_MAX (~(size_t)0) +#endif + +#endif /* ! C99 */ + +#endif /* ! FLEXINT_H */ + +/* begin standard C++ headers. */ + +/* TODO: this is always defined, so inline it */ +#define yyconst const + +#if defined(__GNUC__) && __GNUC__ >= 3 +#define yynoreturn __attribute__((__noreturn__)) +#else +#define yynoreturn +#endif + +/* Size of default input buffer. */ +#ifndef YY_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k. + * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. + * Ditto for the __ia64__ case accordingly. + */ +#define YY_BUF_SIZE 32768 +#else +#define YY_BUF_SIZE 16384 +#endif /* __ia64__ */ +#endif + +#ifndef YY_TYPEDEF_YY_BUFFER_STATE +#define YY_TYPEDEF_YY_BUFFER_STATE +typedef struct yy_buffer_state *YY_BUFFER_STATE; +#endif + +#ifndef YY_TYPEDEF_YY_SIZE_T +#define YY_TYPEDEF_YY_SIZE_T +typedef size_t yy_size_t; +#endif + +extern int yyleng; + +extern FILE *yyin, *yyout; + +#ifndef YY_STRUCT_YY_BUFFER_STATE +#define YY_STRUCT_YY_BUFFER_STATE +struct yy_buffer_state + { + FILE *yy_input_file; + + char *yy_ch_buf; /* input buffer */ + char *yy_buf_pos; /* current position in input buffer */ + + /* Size of input buffer in bytes, not including room for EOB + * characters. + */ + int yy_buf_size; + + /* Number of characters read into yy_ch_buf, not including EOB + * characters. + */ + int yy_n_chars; + + /* Whether we "own" the buffer - i.e., we know we created it, + * and can realloc() it to grow it, and should free() it to + * delete it. + */ + int yy_is_our_buffer; + + /* Whether this is an "interactive" input source; if so, and + * if we're using stdio for input, then we want to use getc() + * instead of fread(), to make sure we stop fetching input after + * each newline. + */ + int yy_is_interactive; + + /* Whether we're considered to be at the beginning of a line. + * If so, '^' rules will be active on the next match, otherwise + * not. + */ + int yy_at_bol; + + int yy_bs_lineno; /**< The line count. */ + int yy_bs_column; /**< The column count. */ + + /* Whether to try to fill the input buffer when we reach the + * end of it. + */ + int yy_fill_buffer; + + int yy_buffer_status; + + }; +#endif /* !YY_STRUCT_YY_BUFFER_STATE */ + +void yyrestart ( FILE *input_file ); +void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer ); +YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size ); +void yy_delete_buffer ( YY_BUFFER_STATE b ); +void yy_flush_buffer ( YY_BUFFER_STATE b ); +void yypush_buffer_state ( YY_BUFFER_STATE new_buffer ); +void yypop_buffer_state ( void ); + +YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size ); +YY_BUFFER_STATE yy_scan_string ( const char *yy_str ); +YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len ); + +void *yyalloc ( yy_size_t ); +void *yyrealloc ( void *, yy_size_t ); +void yyfree ( void * ); + +/* Begin user sect3 */ + +extern int yylineno; + +extern char *yytext; +#ifdef yytext_ptr +#undef yytext_ptr +#endif +#define yytext_ptr yytext + +#ifdef YY_HEADER_EXPORT_START_CONDITIONS +#define INITIAL 0 + +#endif + +#ifndef YY_NO_UNISTD_H +/* Special case for "unistd.h", since it is non-ANSI. We include it way + * down here because we want the user's section 1 to have been scanned first. + * The user has a chance to override it with an option. + */ +#include +#endif + +#ifndef YY_EXTRA_TYPE +#define YY_EXTRA_TYPE void * +#endif + +/* Accessor methods to globals. + These are made visible to non-reentrant scanners for convenience. */ + +int yylex_destroy ( void ); + +int yyget_debug ( void ); + +void yyset_debug ( int debug_flag ); + +YY_EXTRA_TYPE yyget_extra ( void ); + +void yyset_extra ( YY_EXTRA_TYPE user_defined ); + +FILE *yyget_in ( void ); + +void yyset_in ( FILE * _in_str ); + +FILE *yyget_out ( void ); + +void yyset_out ( FILE * _out_str ); + + int yyget_leng ( void ); + +char *yyget_text ( void ); + +int yyget_lineno ( void ); + +void yyset_lineno ( int _line_number ); + +/* Macros after this point can all be overridden by user definitions in + * section 1. + */ + +#ifndef YY_SKIP_YYWRAP +#ifdef __cplusplus +extern "C" int yywrap ( void ); +#else +extern int yywrap ( void ); +#endif +#endif + +#ifndef yytext_ptr +static void yy_flex_strncpy ( char *, const char *, int ); +#endif + +#ifdef YY_NEED_STRLEN +static int yy_flex_strlen ( const char * ); +#endif + +#ifndef YY_NO_INPUT + +#endif + +/* Amount of stuff to slurp up with each read. */ +#ifndef YY_READ_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k */ +#define YY_READ_BUF_SIZE 16384 +#else +#define YY_READ_BUF_SIZE 8192 +#endif /* __ia64__ */ +#endif + +/* Number of entries by which start-condition stack grows. */ +#ifndef YY_START_STACK_INCR +#define YY_START_STACK_INCR 25 +#endif + +/* Default declaration of generated scanner - a define so the user can + * easily add parameters. + */ +#ifndef YY_DECL +#define YY_DECL_IS_OURS 1 + +extern int yylex (void); + +#define YY_DECL int yylex (void) +#endif /* !YY_DECL */ + +/* yy_get_previous_state - get the state just before the EOB char was reached */ + +#undef YY_NEW_FILE +#undef YY_FLUSH_BUFFER +#undef yy_set_bol +#undef yy_new_buffer +#undef yy_set_interactive +#undef YY_DO_BEFORE_ACTION + +#ifdef YY_DECL_IS_OURS +#undef YY_DECL_IS_OURS +#undef YY_DECL +#endif + +#ifndef yy_create_buffer_ALREADY_DEFINED +#undef yy_create_buffer +#endif +#ifndef yy_delete_buffer_ALREADY_DEFINED +#undef yy_delete_buffer +#endif +#ifndef yy_scan_buffer_ALREADY_DEFINED +#undef yy_scan_buffer +#endif +#ifndef yy_scan_string_ALREADY_DEFINED +#undef yy_scan_string +#endif +#ifndef yy_scan_bytes_ALREADY_DEFINED +#undef yy_scan_bytes +#endif +#ifndef yy_init_buffer_ALREADY_DEFINED +#undef yy_init_buffer +#endif +#ifndef yy_flush_buffer_ALREADY_DEFINED +#undef yy_flush_buffer +#endif +#ifndef yy_load_buffer_state_ALREADY_DEFINED +#undef yy_load_buffer_state +#endif +#ifndef yy_switch_to_buffer_ALREADY_DEFINED +#undef yy_switch_to_buffer +#endif +#ifndef yypush_buffer_state_ALREADY_DEFINED +#undef yypush_buffer_state +#endif +#ifndef yypop_buffer_state_ALREADY_DEFINED +#undef yypop_buffer_state +#endif +#ifndef yyensure_buffer_stack_ALREADY_DEFINED +#undef yyensure_buffer_stack +#endif +#ifndef yylex_ALREADY_DEFINED +#undef yylex +#endif +#ifndef yyrestart_ALREADY_DEFINED +#undef yyrestart +#endif +#ifndef yylex_init_ALREADY_DEFINED +#undef yylex_init +#endif +#ifndef yylex_init_extra_ALREADY_DEFINED +#undef yylex_init_extra +#endif +#ifndef yylex_destroy_ALREADY_DEFINED +#undef yylex_destroy +#endif +#ifndef yyget_debug_ALREADY_DEFINED +#undef yyget_debug +#endif +#ifndef yyset_debug_ALREADY_DEFINED +#undef yyset_debug +#endif +#ifndef yyget_extra_ALREADY_DEFINED +#undef yyget_extra +#endif +#ifndef yyset_extra_ALREADY_DEFINED +#undef yyset_extra +#endif +#ifndef yyget_in_ALREADY_DEFINED +#undef yyget_in +#endif +#ifndef yyset_in_ALREADY_DEFINED +#undef yyset_in +#endif +#ifndef yyget_out_ALREADY_DEFINED +#undef yyget_out +#endif +#ifndef yyset_out_ALREADY_DEFINED +#undef yyset_out +#endif +#ifndef yyget_leng_ALREADY_DEFINED +#undef yyget_leng +#endif +#ifndef yyget_text_ALREADY_DEFINED +#undef yyget_text +#endif +#ifndef yyget_lineno_ALREADY_DEFINED +#undef yyget_lineno +#endif +#ifndef yyset_lineno_ALREADY_DEFINED +#undef yyset_lineno +#endif +#ifndef yyget_column_ALREADY_DEFINED +#undef yyget_column +#endif +#ifndef yyset_column_ALREADY_DEFINED +#undef yyset_column +#endif +#ifndef yywrap_ALREADY_DEFINED +#undef yywrap +#endif +#ifndef yyget_lval_ALREADY_DEFINED +#undef yyget_lval +#endif +#ifndef yyset_lval_ALREADY_DEFINED +#undef yyset_lval +#endif +#ifndef yyget_lloc_ALREADY_DEFINED +#undef yyget_lloc +#endif +#ifndef yyset_lloc_ALREADY_DEFINED +#undef yyset_lloc +#endif +#ifndef yyalloc_ALREADY_DEFINED +#undef yyalloc +#endif +#ifndef yyrealloc_ALREADY_DEFINED +#undef yyrealloc +#endif +#ifndef yyfree_ALREADY_DEFINED +#undef yyfree +#endif +#ifndef yytext_ALREADY_DEFINED +#undef yytext +#endif +#ifndef yyleng_ALREADY_DEFINED +#undef yyleng +#endif +#ifndef yyin_ALREADY_DEFINED +#undef yyin +#endif +#ifndef yyout_ALREADY_DEFINED +#undef yyout +#endif +#ifndef yy_flex_debug_ALREADY_DEFINED +#undef yy_flex_debug +#endif +#ifndef yylineno_ALREADY_DEFINED +#undef yylineno +#endif +#ifndef yytables_fload_ALREADY_DEFINED +#undef yytables_fload +#endif +#ifndef yytables_destroy_ALREADY_DEFINED +#undef yytables_destroy +#endif +#ifndef yyTABLES_NAME_ALREADY_DEFINED +#undef yyTABLES_NAME +#endif + +#line 89 "cppython.lex" + + +#line 473 "lexer.h" +#undef yyIN_HEADER +#endif /* yyHEADER_H */ diff --git a/src/main.c b/src/main.c new file mode 100644 index 0000000..f964360 --- /dev/null +++ b/src/main.c @@ -0,0 +1,22 @@ +#include +#include "ast.h" +#include "lexer.h" +#include "parser.h" + +int main (int argc, char *argv[]) { + printf("Welcome to CPPython interpreter:\n"); + + // init lexer and parser + printf("Lexer/parser:\n"); + line = column = 1; + yyin = fopen(argv[1], "r"); + printf("\nline %d. ", line); + do { + yyparse(); + } while (!feof(yyin)); + fclose(yyin); + printf("\n"); + printf("Lexer and parser finished.\n\n"); + + return 0; +} diff --git a/src/parser.c b/src/parser.c new file mode 100644 index 0000000..7ff1d51 --- /dev/null +++ b/src/parser.c @@ -0,0 +1,1597 @@ +/* A Bison parser, made by GNU Bison 3.5.1. */ + +/* Bison implementation for Yacc-like parsers in C + + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation, + Inc. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +/* As a special exception, you may create a larger work that contains + part or all of the Bison parser skeleton and distribute that work + under terms of your choice, so long as that work isn't itself a + parser generator using the skeleton or a modified version thereof + as a parser skeleton. Alternatively, if you modify or redistribute + the parser skeleton itself, you may (at your option) remove this + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. + + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ + +/* C LALR(1) parser skeleton written by Richard Stallman, by + simplifying the original so-called "semantic" parser. */ + +/* All symbols defined below should begin with yy or YY, to avoid + infringing on user name space. This should be done even for local + variables, as they might otherwise be expanded by user macros. + There are some unavoidable exceptions within include files to + define necessary library symbols; they are noted "INFRINGES ON + USER NAME SPACE" below. */ + +/* Undocumented macros, especially those whose name start with YY_, + are private implementation details. Do not rely on them. */ + +/* Identify Bison output. */ +#define YYBISON 1 + +/* Bison version. */ +#define YYBISON_VERSION "3.5.1" + +/* Skeleton name. */ +#define YYSKELETON_NAME "yacc.c" + +/* Pure parsers. */ +#define YYPURE 0 + +/* Push parsers. */ +#define YYPUSH 0 + +/* Pull parsers. */ +#define YYPULL 1 + + + + +/* First part of user prologue. */ +#line 1 "cppython.y" + + #include + #include "ast.h" + + int yylex(); + void yyerror(char *s); + +#line 78 "parser.c" + +# ifndef YY_CAST +# ifdef __cplusplus +# define YY_CAST(Type, Val) static_cast (Val) +# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast (Val) +# else +# define YY_CAST(Type, Val) ((Type) (Val)) +# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) +# endif +# endif +# ifndef YY_NULLPTR +# if defined __cplusplus +# if 201103L <= __cplusplus +# define YY_NULLPTR nullptr +# else +# define YY_NULLPTR 0 +# endif +# else +# define YY_NULLPTR ((void*)0) +# endif +# endif + +/* Enabling verbose error messages. */ +#ifdef YYERROR_VERBOSE +# undef YYERROR_VERBOSE +# define YYERROR_VERBOSE 1 +#else +# define YYERROR_VERBOSE 0 +#endif + +/* Use api.header.include to #include this header + instead of duplicating it here. */ +#ifndef YY_YY_PARSER_H_INCLUDED +# define YY_YY_PARSER_H_INCLUDED +/* Debug traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif +#if YYDEBUG +extern int yydebug; +#endif + +/* Token type. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + enum yytokentype + { + ADD = 258, + SUB = 259, + MULT = 260, + DIV = 261, + INTEGER = 262 + }; +#endif + +/* Value type. */ +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +union YYSTYPE +{ +#line 15 "cppython.y" + + int value; + char* op; + ast_node* expression; + +#line 144 "parser.c" + +}; +typedef union YYSTYPE YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1 +# define YYSTYPE_IS_DECLARED 1 +#endif + + +extern YYSTYPE yylval; + +int yyparse (void); + +#endif /* !YY_YY_PARSER_H_INCLUDED */ + + + +#ifdef short +# undef short +#endif + +/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure + and (if available) are included + so that the code can choose integer types of a good width. */ + +#ifndef __PTRDIFF_MAX__ +# include /* INFRINGES ON USER NAME SPACE */ +# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ +# include /* INFRINGES ON USER NAME SPACE */ +# define YY_STDINT_H +# endif +#endif + +/* Narrow types that promote to a signed type and that can represent a + signed or unsigned integer of at least N bits. In tables they can + save space and decrease cache pressure. Promoting to a signed type + helps avoid bugs in integer arithmetic. */ + +#ifdef __INT_LEAST8_MAX__ +typedef __INT_LEAST8_TYPE__ yytype_int8; +#elif defined YY_STDINT_H +typedef int_least8_t yytype_int8; +#else +typedef signed char yytype_int8; +#endif + +#ifdef __INT_LEAST16_MAX__ +typedef __INT_LEAST16_TYPE__ yytype_int16; +#elif defined YY_STDINT_H +typedef int_least16_t yytype_int16; +#else +typedef short yytype_int16; +#endif + +#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__ +typedef __UINT_LEAST8_TYPE__ yytype_uint8; +#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \ + && UINT_LEAST8_MAX <= INT_MAX) +typedef uint_least8_t yytype_uint8; +#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX +typedef unsigned char yytype_uint8; +#else +typedef short yytype_uint8; +#endif + +#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__ +typedef __UINT_LEAST16_TYPE__ yytype_uint16; +#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \ + && UINT_LEAST16_MAX <= INT_MAX) +typedef uint_least16_t yytype_uint16; +#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX +typedef unsigned short yytype_uint16; +#else +typedef int yytype_uint16; +#endif + +#ifndef YYPTRDIFF_T +# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__ +# define YYPTRDIFF_T __PTRDIFF_TYPE__ +# define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__ +# elif defined PTRDIFF_MAX +# ifndef ptrdiff_t +# include /* INFRINGES ON USER NAME SPACE */ +# endif +# define YYPTRDIFF_T ptrdiff_t +# define YYPTRDIFF_MAXIMUM PTRDIFF_MAX +# else +# define YYPTRDIFF_T long +# define YYPTRDIFF_MAXIMUM LONG_MAX +# endif +#endif + +#ifndef YYSIZE_T +# ifdef __SIZE_TYPE__ +# define YYSIZE_T __SIZE_TYPE__ +# elif defined size_t +# define YYSIZE_T size_t +# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ +# include /* INFRINGES ON USER NAME SPACE */ +# define YYSIZE_T size_t +# else +# define YYSIZE_T unsigned +# endif +#endif + +#define YYSIZE_MAXIMUM \ + YY_CAST (YYPTRDIFF_T, \ + (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \ + ? YYPTRDIFF_MAXIMUM \ + : YY_CAST (YYSIZE_T, -1))) + +#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X)) + +/* Stored state numbers (used for stacks). */ +typedef yytype_int8 yy_state_t; + +/* State numbers in computations. */ +typedef int yy_state_fast_t; + +#ifndef YY_ +# if defined YYENABLE_NLS && YYENABLE_NLS +# if ENABLE_NLS +# include /* INFRINGES ON USER NAME SPACE */ +# define YY_(Msgid) dgettext ("bison-runtime", Msgid) +# endif +# endif +# ifndef YY_ +# define YY_(Msgid) Msgid +# endif +#endif + +#ifndef YY_ATTRIBUTE_PURE +# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) +# else +# define YY_ATTRIBUTE_PURE +# endif +#endif + +#ifndef YY_ATTRIBUTE_UNUSED +# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) +# else +# define YY_ATTRIBUTE_UNUSED +# endif +#endif + +/* Suppress unused-variable warnings by "using" E. */ +#if ! defined lint || defined __GNUC__ +# define YYUSE(E) ((void) (E)) +#else +# define YYUSE(E) /* empty */ +#endif + +#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ +/* Suppress an incorrect diagnostic about yylval being uninitialized. */ +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ + _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ + _Pragma ("GCC diagnostic pop") +#else +# define YY_INITIAL_VALUE(Value) Value +#endif +#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_END +#endif +#ifndef YY_INITIAL_VALUE +# define YY_INITIAL_VALUE(Value) /* Nothing. */ +#endif + +#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ +# define YY_IGNORE_USELESS_CAST_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") +# define YY_IGNORE_USELESS_CAST_END \ + _Pragma ("GCC diagnostic pop") +#endif +#ifndef YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_END +#endif + + +#define YY_ASSERT(E) ((void) (0 && (E))) + +#if ! defined yyoverflow || YYERROR_VERBOSE + +/* The parser invokes alloca or malloc; define the necessary symbols. */ + +# ifdef YYSTACK_USE_ALLOCA +# if YYSTACK_USE_ALLOCA +# ifdef __GNUC__ +# define YYSTACK_ALLOC __builtin_alloca +# elif defined __BUILTIN_VA_ARG_INCR +# include /* INFRINGES ON USER NAME SPACE */ +# elif defined _AIX +# define YYSTACK_ALLOC __alloca +# elif defined _MSC_VER +# include /* INFRINGES ON USER NAME SPACE */ +# define alloca _alloca +# else +# define YYSTACK_ALLOC alloca +# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS +# include /* INFRINGES ON USER NAME SPACE */ + /* Use EXIT_SUCCESS as a witness for stdlib.h. */ +# ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 +# endif +# endif +# endif +# endif +# endif + +# ifdef YYSTACK_ALLOC + /* Pacify GCC's 'empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) +# ifndef YYSTACK_ALLOC_MAXIMUM + /* The OS might guarantee only one guard page at the bottom of the stack, + and a page size can be as small as 4096 bytes. So we cannot safely + invoke alloca (N) if N exceeds 4096. Use a slightly smaller number + to allow for a few compiler-allocated temporary stack slots. */ +# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ +# endif +# else +# define YYSTACK_ALLOC YYMALLOC +# define YYSTACK_FREE YYFREE +# ifndef YYSTACK_ALLOC_MAXIMUM +# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM +# endif +# if (defined __cplusplus && ! defined EXIT_SUCCESS \ + && ! ((defined YYMALLOC || defined malloc) \ + && (defined YYFREE || defined free))) +# include /* INFRINGES ON USER NAME SPACE */ +# ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 +# endif +# endif +# ifndef YYMALLOC +# define YYMALLOC malloc +# if ! defined malloc && ! defined EXIT_SUCCESS +void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# ifndef YYFREE +# define YYFREE free +# if ! defined free && ! defined EXIT_SUCCESS +void free (void *); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# endif +#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ + + +#if (! defined yyoverflow \ + && (! defined __cplusplus \ + || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) + +/* A type that is properly aligned for any stack member. */ +union yyalloc +{ + yy_state_t yyss_alloc; + YYSTYPE yyvs_alloc; +}; + +/* The size of the maximum gap between one aligned stack and the next. */ +# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1) + +/* The size of an array large to enough to hold all stacks, each with + N elements. */ +# define YYSTACK_BYTES(N) \ + ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \ + + YYSTACK_GAP_MAXIMUM) + +# define YYCOPY_NEEDED 1 + +/* Relocate STACK from its old location to the new one. The + local variables YYSIZE and YYSTACKSIZE give the old and new number of + elements in the stack, and YYPTR gives the new location of the + stack. Advance YYPTR to a properly aligned location for the next + stack. */ +# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ + do \ + { \ + YYPTRDIFF_T yynewbytes; \ + YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ + Stack = &yyptr->Stack_alloc; \ + yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / YYSIZEOF (*yyptr); \ + } \ + while (0) + +#endif + +#if defined YYCOPY_NEEDED && YYCOPY_NEEDED +/* Copy COUNT objects from SRC to DST. The source and destination do + not overlap. */ +# ifndef YYCOPY +# if defined __GNUC__ && 1 < __GNUC__ +# define YYCOPY(Dst, Src, Count) \ + __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src))) +# else +# define YYCOPY(Dst, Src, Count) \ + do \ + { \ + YYPTRDIFF_T yyi; \ + for (yyi = 0; yyi < (Count); yyi++) \ + (Dst)[yyi] = (Src)[yyi]; \ + } \ + while (0) +# endif +# endif +#endif /* !YYCOPY_NEEDED */ + +/* YYFINAL -- State number of the termination state. */ +#define YYFINAL 6 +/* YYLAST -- Last index in YYTABLE. */ +#define YYLAST 10 + +/* YYNTOKENS -- Number of terminals. */ +#define YYNTOKENS 8 +/* YYNNTS -- Number of nonterminals. */ +#define YYNNTS 5 +/* YYNRULES -- Number of rules. */ +#define YYNRULES 10 +/* YYNSTATES -- Number of states. */ +#define YYNSTATES 15 + +#define YYUNDEFTOK 2 +#define YYMAXUTOK 262 + + +/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM + as returned by yylex, with out-of-bounds checking. */ +#define YYTRANSLATE(YYX) \ + (0 <= (YYX) && (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) + +/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM + as returned by yylex. */ +static const yytype_int8 yytranslate[] = +{ + 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, + 5, 6, 7 +}; + +#if YYDEBUG + /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ +static const yytype_int8 yyrline[] = +{ + 0, 31, 31, 32, 35, 36, 37, 40, 41, 42, + 45 +}; +#endif + +#if YYDEBUG || YYERROR_VERBOSE || 0 +/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. + First, the terminals, then, starting at YYNTOKENS, nonterminals. */ +static const char *const yytname[] = +{ + "$end", "error", "$undefined", "ADD", "SUB", "MULT", "DIV", "INTEGER", + "$accept", "input", "expr", "term", "factor", YY_NULLPTR +}; +#endif + +# ifdef YYPRINT +/* YYTOKNUM[NUM] -- (External) token number corresponding to the + (internal) symbol number NUM (which must be that of a token). */ +static const yytype_int16 yytoknum[] = +{ + 0, 256, 257, 258, 259, 260, 261, 262 +}; +# endif + +#define YYPACT_NINF (-6) + +#define yypact_value_is_default(Yyn) \ + ((Yyn) == YYPACT_NINF) + +#define YYTABLE_NINF (-1) + +#define yytable_value_is_error(Yyn) \ + 0 + + /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +static const yytype_int8 yypact[] = +{ + -5, -6, 5, -6, -3, -2, -6, -5, -5, -5, + -5, -6, -6, -6, -6 +}; + + /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. + Performed when YYTABLE does not specify something else to do. Zero + means the default is an error. */ +static const yytype_int8 yydefact[] = +{ + 2, 10, 0, 3, 6, 9, 1, 0, 0, 0, + 0, 4, 5, 7, 8 +}; + + /* YYPGOTO[NTERM-NUM]. */ +static const yytype_int8 yypgoto[] = +{ + -6, -6, -6, -1, 0 +}; + + /* YYDEFGOTO[NTERM-NUM]. */ +static const yytype_int8 yydefgoto[] = +{ + -1, 2, 3, 4, 5 +}; + + /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule whose + number is the opposite. If YYTABLE_NINF, syntax error. */ +static const yytype_int8 yytable[] = +{ + 7, 8, 1, 9, 10, 6, 11, 12, 0, 13, + 14 +}; + +static const yytype_int8 yycheck[] = +{ + 3, 4, 7, 5, 6, 0, 7, 8, -1, 9, + 10 +}; + + /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ +static const yytype_int8 yystos[] = +{ + 0, 7, 9, 10, 11, 12, 0, 3, 4, 5, + 6, 11, 11, 12, 12 +}; + + /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +static const yytype_int8 yyr1[] = +{ + 0, 8, 9, 9, 10, 10, 10, 11, 11, 11, + 12 +}; + + /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ +static const yytype_int8 yyr2[] = +{ + 0, 2, 0, 1, 3, 3, 1, 3, 3, 1, + 1 +}; + + +#define yyerrok (yyerrstatus = 0) +#define yyclearin (yychar = YYEMPTY) +#define YYEMPTY (-2) +#define YYEOF 0 + +#define YYACCEPT goto yyacceptlab +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrorlab + + +#define YYRECOVERING() (!!yyerrstatus) + +#define YYBACKUP(Token, Value) \ + do \ + if (yychar == YYEMPTY) \ + { \ + yychar = (Token); \ + yylval = (Value); \ + YYPOPSTACK (yylen); \ + yystate = *yyssp; \ + goto yybackup; \ + } \ + else \ + { \ + yyerror (YY_("syntax error: cannot back up")); \ + YYERROR; \ + } \ + while (0) + +/* Error token number */ +#define YYTERROR 1 +#define YYERRCODE 256 + + + +/* Enable debugging if requested. */ +#if YYDEBUG + +# ifndef YYFPRINTF +# include /* INFRINGES ON USER NAME SPACE */ +# define YYFPRINTF fprintf +# endif + +# define YYDPRINTF(Args) \ +do { \ + if (yydebug) \ + YYFPRINTF Args; \ +} while (0) + +/* This macro is provided for backward compatibility. */ +#ifndef YY_LOCATION_PRINT +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +#endif + + +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yy_symbol_print (stderr, \ + Type, Value); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (0) + + +/*-----------------------------------. +| Print this symbol's value on YYO. | +`-----------------------------------*/ + +static void +yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep) +{ + FILE *yyoutput = yyo; + YYUSE (yyoutput); + if (!yyvaluep) + return; +# ifdef YYPRINT + if (yytype < YYNTOKENS) + YYPRINT (yyo, yytoknum[yytype], *yyvaluep); +# endif + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + YYUSE (yytype); + YY_IGNORE_MAYBE_UNINITIALIZED_END +} + + +/*---------------------------. +| Print this symbol on YYO. | +`---------------------------*/ + +static void +yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep) +{ + YYFPRINTF (yyo, "%s %s (", + yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); + + yy_symbol_value_print (yyo, yytype, yyvaluep); + YYFPRINTF (yyo, ")"); +} + +/*------------------------------------------------------------------. +| yy_stack_print -- Print the state stack from its BOTTOM up to its | +| TOP (included). | +`------------------------------------------------------------------*/ + +static void +yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop) +{ + YYFPRINTF (stderr, "Stack now"); + for (; yybottom <= yytop; yybottom++) + { + int yybot = *yybottom; + YYFPRINTF (stderr, " %d", yybot); + } + YYFPRINTF (stderr, "\n"); +} + +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (0) + + +/*------------------------------------------------. +| Report that the YYRULE is going to be reduced. | +`------------------------------------------------*/ + +static void +yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, int yyrule) +{ + int yylno = yyrline[yyrule]; + int yynrhs = yyr2[yyrule]; + int yyi; + YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n", + yyrule - 1, yylno); + /* The symbols being reduced. */ + for (yyi = 0; yyi < yynrhs; yyi++) + { + YYFPRINTF (stderr, " $%d = ", yyi + 1); + yy_symbol_print (stderr, + yystos[+yyssp[yyi + 1 - yynrhs]], + &yyvsp[(yyi + 1) - (yynrhs)] + ); + YYFPRINTF (stderr, "\n"); + } +} + +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (yyssp, yyvsp, Rule); \ +} while (0) + +/* Nonzero means print parse trace. It is left uninitialized so that + multiple parsers can coexist. */ +int yydebug; +#else /* !YYDEBUG */ +# define YYDPRINTF(Args) +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) +# define YY_STACK_PRINT(Bottom, Top) +# define YY_REDUCE_PRINT(Rule) +#endif /* !YYDEBUG */ + + +/* YYINITDEPTH -- initial size of the parser's stacks. */ +#ifndef YYINITDEPTH +# define YYINITDEPTH 200 +#endif + +/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only + if the built-in stack extension method is used). + + Do not make this value too large; the results are undefined if + YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) + evaluated with infinite-precision integer arithmetic. */ + +#ifndef YYMAXDEPTH +# define YYMAXDEPTH 10000 +#endif + + +#if YYERROR_VERBOSE + +# ifndef yystrlen +# if defined __GLIBC__ && defined _STRING_H +# define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S))) +# else +/* Return the length of YYSTR. */ +static YYPTRDIFF_T +yystrlen (const char *yystr) +{ + YYPTRDIFF_T yylen; + for (yylen = 0; yystr[yylen]; yylen++) + continue; + return yylen; +} +# endif +# endif + +# ifndef yystpcpy +# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE +# define yystpcpy stpcpy +# else +/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in + YYDEST. */ +static char * +yystpcpy (char *yydest, const char *yysrc) +{ + char *yyd = yydest; + const char *yys = yysrc; + + while ((*yyd++ = *yys++) != '\0') + continue; + + return yyd - 1; +} +# endif +# endif + +# ifndef yytnamerr +/* Copy to YYRES the contents of YYSTR after stripping away unnecessary + quotes and backslashes, so that it's suitable for yyerror. The + heuristic is that double-quoting is unnecessary unless the string + contains an apostrophe, a comma, or backslash (other than + backslash-backslash). YYSTR is taken from yytname. If YYRES is + null, do not copy; instead, return the length of what the result + would have been. */ +static YYPTRDIFF_T +yytnamerr (char *yyres, const char *yystr) +{ + if (*yystr == '"') + { + YYPTRDIFF_T yyn = 0; + char const *yyp = yystr; + + for (;;) + switch (*++yyp) + { + case '\'': + case ',': + goto do_not_strip_quotes; + + case '\\': + if (*++yyp != '\\') + goto do_not_strip_quotes; + else + goto append; + + append: + default: + if (yyres) + yyres[yyn] = *yyp; + yyn++; + break; + + case '"': + if (yyres) + yyres[yyn] = '\0'; + return yyn; + } + do_not_strip_quotes: ; + } + + if (yyres) + return yystpcpy (yyres, yystr) - yyres; + else + return yystrlen (yystr); +} +# endif + +/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message + about the unexpected token YYTOKEN for the state stack whose top is + YYSSP. + + Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is + not large enough to hold the message. In that case, also set + *YYMSG_ALLOC to the required number of bytes. Return 2 if the + required number of bytes is too large to store. */ +static int +yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg, + yy_state_t *yyssp, int yytoken) +{ + enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; + /* Internationalized format string. */ + const char *yyformat = YY_NULLPTR; + /* Arguments of yyformat: reported tokens (one for the "unexpected", + one per "expected"). */ + char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; + /* Actual size of YYARG. */ + int yycount = 0; + /* Cumulated lengths of YYARG. */ + YYPTRDIFF_T yysize = 0; + + /* There are many possibilities here to consider: + - If this state is a consistent state with a default action, then + the only way this function was invoked is if the default action + is an error action. In that case, don't check for expected + tokens because there are none. + - The only way there can be no lookahead present (in yychar) is if + this state is a consistent state with a default action. Thus, + detecting the absence of a lookahead is sufficient to determine + that there is no unexpected or expected token to report. In that + case, just report a simple "syntax error". + - Don't assume there isn't a lookahead just because this state is a + consistent state with a default action. There might have been a + previous inconsistent state, consistent state with a non-default + action, or user semantic action that manipulated yychar. + - Of course, the expected token list depends on states to have + correct lookahead information, and it depends on the parser not + to perform extra reductions after fetching a lookahead from the + scanner and before detecting a syntax error. Thus, state merging + (from LALR or IELR) and default reductions corrupt the expected + token list. However, the list is correct for canonical LR with + one exception: it will still contain any token that will not be + accepted due to an error action in a later state. + */ + if (yytoken != YYEMPTY) + { + int yyn = yypact[+*yyssp]; + YYPTRDIFF_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); + yysize = yysize0; + yyarg[yycount++] = yytname[yytoken]; + if (!yypact_value_is_default (yyn)) + { + /* Start YYX at -YYN if negative to avoid negative indexes in + YYCHECK. In other words, skip the first -YYN actions for + this state because they are default actions. */ + int yyxbegin = yyn < 0 ? -yyn : 0; + /* Stay within bounds of both yycheck and yytname. */ + int yychecklim = YYLAST - yyn + 1; + int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; + int yyx; + + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR + && !yytable_value_is_error (yytable[yyx + yyn])) + { + if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) + { + yycount = 1; + yysize = yysize0; + break; + } + yyarg[yycount++] = yytname[yyx]; + { + YYPTRDIFF_T yysize1 + = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); + if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) + yysize = yysize1; + else + return 2; + } + } + } + } + + switch (yycount) + { +# define YYCASE_(N, S) \ + case N: \ + yyformat = S; \ + break + default: /* Avoid compiler warnings. */ + YYCASE_(0, YY_("syntax error")); + YYCASE_(1, YY_("syntax error, unexpected %s")); + YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); + YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); + YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); + YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); +# undef YYCASE_ + } + + { + /* Don't count the "%s"s in the final size, but reserve room for + the terminator. */ + YYPTRDIFF_T yysize1 = yysize + (yystrlen (yyformat) - 2 * yycount) + 1; + if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) + yysize = yysize1; + else + return 2; + } + + if (*yymsg_alloc < yysize) + { + *yymsg_alloc = 2 * yysize; + if (! (yysize <= *yymsg_alloc + && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) + *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; + return 1; + } + + /* Avoid sprintf, as that infringes on the user's name space. + Don't have undefined behavior even if the translation + produced a string with the wrong number of "%s"s. */ + { + char *yyp = *yymsg; + int yyi = 0; + while ((*yyp = *yyformat) != '\0') + if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) + { + yyp += yytnamerr (yyp, yyarg[yyi++]); + yyformat += 2; + } + else + { + ++yyp; + ++yyformat; + } + } + return 0; +} +#endif /* YYERROR_VERBOSE */ + +/*-----------------------------------------------. +| Release the memory associated to this symbol. | +`-----------------------------------------------*/ + +static void +yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) +{ + YYUSE (yyvaluep); + if (!yymsg) + yymsg = "Deleting"; + YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); + + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + YYUSE (yytype); + YY_IGNORE_MAYBE_UNINITIALIZED_END +} + + + + +/* The lookahead symbol. */ +int yychar; + +/* The semantic value of the lookahead symbol. */ +YYSTYPE yylval; +/* Number of syntax errors so far. */ +int yynerrs; + + +/*----------. +| yyparse. | +`----------*/ + +int +yyparse (void) +{ + yy_state_fast_t yystate; + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus; + + /* The stacks and their tools: + 'yyss': related to states. + 'yyvs': related to semantic values. + + Refer to the stacks through separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ + + /* The state stack. */ + yy_state_t yyssa[YYINITDEPTH]; + yy_state_t *yyss; + yy_state_t *yyssp; + + /* The semantic value stack. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs; + YYSTYPE *yyvsp; + + YYPTRDIFF_T yystacksize; + + int yyn; + int yyresult; + /* Lookahead token as an internal (translated) token number. */ + int yytoken = 0; + /* The variables used to return semantic value and location from the + action routines. */ + YYSTYPE yyval; + +#if YYERROR_VERBOSE + /* Buffer for error messages, and its allocated size. */ + char yymsgbuf[128]; + char *yymsg = yymsgbuf; + YYPTRDIFF_T yymsg_alloc = sizeof yymsgbuf; +#endif + +#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) + + /* The number of symbols on the RHS of the reduced rule. + Keep to zero when no symbol should be popped. */ + int yylen = 0; + + yyssp = yyss = yyssa; + yyvsp = yyvs = yyvsa; + yystacksize = YYINITDEPTH; + + YYDPRINTF ((stderr, "Starting parse\n")); + + yystate = 0; + yyerrstatus = 0; + yynerrs = 0; + yychar = YYEMPTY; /* Cause a token to be read. */ + goto yysetstate; + + +/*------------------------------------------------------------. +| yynewstate -- push a new state, which is found in yystate. | +`------------------------------------------------------------*/ +yynewstate: + /* In all cases, when you get here, the value and location stacks + have just been pushed. So pushing a state here evens the stacks. */ + yyssp++; + + +/*--------------------------------------------------------------------. +| yysetstate -- set current state (the top of the stack) to yystate. | +`--------------------------------------------------------------------*/ +yysetstate: + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + YY_ASSERT (0 <= yystate && yystate < YYNSTATES); + YY_IGNORE_USELESS_CAST_BEGIN + *yyssp = YY_CAST (yy_state_t, yystate); + YY_IGNORE_USELESS_CAST_END + + if (yyss + yystacksize - 1 <= yyssp) +#if !defined yyoverflow && !defined YYSTACK_RELOCATE + goto yyexhaustedlab; +#else + { + /* Get the current used size of the three stacks, in elements. */ + YYPTRDIFF_T yysize = yyssp - yyss + 1; + +# if defined yyoverflow + { + /* Give user a chance to reallocate the stack. Use copies of + these so that the &'s don't force the real ones into + memory. */ + yy_state_t *yyss1 = yyss; + YYSTYPE *yyvs1 = yyvs; + + /* Each stack pointer address is followed by the size of the + data in use in that stack, in bytes. This used to be a + conditional around just the two extra args, but that might + be undefined if yyoverflow is a macro. */ + yyoverflow (YY_("memory exhausted"), + &yyss1, yysize * YYSIZEOF (*yyssp), + &yyvs1, yysize * YYSIZEOF (*yyvsp), + &yystacksize); + yyss = yyss1; + yyvs = yyvs1; + } +# else /* defined YYSTACK_RELOCATE */ + /* Extend the stack our own way. */ + if (YYMAXDEPTH <= yystacksize) + goto yyexhaustedlab; + yystacksize *= 2; + if (YYMAXDEPTH < yystacksize) + yystacksize = YYMAXDEPTH; + + { + yy_state_t *yyss1 = yyss; + union yyalloc *yyptr = + YY_CAST (union yyalloc *, + YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize)))); + if (! yyptr) + goto yyexhaustedlab; + YYSTACK_RELOCATE (yyss_alloc, yyss); + YYSTACK_RELOCATE (yyvs_alloc, yyvs); +# undef YYSTACK_RELOCATE + if (yyss1 != yyssa) + YYSTACK_FREE (yyss1); + } +# endif + + yyssp = yyss + yysize - 1; + yyvsp = yyvs + yysize - 1; + + YY_IGNORE_USELESS_CAST_BEGIN + YYDPRINTF ((stderr, "Stack size increased to %ld\n", + YY_CAST (long, yystacksize))); + YY_IGNORE_USELESS_CAST_END + + if (yyss + yystacksize - 1 <= yyssp) + YYABORT; + } +#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ + + if (yystate == YYFINAL) + YYACCEPT; + + goto yybackup; + + +/*-----------. +| yybackup. | +`-----------*/ +yybackup: + /* Do appropriate processing given the current state. Read a + lookahead token if we need one and don't already have one. */ + + /* First try to decide what to do without reference to lookahead token. */ + yyn = yypact[yystate]; + if (yypact_value_is_default (yyn)) + goto yydefault; + + /* Not known => get a lookahead token if don't already have one. */ + + /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ + if (yychar == YYEMPTY) + { + YYDPRINTF ((stderr, "Reading a token: ")); + yychar = yylex (); + } + + if (yychar <= YYEOF) + { + yychar = yytoken = YYEOF; + YYDPRINTF ((stderr, "Now at end of input.\n")); + } + else + { + yytoken = YYTRANSLATE (yychar); + YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); + } + + /* If the proper action on seeing token YYTOKEN is to reduce or to + detect an error, take that action. */ + yyn += yytoken; + if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) + goto yydefault; + yyn = yytable[yyn]; + if (yyn <= 0) + { + if (yytable_value_is_error (yyn)) + goto yyerrlab; + yyn = -yyn; + goto yyreduce; + } + + /* Count tokens shifted since error; after three, turn off error + status. */ + if (yyerrstatus) + yyerrstatus--; + + /* Shift the lookahead token. */ + YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); + yystate = yyn; + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + *++yyvsp = yylval; + YY_IGNORE_MAYBE_UNINITIALIZED_END + + /* Discard the shifted token. */ + yychar = YYEMPTY; + goto yynewstate; + + +/*-----------------------------------------------------------. +| yydefault -- do the default action for the current state. | +`-----------------------------------------------------------*/ +yydefault: + yyn = yydefact[yystate]; + if (yyn == 0) + goto yyerrlab; + goto yyreduce; + + +/*-----------------------------. +| yyreduce -- do a reduction. | +`-----------------------------*/ +yyreduce: + /* yyn is the number of a rule to reduce with. */ + yylen = yyr2[yyn]; + + /* If YYLEN is nonzero, implement the default value of the action: + '$$ = $1'. + + Otherwise, the following line sets YYVAL to garbage. + This behavior is undocumented and Bison + users should not rely upon it. Assigning to YYVAL + unconditionally makes the parser a bit smaller, and it avoids a + GCC warning that YYVAL may be used uninitialized. */ + yyval = yyvsp[1-yylen]; + + + YY_REDUCE_PRINT (yyn); + switch (yyn) + { + case 3: +#line 32 "cppython.y" + { create_ast((yyvsp[0].expression)); } +#line 1315 "parser.c" + break; + + case 4: +#line 35 "cppython.y" + { (yyval.expression) = create_bin_expr((yyvsp[-1].op), (yyvsp[-2].expression), (yyvsp[0].expression)); } +#line 1321 "parser.c" + break; + + case 5: +#line 36 "cppython.y" + { (yyval.expression) = create_bin_expr((yyvsp[-1].op), (yyvsp[-2].expression), (yyvsp[0].expression)); } +#line 1327 "parser.c" + break; + + case 6: +#line 37 "cppython.y" + { (yyval.expression) = show((yyvsp[0].expression)); } +#line 1333 "parser.c" + break; + + case 7: +#line 40 "cppython.y" + { (yyval.expression) = create_bin_expr((yyvsp[-1].op), (yyvsp[-2].expression), (yyvsp[0].expression)); } +#line 1339 "parser.c" + break; + + case 8: +#line 41 "cppython.y" + { (yyval.expression) = create_bin_expr((yyvsp[-1].op), (yyvsp[-2].expression), (yyvsp[0].expression)); } +#line 1345 "parser.c" + break; + + case 9: +#line 42 "cppython.y" + { (yyval.expression) = show((yyvsp[0].expression)); } +#line 1351 "parser.c" + break; + + case 10: +#line 45 "cppython.y" + { (yyval.expression) = create_int_expr((yyvsp[0].value)); } +#line 1357 "parser.c" + break; + + +#line 1361 "parser.c" + + default: break; + } + /* User semantic actions sometimes alter yychar, and that requires + that yytoken be updated with the new translation. We take the + approach of translating immediately before every use of yytoken. + One alternative is translating here after every semantic action, + but that translation would be missed if the semantic action invokes + YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or + if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an + incorrect destructor might then be invoked immediately. In the + case of YYERROR or YYBACKUP, subsequent parser actions might lead + to an incorrect destructor call or verbose syntax error message + before the lookahead is translated. */ + YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); + + YYPOPSTACK (yylen); + yylen = 0; + YY_STACK_PRINT (yyss, yyssp); + + *++yyvsp = yyval; + + /* Now 'shift' the result of the reduction. Determine what state + that goes to, based on the state we popped back to and the rule + number reduced by. */ + { + const int yylhs = yyr1[yyn] - YYNTOKENS; + const int yyi = yypgoto[yylhs] + *yyssp; + yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp + ? yytable[yyi] + : yydefgoto[yylhs]); + } + + goto yynewstate; + + +/*--------------------------------------. +| yyerrlab -- here on detecting error. | +`--------------------------------------*/ +yyerrlab: + /* Make sure we have latest lookahead translation. See comments at + user semantic actions for why this is necessary. */ + yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); + + /* If not already recovering from an error, report this error. */ + if (!yyerrstatus) + { + ++yynerrs; +#if ! YYERROR_VERBOSE + yyerror (YY_("syntax error")); +#else +# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ + yyssp, yytoken) + { + char const *yymsgp = YY_("syntax error"); + int yysyntax_error_status; + yysyntax_error_status = YYSYNTAX_ERROR; + if (yysyntax_error_status == 0) + yymsgp = yymsg; + else if (yysyntax_error_status == 1) + { + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); + yymsg = YY_CAST (char *, YYSTACK_ALLOC (YY_CAST (YYSIZE_T, yymsg_alloc))); + if (!yymsg) + { + yymsg = yymsgbuf; + yymsg_alloc = sizeof yymsgbuf; + yysyntax_error_status = 2; + } + else + { + yysyntax_error_status = YYSYNTAX_ERROR; + yymsgp = yymsg; + } + } + yyerror (yymsgp); + if (yysyntax_error_status == 2) + goto yyexhaustedlab; + } +# undef YYSYNTAX_ERROR +#endif + } + + + + if (yyerrstatus == 3) + { + /* If just tried and failed to reuse lookahead token after an + error, discard it. */ + + if (yychar <= YYEOF) + { + /* Return failure if at end of input. */ + if (yychar == YYEOF) + YYABORT; + } + else + { + yydestruct ("Error: discarding", + yytoken, &yylval); + yychar = YYEMPTY; + } + } + + /* Else will try to reuse lookahead token after shifting the error + token. */ + goto yyerrlab1; + + +/*---------------------------------------------------. +| yyerrorlab -- error raised explicitly by YYERROR. | +`---------------------------------------------------*/ +yyerrorlab: + /* Pacify compilers when the user code never invokes YYERROR and the + label yyerrorlab therefore never appears in user code. */ + if (0) + YYERROR; + + /* Do not reclaim the symbols of the rule whose action triggered + this YYERROR. */ + YYPOPSTACK (yylen); + yylen = 0; + YY_STACK_PRINT (yyss, yyssp); + yystate = *yyssp; + goto yyerrlab1; + + +/*-------------------------------------------------------------. +| yyerrlab1 -- common code for both syntax error and YYERROR. | +`-------------------------------------------------------------*/ +yyerrlab1: + yyerrstatus = 3; /* Each real token shifted decrements this. */ + + for (;;) + { + yyn = yypact[yystate]; + if (!yypact_value_is_default (yyn)) + { + yyn += YYTERROR; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + { + yyn = yytable[yyn]; + if (0 < yyn) + break; + } + } + + /* Pop the current state because it cannot handle the error token. */ + if (yyssp == yyss) + YYABORT; + + + yydestruct ("Error: popping", + yystos[yystate], yyvsp); + YYPOPSTACK (1); + yystate = *yyssp; + YY_STACK_PRINT (yyss, yyssp); + } + + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + *++yyvsp = yylval; + YY_IGNORE_MAYBE_UNINITIALIZED_END + + + /* Shift the error token. */ + YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); + + yystate = yyn; + goto yynewstate; + + +/*-------------------------------------. +| yyacceptlab -- YYACCEPT comes here. | +`-------------------------------------*/ +yyacceptlab: + yyresult = 0; + goto yyreturn; + + +/*-----------------------------------. +| yyabortlab -- YYABORT comes here. | +`-----------------------------------*/ +yyabortlab: + yyresult = 1; + goto yyreturn; + + +#if !defined yyoverflow || YYERROR_VERBOSE +/*-------------------------------------------------. +| yyexhaustedlab -- memory exhaustion comes here. | +`-------------------------------------------------*/ +yyexhaustedlab: + yyerror (YY_("memory exhausted")); + yyresult = 2; + /* Fall through. */ +#endif + + +/*-----------------------------------------------------. +| yyreturn -- parsing is finished, return the result. | +`-----------------------------------------------------*/ +yyreturn: + if (yychar != YYEMPTY) + { + /* Make sure we have latest lookahead translation. See comments at + user semantic actions for why this is necessary. */ + yytoken = YYTRANSLATE (yychar); + yydestruct ("Cleanup: discarding lookahead", + yytoken, &yylval); + } + /* Do not reclaim the symbols of the rule whose action triggered + this YYABORT or YYACCEPT. */ + YYPOPSTACK (yylen); + YY_STACK_PRINT (yyss, yyssp); + while (yyssp != yyss) + { + yydestruct ("Cleanup: popping", + yystos[+*yyssp], yyvsp); + YYPOPSTACK (1); + } +#ifndef yyoverflow + if (yyss != yyssa) + YYSTACK_FREE (yyss); +#endif +#if YYERROR_VERBOSE + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); +#endif + return yyresult; +} +#line 48 "cppython.y" + + +void yyerror(char *s) { + printf("%s\n", s); +} diff --git a/src/parser.h b/src/parser.h new file mode 100644 index 0000000..776de16 --- /dev/null +++ b/src/parser.h @@ -0,0 +1,83 @@ +/* A Bison parser, made by GNU Bison 3.5.1. */ + +/* Bison interface for Yacc-like parsers in C + + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation, + Inc. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +/* As a special exception, you may create a larger work that contains + part or all of the Bison parser skeleton and distribute that work + under terms of your choice, so long as that work isn't itself a + parser generator using the skeleton or a modified version thereof + as a parser skeleton. Alternatively, if you modify or redistribute + the parser skeleton itself, you may (at your option) remove this + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. + + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ + +/* Undocumented macros, especially those whose name start with YY_, + are private implementation details. Do not rely on them. */ + +#ifndef YY_YY_PARSER_H_INCLUDED +# define YY_YY_PARSER_H_INCLUDED +/* Debug traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif +#if YYDEBUG +extern int yydebug; +#endif + +/* Token type. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + enum yytokentype + { + ADD = 258, + SUB = 259, + MULT = 260, + DIV = 261, + INTEGER = 262 + }; +#endif + +/* Value type. */ +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +union YYSTYPE +{ +#line 15 "cppython.y" + + int value; + char* op; + ast_node* expression; + +#line 71 "parser.h" + +}; +typedef union YYSTYPE YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1 +# define YYSTYPE_IS_DECLARED 1 +#endif + + +extern YYSTYPE yylval; + +int yyparse (void); + +#endif /* !YY_YY_PARSER_H_INCLUDED */ diff --git a/src/parser.output b/src/parser.output new file mode 100644 index 0000000..7135396 --- /dev/null +++ b/src/parser.output @@ -0,0 +1,177 @@ +Grammar + + 0 $accept: input $end + + 1 input: %empty + 2 | expr + + 3 expr: term ADD term + 4 | term SUB term + 5 | term + + 6 term: factor MULT factor + 7 | factor DIV factor + 8 | factor + + 9 factor: INTEGER + + +Terminals, with rules where they appear + + $end (0) 0 + error (256) + ADD (258) 3 + SUB (259) 4 + MULT (260) 6 + DIV (261) 7 + INTEGER (262) 9 + + +Nonterminals, with rules where they appear + + $accept (8) + on left: 0 + input (9) + on left: 1 2 + on right: 0 + expr (10) + on left: 3 4 5 + on right: 2 + term (11) + on left: 6 7 8 + on right: 3 4 5 + factor (12) + on left: 9 + on right: 6 7 8 + + +State 0 + + 0 $accept: . input $end + + INTEGER shift, and go to state 1 + + $default reduce using rule 1 (input) + + input go to state 2 + expr go to state 3 + term go to state 4 + factor go to state 5 + + +State 1 + + 9 factor: INTEGER . + + $default reduce using rule 9 (factor) + + +State 2 + + 0 $accept: input . $end + + $end shift, and go to state 6 + + +State 3 + + 2 input: expr . + + $default reduce using rule 2 (input) + + +State 4 + + 3 expr: term . ADD term + 4 | term . SUB term + 5 | term . + + ADD shift, and go to state 7 + SUB shift, and go to state 8 + + $default reduce using rule 5 (expr) + + +State 5 + + 6 term: factor . MULT factor + 7 | factor . DIV factor + 8 | factor . + + MULT shift, and go to state 9 + DIV shift, and go to state 10 + + $default reduce using rule 8 (term) + + +State 6 + + 0 $accept: input $end . + + $default accept + + +State 7 + + 3 expr: term ADD . term + + INTEGER shift, and go to state 1 + + term go to state 11 + factor go to state 5 + + +State 8 + + 4 expr: term SUB . term + + INTEGER shift, and go to state 1 + + term go to state 12 + factor go to state 5 + + +State 9 + + 6 term: factor MULT . factor + + INTEGER shift, and go to state 1 + + factor go to state 13 + + +State 10 + + 7 term: factor DIV . factor + + INTEGER shift, and go to state 1 + + factor go to state 14 + + +State 11 + + 3 expr: term ADD term . + + $default reduce using rule 3 (expr) + + +State 12 + + 4 expr: term SUB term . + + $default reduce using rule 4 (expr) + + +State 13 + + 6 term: factor MULT factor . + + $default reduce using rule 6 (term) + + +State 14 + + 7 term: factor DIV factor . + + $default reduce using rule 7 (term) diff --git a/src/sym_tab.c b/src/sym_tab.c new file mode 100644 index 0000000..546bd66 --- /dev/null +++ b/src/sym_tab.c @@ -0,0 +1,34 @@ +#include "sym_tab.h" + + +void add_word(int key, char *name) { + struct word *s; + HASH_FIND_INT(symbol_table, &key, s); + if (s == NULL) { + s = (struct word *) malloc(sizeof *s); + s->key = key; + HASH_ADD_INT(symbol_table, key, s); + } + strcpy(s->name, name); +} + +struct word *find_word(int word_key) { + struct word *s; + + HASH_FIND_INT(symbol_table, &word_key, s); + return s; +} + +void delete_word(struct word *s) { + HASH_DEL(symbol_table, s); + free(s); +} + +void delete_all() { + struct word *cur_word, *tmp; + + HASH_ITER(hh, symbol_table, cur_word, tmp) { + HASH_DEL(symbol_table, cur_word); + free(cur_word); + } +} \ No newline at end of file diff --git a/src/sym_tab.h b/src/sym_tab.h new file mode 100644 index 0000000..8e9422c --- /dev/null +++ b/src/sym_tab.h @@ -0,0 +1,19 @@ +#ifndef __SYM_TAB_H__ +#define __SYM_TAB_H__ + +#include "uthash.h" + +struct word { + int key; + char name[50]; + UT_hash_handle hh; /* makes this structure hashable */ +}; + +struct word *symbol_table; + +void add_word(int key, char *name); +struct word *find_word(int word_key); +void delete_word(struct word *s); +void delete_all(); + +#endif // __SYM_TAB_H__ \ No newline at end of file diff --git a/src/tests/invalid_1.ppy b/src/tests/lexer/invalid_1.ppy similarity index 100% rename from src/tests/invalid_1.ppy rename to src/tests/lexer/invalid_1.ppy diff --git a/src/tests/invalid_2.ppy b/src/tests/lexer/invalid_2.ppy similarity index 100% rename from src/tests/invalid_2.ppy rename to src/tests/lexer/invalid_2.ppy diff --git a/src/tests/valid_1.ppy b/src/tests/lexer/valid_1.ppy similarity index 100% rename from src/tests/valid_1.ppy rename to src/tests/lexer/valid_1.ppy diff --git a/src/tests/valid_2.ppy b/src/tests/lexer/valid_2.ppy similarity index 100% rename from src/tests/valid_2.ppy rename to src/tests/lexer/valid_2.ppy diff --git a/src/tests/parser/invalid_1.ppy b/src/tests/parser/invalid_1.ppy new file mode 100644 index 0000000..b297393 --- /dev/null +++ b/src/tests/parser/invalid_1.ppy @@ -0,0 +1 @@ +1 ^ diff --git a/src/tests/parser/invalid_2.ppy b/src/tests/parser/invalid_2.ppy new file mode 100644 index 0000000..f673cd9 --- /dev/null +++ b/src/tests/parser/invalid_2.ppy @@ -0,0 +1,2 @@ +1 + 1 +@ diff --git a/src/tests/parser/valid_1.ppy b/src/tests/parser/valid_1.ppy new file mode 100644 index 0000000..8d2f097 --- /dev/null +++ b/src/tests/parser/valid_1.ppy @@ -0,0 +1 @@ +1 + 1 diff --git a/src/tests/parser/valid_2.ppy b/src/tests/parser/valid_2.ppy new file mode 100644 index 0000000..30ec71b --- /dev/null +++ b/src/tests/parser/valid_2.ppy @@ -0,0 +1 @@ +5 - 1