From 2b6193a2c74f8d57aacb3bbb8c5b1ca3df5e9345 Mon Sep 17 00:00:00 2001 From: yenru0 Date: Wed, 3 Dec 2025 04:58:41 +0900 Subject: [PATCH] semi-complete semantic v2 --- src/2024062806.docx | Bin 0 -> 156924 bytes src/analyze.c | 46 +++++--- src/lex/tiny.l | 75 ------------- src/res.txt | 47 +++++++++ src/sample.txt | 44 ++++++++ src/symtab.c | 250 +++++++++++++++++++++++++++++++++++++++----- src/symtab.h | 7 +- src/test.cm | 23 ++-- src/test_1.cm | 3 - src/yacc/globals.h | 120 --------------------- src/yacc/tiny.y | 164 ----------------------------- 11 files changed, 360 insertions(+), 419 deletions(-) create mode 100644 src/2024062806.docx delete mode 100644 src/lex/tiny.l create mode 100644 src/res.txt create mode 100644 src/sample.txt delete mode 100644 src/yacc/globals.h delete mode 100644 src/yacc/tiny.y diff --git a/src/2024062806.docx b/src/2024062806.docx new file mode 100644 index 0000000000000000000000000000000000000000..66787cb7d5c2530161268250217858858a880d80 GIT binary patch literal 156924 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ν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 + char *new_name = (char *) malloc(255); + snprintf(new_name, 255, "%s.%d", parent_scope_name, curr_scope()->child_count); + push_scope(scope_new(new_name)); } break; default: @@ -149,7 +152,7 @@ static void insertNode(TreeNode *t) { case NonArrParamK: { if (t->type == Void) { if (t->attr.name != NULL) { - fprintf(listing, "Error: The void-type parameter is declared at line %d (name : \"%s\")\n", t->lineno, t->attr.name); + fprintf(listing, "Error: The void-type variable is declared at line %d (name : \"%s\")\n", t->lineno, t->attr.name); Error = TRUE; } else { goto insert_param_exit; @@ -171,6 +174,7 @@ static void insertNode(TreeNode *t) { lines = lines->next; } fprintf(listing, ")\n"); + st_entry_insert_line(entry, t->lineno); Error = TRUE; } else { if (t->type == Void) { @@ -204,14 +208,19 @@ void buildSymtab(TreeNode *syntaxTree) { BucketList entry; entry = st_try_insert("input", SymbolFunc, Integer, 0); entry->param_count = 0; + entry->returnType = Integer; entry = st_try_insert("output", SymbolFunc, Void, 0); + entry->returnType = Void; entry->param_types[0] = Integer; + entry->param_names[0] = "value"; entry->param_count = 1; + push_scope(scope_new("output")); + st_try_insert("value", SymbolParam, Integer, 0); + pop_scope(); traverse(syntaxTree, insertNode, afterNode); if (TraceAnalyze) { - fprintf(listing, "\nSymbol table:\n\n"); printSymTab(listing); } } @@ -234,7 +243,7 @@ static void checkNode(TreeNode *t) { TreeNode *left = t->child[0]; TreeNode *right = t->child[1]; if (left->type != Integer || right->type != Integer) { - fprintf(listing, "Error: Invalid operation at line %d\n", t->lineno); + fprintf(listing, "Error: invalid operation at line %d\n", t->lineno); Error = TRUE; } t->type = Integer; @@ -253,28 +262,33 @@ static void checkNode(TreeNode *t) { Error = TRUE; } if (t->child[0]->type != Integer) { - fprintf(listing, "Error: Invalid array indexing at line %d (name : \"%s\"). indicies should be integer\n", t->lineno, t->attr.name); + fprintf(listing, "Error: Invalid array indexing at line %d (name : \"%s\"). indices should be integer\n", t->lineno, t->attr.name); Error = TRUE; } - t->type = IntegerArray; - + t->type = Integer; } break; case AssignK: { TreeNode *left = t->child[0]; TreeNode *right = t->child[1]; - if (left->type != right->type) { - fprintf(listing, "Error: Invalid assignment at line %d\n", t->lineno); + if (left->type == Integer && right->type == Integer) { + + } else if (left->type == IntegerArray && right->type == IntegerArray) { + + } else { + fprintf(listing, "Error: invalid assignment at line %d. cannot assign to array variable\n", t->lineno); Error = TRUE; } + t->type = right->type; } break; case CallK: { BucketList entry = st_lookup_from(t->attr.name, t->scope);// not null if (entry->symbolKind != SymbolFunc) { - typeError(t, ""); - typeError(t, "Call to a non-function"); + fprintf(listing, "Error: Invalid function call at line %d (name : \"%s\")\n", t->lineno, t->attr.name); + Error = TRUE; + goto check_callk_after; } TreeNode *arg = t->child[0]; @@ -283,7 +297,7 @@ static void checkNode(TreeNode *t) { while (arg != NULL && i < entry->param_count) { if (arg->type != entry->param_types[i]) { - fprintf(listing, "Error: Invalid function call at line %d\n", t->lineno); + fprintf(listing, "Error: Invalid function call at line %d (name : \"%s\")\n", t->lineno, t->attr.name); Error = TRUE; goto check_callk_after; } @@ -293,10 +307,10 @@ static void checkNode(TreeNode *t) { } if (arg != NULL) { - fprintf(listing, "Error: Invalid function call at line %d\n", t->lineno); + fprintf(listing, "Error: Invalid function call at line %d (name : \"%s\")\n", t->lineno, t->attr.name); Error = TRUE; } else if (i < entry->param_count) { - fprintf(listing, "Error: Invalid function call at line %d\n", t->lineno); + fprintf(listing, "Error: Invalid function call at line %d (name : \"%s\")\n", t->lineno, t->attr.name); Error = TRUE; } @@ -335,14 +349,14 @@ static void checkNode(TreeNode *t) { case IterK: { TreeNode *condition = t->child[0]; if (condition->type != Integer) { - fprintf(listing, "Error: Invalid condition at line %d\n", t->lineno); + fprintf(listing, "Error: invalid condition at line %d\n", t->lineno); Error = TRUE; } } break; case IfK: { TreeNode *condition = t->child[0]; if (condition->type != Integer) { - fprintf(listing, "Error: Invalid condition at line %d\n", t->lineno); + fprintf(listing, "Error: invalid condition at line %d\n", t->lineno); Error = TRUE; } } break; diff --git a/src/lex/tiny.l b/src/lex/tiny.l deleted file mode 100644 index aa96caa..0000000 --- a/src/lex/tiny.l +++ /dev/null @@ -1,75 +0,0 @@ -/****************************************************/ -/* File: tiny.l */ -/* Lex specification for TINY */ -/* Compiler Construction: Principles and Practice */ -/* Kenneth C. Louden */ -/****************************************************/ - -%{ -#include "globals.h" -#include "util.h" -#include "scan.h" -/* lexeme of identifier or reserved word */ -char tokenString[MAXTOKENLEN+1]; -%} - -digit [0-9] -number {digit}+ -letter [a-zA-Z] -identifier {letter}+ -newline \n -whitespace [ \t]+ - -%% - -"if" {return IF;} -"then" {return THEN;} -"else" {return ELSE;} -"end" {return END;} -"repeat" {return REPEAT;} -"until" {return UNTIL;} -"read" {return READ;} -"write" {return WRITE;} -":=" {return ASSIGN;} -"=" {return EQ;} -"<" {return LT;} -"+" {return PLUS;} -"-" {return MINUS;} -"*" {return TIMES;} -"/" {return OVER;} -"(" {return LPAREN;} -")" {return RPAREN;} -";" {return SEMI;} -{number} {return NUM;} -{identifier} {return ID;} -{newline} {lineno++;} -{whitespace} {/* skip whitespace */} -"{" { char c; - do - { c = input(); - if (c == EOF) break; - if (c == '\n') lineno++; - } while (c != '}'); - } -. {return ERROR;} - -%% - -TokenType getToken(void) -{ static int firstTime = TRUE; - TokenType currentToken; - if (firstTime) - { firstTime = FALSE; - lineno++; - yyin = source; - yyout = listing; - } - currentToken = yylex(); - strncpy(tokenString,yytext,MAXTOKENLEN); - if (TraceScan) { - fprintf(listing,"\t%d: ",lineno); - printToken(currentToken,tokenString); - } - return currentToken; -} - diff --git a/src/res.txt b/src/res.txt new file mode 100644 index 0000000..6f4c76a --- /dev/null +++ b/src/res.txt @@ -0,0 +1,47 @@ + +C-MINUS COMPILATION: ./test.cm + +Building Symbol Table... +Error: undeclared function "x" is called at line 3 + + +< Symbol Table > + Symbol Name Symbol Kind Symbol Type Scope Name Location Line Numbers +------------- ----------- ------------- ------------ -------- ------------ +main Function int global 2 1 +input Function int global 0 0 +output Function void global 1 0 +value Variable int output 0 0 +x Function undetermined main 0 3 + + +< Functions > +Function Name Return Type Parameter Name Parameter Type +------------- ------------- -------------- -------------- +main int void +input int void +output void +- - value int +x undetermined undetermined + + +< Global Symbols > + Symbol Name Symbol Kind Symbol Type +------------- ----------- ------------- +main Function int +input Function int +output Function void + + +< Scopes > + Scope Name Nested Level Symbol Name Symbol Type +------------ ------------ ------------- ----------- +output 1 value int + +main 1 x void + + +Checking Types... +Error: Invalid function call at line 3 (name : "x") + +Type Checking Finished diff --git a/src/sample.txt b/src/sample.txt new file mode 100644 index 0000000..4ef881a --- /dev/null +++ b/src/sample.txt @@ -0,0 +1,44 @@ +C-MINUS COMPILATION: ./testcase/3_Semantic_Makefile_Testcase/mytest.8.txt + +Building Symbol Table... + + +< Symbol Table > + Symbol Name Symbol Kind Symbol Type Scope Name Location Line Numbers +------------- ----------- ------------- ------------ -------- ------------ +main Function int global 2 1 +input Function int global 0 0 +output Function void global 1 0 +value Variable int output 0 0 +x Variable int main 0 2 3 + + +< Functions > +Function Name Return Type Parameter Name Parameter Type +------------- ------------- -------------- -------------- +main int void +input int void +output void +- - value int + + +< Global Symbols > + Symbol Name Symbol Kind Symbol Type +------------- ----------- ------------- +main Function int +input Function int +output Function void + + +< Scopes > + Scope Name Nested Level Symbol Name Symbol Type +------------ ------------ ------------- ----------- +output 1 value int + +main 1 x int + + +Checking Types... +Error: Invalid function call at line 3 (name : "x") + +Type Checking Finished diff --git a/src/symtab.c b/src/symtab.c index 505329c..9393ea1 100644 --- a/src/symtab.c +++ b/src/symtab.c @@ -178,35 +178,52 @@ BucketList st_lookup_from(char *name, Scope scope) { return NULL; /* not found */ } -static void printEntry(FILE *listing, BucketList entry) { +static void printEntry(FILE *listing, Scope scope, BucketList entry) { if (entry == NULL) return; - fprintf(listing, "%-14s", entry->name); + fprintf(listing, "%-13s", entry->name); + fprintf(listing, " "); switch (entry->symbolKind) { case SymbolVar: - fprintf(listing, "|%-13s", "Var"); + fprintf(listing, "%-11s", "Variable"); break; case SymbolFunc: - fprintf(listing, "|%-13s", "Func"); + fprintf(listing, "%-11s", "Function"); break; case SymbolParam: - fprintf(listing, "|%-13s", "Param"); + fprintf(listing, "%-11s", "Variable"); break; } - switch (entry->type) { + fprintf(listing, " "); + ExpType type; + if (entry->symbolKind == SymbolFunc) { + type = entry->returnType; + } else { + type = entry->type; + } + switch (type) { case Void: - fprintf(listing, "|%-11s", "void"); + fprintf(listing, "%-13s", "void"); break; case Integer: - fprintf(listing, "|%-11s", "int"); + fprintf(listing, "%-13s", "int"); break; case IntegerArray: - fprintf(listing, "|%-11s", "int[]"); + fprintf(listing, "%-13s", "int[]"); break; + case Undetermined: + fprintf(listing, "%-13s", "undetermined"); } - fprintf(listing, "|%-9d|", entry->memloc); + // + fprintf(listing, " "); + fprintf(listing, "%-12s", scope->name); + // + fprintf(listing, " "); + fprintf(listing, "%-8d", entry->memloc); + fprintf(listing, " "); LineList t = entry->lines; while (t != NULL) { - fprintf(listing, "%d ", t->lineno); + fprintf(listing, "%3d", t->lineno); + fprintf(listing, " "); t = t->next; } fprintf(listing, "\n"); @@ -218,13 +235,14 @@ static void printScopeTable(FILE *listing, Scope scope) { for (int i = 0; i < SYMTAB_SIZE; ++i) { BucketList l = scope->hashTable[i]; while (l != NULL) { + printEntry(listing, scope, l); count++; l = l->next; } } - + /* if (count > 0) { - BucketList *entries = (BucketList *)malloc(sizeof(BucketList) * count); + BucketList *entries = (BucketList *) malloc(sizeof(BucketList) * count); int idx = 0; for (int i = 0; i < SYMTAB_SIZE; ++i) { BucketList l = scope->hashTable[i]; @@ -245,15 +263,16 @@ static void printScopeTable(FILE *listing, Scope scope) { } for (int i = 0; i < count; ++i) { - printEntry(listing, entries[i]); + printEntry(listing, scope, entries[i]); } free(entries); } - fprintf(listing, "\n"); + */ + //fprintf(listing, "\n"); } -void printScope(FILE *listing, Scope scope) { +static void printScope(FILE *listing, Scope scope) { if (scope == NULL) return; fprintf(listing, "Scope Name: %s, Depth: %d\n", scope->name, scope->depth); fprintf(listing, "-----------------------------------------\n"); @@ -275,7 +294,7 @@ static void printScopeRecursive(FILE *listing, Scope scope) { } } -void printScopeTree(FILE *listing) { +static void printScopeTree(FILE *listing) { if (scope_global == NULL) return; Scope current_scope = scope_global; @@ -295,12 +314,193 @@ static void printScopeTableRecursive(FILE *listing, Scope scope) { } } -void printSymTab(FILE *listing) { - fprintf(listing, "Scope Table"); - fprintf(listing, "------------------------------------------------------------\n"); - fprintf(listing, "Variable Name Symbol Kind Type Location Line Numbers\n"); - fprintf(listing, "------------------------------------------------------------\n"); - - Scope curr = scope_global; - printScopeTableRecursive(listing, curr); +static void printFunctionTableRecursive(FILE *listing, Scope scope) { + for (int i = 0; i < SYMTAB_SIZE; ++i) { + BucketList entry = scope->hashTable[i]; + while (entry != NULL) { + if (entry->symbolKind == SymbolFunc) { + fprintf(listing, "%-13s", entry->name); + fprintf(listing, " "); + switch (entry->returnType) { + case Void: + fprintf(listing, "%-13s", "void"); + break; + case Integer: + fprintf(listing, "%-13s", "int"); + break; + case IntegerArray: + fprintf(listing, "%-13s", "int[]"); + break; + case Undetermined: + fprintf(listing, "%-13s", "undetermined"); + } + if (entry->param_count == -1) { + fprintf(listing, " "); + fprintf(listing, "%-14s", "undetermined"); + entry = entry->next; + fprintf(listing, "\n"); + continue; + } + else if (entry->param_count == 0) { + fprintf(listing, " "); + fprintf(listing, "%-14s", "void"); + entry = entry->next; + fprintf(listing, "\n"); + continue; + } + fprintf(listing, " \n"); + for (int j = 0; j < entry->param_count; j++) { + fprintf(listing, "- - "); + fprintf(listing, " %-14s", entry->param_names[j]); + fprintf(listing, " "); + switch (entry->param_types[j]) { + case Void: + fprintf(listing, "%-14s", "void"); + break; + case Integer: + fprintf(listing, "%-14s", "int"); + break; + case IntegerArray: + fprintf(listing, "%-14s", "int[]"); + break; + case Undetermined: + fprintf(listing, "%-14s", "undetermined"); + } + fprintf(listing, "\n"); + } + } + entry = entry->next; + } + } + + Scope child = scope->child; + while (child != NULL) { + printFunctionTableRecursive(listing, child); + child = child->next_sibling; + } +} + +static void printFunctionTable(FILE *listing) { + if (scope_global == NULL) return; + + printFunctionTableRecursive(listing, scope_global); +} + +static void printGlobalSymbols(FILE *listing) { + if (scope_global == NULL) return; + + for (int i = 0; i < SYMTAB_SIZE; ++i) { + BucketList entry = scope_global->hashTable[i]; + while (entry != NULL) { + fprintf(listing, "%-13s ", entry->name); + + switch (entry->symbolKind) { + case SymbolVar: + fprintf(listing, "%-11s ", "Variable"); + break; + case SymbolFunc: + fprintf(listing, "%-11s ", "Function"); + break; + case SymbolParam: + fprintf(listing, "%-11s ", "Variable"); + break; + } + ExpType type; + if (entry->symbolKind == SymbolFunc) { + type = entry->returnType; + } else { + type = entry->type; + } + switch (type) { + case Void: + fprintf(listing, "%-13s", "void"); + break; + case Integer: + fprintf(listing, "%-13s", "int"); + break; + case IntegerArray: + fprintf(listing, "%-13s", "int[]"); + break; + case Undetermined: + fprintf(listing, "%-13s", "undetermined"); + } + fprintf(listing, "\n"); + entry = entry->next; + } + } +} + +static void printScopeTableAdvancedRecursive(FILE *listing, Scope scope) { + if (scope == NULL) return; + int no_sym = TRUE; + for (int i = 0; i < SYMTAB_SIZE; ++i) { + BucketList entry = scope->hashTable[i]; + while (entry != NULL) { + no_sym = FALSE; + fprintf(listing, "%-12s", scope->name); + fprintf(listing, " "); + fprintf(listing, "%-12d", scope->depth); + fprintf(listing, " "); + fprintf(listing, "%-13s", entry->name); + fprintf(listing, " "); + switch (entry->type) { + case Void: + fprintf(listing, "%-11s", "void"); + break; + case Integer: + fprintf(listing, "%-11s", "int"); + break; + case IntegerArray: + fprintf(listing, "%-11s", "int[]"); + break; + case Undetermined: + fprintf(listing, "%-11s", "undetermined"); + } + fprintf(listing, "\n"); + entry = entry->next; + } + } + if (!no_sym) fprintf(listing, "\n"); + + Scope child = scope->child; + while (child != NULL) { + printScopeTableAdvancedRecursive(listing, child); + child = child->next_sibling; + } +} + +static void printScopeTableAdvanced(FILE *listing) { + if (scope_global == NULL) return; + + Scope current_scope; + + current_scope = scope_global->child; + + while (current_scope != NULL) { + printScopeTableAdvancedRecursive(listing, current_scope); + current_scope = current_scope->next_sibling; + } +} + +void printSymTab(FILE *listing) { + Scope curr = scope_global; + fprintf(listing, "\n\n< Symbol Table >\n"); + fprintf(listing, " Symbol Name Symbol Kind Symbol Type Scope Name Location Line Numbers\n"); + fprintf(listing, "------------- ----------- ------------- ------------ -------- ------------\n"); + printScopeTableRecursive(listing, curr); + + fprintf(listing, "\n\n< Functions >\n"); + fprintf(listing, "Function Name Return Type Parameter Name Parameter Type\n"); + fprintf(listing, "------------- ------------- -------------- --------------\n"); + printFunctionTable(listing); + + fprintf(listing, "\n\n< Global Symbols >\n"); + fprintf(listing, " Symbol Name Symbol Kind Symbol Type\n"); + fprintf(listing, "------------- ----------- -------------\n"); + printGlobalSymbols(listing); + + fprintf(listing, "\n\n< Scopes >\n"); + fprintf(listing, " Scope Name Nested Level Symbol Name Symbol Type\n"); + fprintf(listing, "------------ ------------ ------------- -----------\n"); + printScopeTableAdvanced(listing); } diff --git a/src/symtab.h b/src/symtab.h index ebfefcb..cb313a9 100644 --- a/src/symtab.h +++ b/src/symtab.h @@ -14,8 +14,7 @@ */ #define SYMTAB_SIZE 211 -#define MAX_SCOPE_DEPTH 32 -#define MAX_SCOPE_COUNT 1557 +#define MAX_SCOPE_DEPTH 1557 #define MAX_PARAM_COUNT 13 @@ -134,10 +133,6 @@ BucketList st_lookup(char *name); */ BucketList st_lookup_from(char *name, Scope scope); -void printScope(FILE *listing, Scope scope); - -void printScopeTree(FILE *listing); - void printSymTab(FILE *listing); #endif diff --git a/src/test.cm b/src/test.cm index b9d09e9..2e575b5 100644 --- a/src/test.cm +++ b/src/test.cm @@ -1,13 +1,16 @@ -int fib(int n) { - if (n <= 0) { - return 1; - } else { - return fib(n * fib(n - 1)); - } +int main(void) +{ + x(1, 2); } - +/* int main(void) { - int x; - x = fib(input()); + if (x) { + int x; + x = 3; + } else { + int y; + y = 0; + x = 5; + } output(x); -} \ No newline at end of file +}*/ \ No newline at end of file diff --git a/src/test_1.cm b/src/test_1.cm index ffcc3de..f9764cb 100644 --- a/src/test_1.cm +++ b/src/test_1.cm @@ -1,6 +1,3 @@ -/* A program to perform Euclid's - Algorithm to computer gcd */ - int gcd (int u, int v) { if (v == 0) return u; diff --git a/src/yacc/globals.h b/src/yacc/globals.h deleted file mode 100644 index cdd41c7..0000000 --- a/src/yacc/globals.h +++ /dev/null @@ -1,120 +0,0 @@ -/****************************************************/ -/* File: globals.h */ -/* Yacc/Bison Version */ -/* Global types and vars for TINY compiler */ -/* must come before other include files */ -/* Compiler Construction: Principles and Practice */ -/* Kenneth C. Louden */ -/****************************************************/ - -#ifndef _GLOBALS_H_ -#define _GLOBALS_H_ - -#include -#include -#include -#include - -/* Yacc/Bison generates internally its own values - * for the tokens. Other files can access these values - * by including the tab.h file generated using the - * Yacc/Bison option -d ("generate header") - * - * The YYPARSER flag prevents inclusion of the tab.h - * into the Yacc/Bison output itself - */ - -#ifndef YYPARSER - -/* the name of the following file may change */ -#include "y.tab.h" - -/* ENDFILE is implicitly defined by Yacc/Bison, - * and not included in the tab.h file - */ -#define ENDFILE 0 - -#endif - -#ifndef FALSE -#define FALSE 0 -#endif - -#ifndef TRUE -#define TRUE 1 -#endif - -/* MAXRESERVED = the number of reserved words */ -#define MAXRESERVED 8 - -/* Yacc/Bison generates its own integer values - * for tokens - */ -typedef int TokenType; - -extern FILE* source; /* source code text file */ -extern FILE* listing; /* listing output text file */ -extern FILE* code; /* code text file for TM simulator */ - -extern int lineno; /* source line number for listing */ - -/**************************************************/ -/*********** Syntax tree for parsing ************/ -/**************************************************/ - -typedef enum {StmtK,ExpK} NodeKind; -typedef enum {IfK,RepeatK,AssignK,ReadK,WriteK} StmtKind; -typedef enum {OpK,ConstK,IdK} ExpKind; - -/* ExpType is used for type checking */ -typedef enum {Void,Integer,Boolean} ExpType; - -#define MAXCHILDREN 3 - -typedef struct treeNode - { struct treeNode * child[MAXCHILDREN]; - struct treeNode * sibling; - int lineno; - NodeKind nodekind; - union { StmtKind stmt; ExpKind exp;} kind; - union { TokenType op; - int val; - char * name; } attr; - ExpType type; /* for type checking of exps */ - } TreeNode; - -/**************************************************/ -/*********** Flags for tracing ************/ -/**************************************************/ - -/* EchoSource = TRUE causes the source program to - * be echoed to the listing file with line numbers - * during parsing - */ -extern int EchoSource; - -/* TraceScan = TRUE causes token information to be - * printed to the listing file as each token is - * recognized by the scanner - */ -extern int TraceScan; - -/* TraceParse = TRUE causes the syntax tree to be - * printed to the listing file in linearized form - * (using indents for children) - */ -extern int TraceParse; - -/* TraceAnalyze = TRUE causes symbol table inserts - * and lookups to be reported to the listing file - */ -extern int TraceAnalyze; - -/* TraceCode = TRUE causes comments to be written - * to the TM code file as code is generated - */ -extern int TraceCode; - -/* Error = TRUE prevents further passes if an error occurs */ -extern int Error; -#endif diff --git a/src/yacc/tiny.y b/src/yacc/tiny.y deleted file mode 100644 index b1d6bc0..0000000 --- a/src/yacc/tiny.y +++ /dev/null @@ -1,164 +0,0 @@ -/****************************************************/ -/* File: tiny.y */ -/* The TINY Yacc/Bison specification file */ -/* Compiler Construction: Principles and Practice */ -/* Kenneth C. Louden */ -/****************************************************/ -%{ -#define YYPARSER /* distinguishes Yacc output from other code files */ - -#include "globals.h" -#include "util.h" -#include "scan.h" -#include "parse.h" - -#define YYSTYPE TreeNode * -static char * savedName; /* for use in assignments */ -static int savedLineNo; /* ditto */ -static TreeNode * savedTree; /* stores syntax tree for later return */ -static int yylex(void); // added 11/2/11 to ensure no conflict with lex - -%} - -%token IF THEN ELSE END REPEAT UNTIL READ WRITE -%token ID NUM -%token ASSIGN EQ LT PLUS MINUS TIMES OVER LPAREN RPAREN SEMI -%token ERROR - -%% /* Grammar for TINY */ - -program : stmt_seq - { savedTree = $1;} - ; -stmt_seq : stmt_seq SEMI stmt - { YYSTYPE t = $1; - if (t != NULL) - { while (t->sibling != NULL) - t = t->sibling; - t->sibling = $3; - $$ = $1; } - else $$ = $3; - } - | stmt { $$ = $1; } - ; -stmt : if_stmt { $$ = $1; } - | repeat_stmt { $$ = $1; } - | assign_stmt { $$ = $1; } - | read_stmt { $$ = $1; } - | write_stmt { $$ = $1; } - | error { $$ = NULL; } - ; -if_stmt : IF exp THEN stmt_seq END - { $$ = newStmtNode(IfK); - $$->child[0] = $2; - $$->child[1] = $4; - } - | IF exp THEN stmt_seq ELSE stmt_seq END - { $$ = newStmtNode(IfK); - $$->child[0] = $2; - $$->child[1] = $4; - $$->child[2] = $6; - } - ; -repeat_stmt : REPEAT stmt_seq UNTIL exp - { $$ = newStmtNode(RepeatK); - $$->child[0] = $2; - $$->child[1] = $4; - } - ; -assign_stmt : ID { savedName = copyString(tokenString); - savedLineNo = lineno; } - ASSIGN exp - { $$ = newStmtNode(AssignK); - $$->child[0] = $4; - $$->attr.name = savedName; - $$->lineno = savedLineNo; - } - ; -read_stmt : READ ID - { $$ = newStmtNode(ReadK); - $$->attr.name = - copyString(tokenString); - } - ; -write_stmt : WRITE exp - { $$ = newStmtNode(WriteK); - $$->child[0] = $2; - } - ; -exp : simple_exp LT simple_exp - { $$ = newExpNode(OpK); - $$->child[0] = $1; - $$->child[1] = $3; - $$->attr.op = LT; - } - | simple_exp EQ simple_exp - { $$ = newExpNode(OpK); - $$->child[0] = $1; - $$->child[1] = $3; - $$->attr.op = EQ; - } - | simple_exp { $$ = $1; } - ; -simple_exp : simple_exp PLUS term - { $$ = newExpNode(OpK); - $$->child[0] = $1; - $$->child[1] = $3; - $$->attr.op = PLUS; - } - | simple_exp MINUS term - { $$ = newExpNode(OpK); - $$->child[0] = $1; - $$->child[1] = $3; - $$->attr.op = MINUS; - } - | term { $$ = $1; } - ; -term : term TIMES factor - { $$ = newExpNode(OpK); - $$->child[0] = $1; - $$->child[1] = $3; - $$->attr.op = TIMES; - } - | term OVER factor - { $$ = newExpNode(OpK); - $$->child[0] = $1; - $$->child[1] = $3; - $$->attr.op = OVER; - } - | factor { $$ = $1; } - ; -factor : LPAREN exp RPAREN - { $$ = $2; } - | NUM - { $$ = newExpNode(ConstK); - $$->attr.val = atoi(tokenString); - } - | ID { $$ = newExpNode(IdK); - $$->attr.name = - copyString(tokenString); - } - | error { $$ = NULL; } - ; - -%% - -int yyerror(char * message) -{ fprintf(listing,"Syntax error at line %d: %s\n",lineno,message); - fprintf(listing,"Current token: "); - printToken(yychar,tokenString); - Error = TRUE; - return 0; -} - -/* yylex calls getToken to make Yacc/Bison output - * compatible with ealier versions of the TINY scanner - */ -static int yylex(void) -{ return getToken(); } - -TreeNode * parse(void) -{ yyparse(); - return savedTree; -} -