From 89d24e71197bc37db103e9eb363149095f4f0e5f Mon Sep 17 00:00:00 2001 From: Nicola115 <2225992901@qq.com> Date: Sat, 15 May 2021 17:59:51 +0800 Subject: [PATCH] add intermediate code generator for array --- .vscode/launch.json | 20 + .vscode/settings.json | 5 + Common.h | 4 +- LexicalAnalyser.cpp | 10 +- Makefile | 2 +- ParserAndSemanticAnalyser.cpp | 94 ++- ParserAndSemanticAnalyser.h | 18 +- main.cpp | 21 +- productions.txt | 7 +- productions_with_explanation.txt | 5 +- result/DFA.txt | 226 +++--- result/Intermediate.txt | 36 +- result/SLR1_analyse.txt | 1136 +++++++++++++++++++----------- test_with_array.txt | 38 + 14 files changed, 1062 insertions(+), 560 deletions(-) create mode 100644 .vscode/launch.json create mode 100644 .vscode/settings.json create mode 100644 test_with_array.txt diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..364ef96 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,20 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "(lldb) 启动", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/MyCompiler", + "args": [], + "stopAtEntry": false, + "cwd": "${workspaceFolder}", + "environment": [], + "externalConsole": false, + "MIMode": "lldb" + } + ] +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..a1dc2ea --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "files.associations": { + "typeinfo": "cpp" + } +} \ No newline at end of file diff --git a/Common.h b/Common.h index 5a5be84..f54c12b 100644 --- a/Common.h +++ b/Common.h @@ -32,7 +32,9 @@ typedef enum //枚举类型,保存词素类型 /* 行注释 段注释 */ LCOMMENT, PCOMMENT, /*换行符*/ - NEXTLINE + NEXTLINE, + /* [ ] */ + LBRACKET, RBRACKET } LexicalType; typedef pair Token; diff --git a/LexicalAnalyser.cpp b/LexicalAnalyser.cpp index 732e6da..30e27f7 100644 --- a/LexicalAnalyser.cpp +++ b/LexicalAnalyser.cpp @@ -30,7 +30,9 @@ string token_to_string(Token t) { "SEMI", // ; "COMMA", // , "LCOMMENT", // // - "PCOMMENT" // /* */ + "PCOMMENT", // /* */ + "LBRACKET", // [ + "RBRACKET" // ] }; string res; @@ -148,6 +150,12 @@ Token LexicalAnalyser::getNextToken() { return Token(ERROR, string("词法分析第")+to_string(lineCount)+string("行:未识别的符号!")); } break; + case '[': + return Token(LBRACKET,"["); + break; + case ']': + return Token(RBRACKET,"]"); + break; case '/': //行注释 if (src.peek() == '/') { diff --git a/Makefile b/Makefile index a564f32..efd0d9f 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ CC = g++ -CXX_FLAGS = -std=c++11 -w +CXX_FLAGS = -std=c++11 -w -g BIN = MyCompiler diff --git a/ParserAndSemanticAnalyser.cpp b/ParserAndSemanticAnalyser.cpp index 34088c4..25c2702 100644 --- a/ParserAndSemanticAnalyser.cpp +++ b/ParserAndSemanticAnalyser.cpp @@ -60,6 +60,10 @@ ArrayDeclare::ArrayDeclare(const Symbol& sym) : Symbol(sym) {} ArrayDeclareList::ArrayDeclareList(const Symbol& sym) : Symbol(sym) {} +Array::Array(const Symbol& sym) : Symbol(sym) {} + +IndexList::IndexList(const Symbol& sym) : Symbol(sym) {} + SentenceBlock::SentenceBlock(const Symbol& sym) : Symbol(sym) {} SentenceList::SentenceList(const Symbol& sym) : Symbol(sym) {} @@ -93,7 +97,7 @@ bool isVT(string s) { if (s == "+" || s == "-" || s == "*" || s == "/" || s == "=" || s == "==" || s == ">" || s == "<" || s == "!=" || s == ">=" || s == "<=") { return true; } - if (s == ";" || s == "," || s == "(" || s == ")" || s == "{" || s == "}" || s == "ID" || s == "NUM") { + if (s == ";" || s == "," || s == "(" || s == ")" || s == "{" || s == "}" || s == "ID" || s == "[" || s == "]" || s == "NUM") { return true; } return false; @@ -1045,13 +1049,11 @@ void ParserAndSemanticAnalyser::analyse(list&words, ostream& out) { ArrayDeclareList* array_declare_list = (ArrayDeclareList*)popSymbol(); Id* ID = (Id*)popSymbol(); Symbol* _int = popSymbol(); - if (array_declare_list->size <= 0) + if (array_declare_list->total_size <= 0) outputError(string("语法错误:第") + to_string(lineCount) + "行,数组" + ID->name + "容量不合法"); - for(int i=0;isize;i++){ - string name = ID->name+"_"+to_string(i); - varTable.push_back(Var{ name,D_INT,nowLevel }); - } + string name = ID->name; + varTable.push_back(Var{ name,D_INT_ARRAY,nowLevel,array_declare_list->size}); pushSymbol(new Symbol(reductPro.left)); break; } @@ -1060,7 +1062,9 @@ void ParserAndSemanticAnalyser::analyse(list&words, ostream& out) { ArrayDeclareList* array_declare_list = (ArrayDeclareList*)popSymbol(); ArrayDeclare* array_declare = (ArrayDeclare*)popSymbol(); ArrayDeclareList* total_list = new ArrayDeclareList(reductPro.left); - total_list->size = array_declare->size * array_declare_list->size; + total_list->size = vector(array_declare_list->size); + total_list->size.insert(total_list->size.begin(),array_declare->size); + total_list->total_size = array_declare->size * array_declare_list->total_size; pushSymbol(total_list); break; } @@ -1069,7 +1073,9 @@ void ParserAndSemanticAnalyser::analyse(list&words, ostream& out) { Symbol* semi = popSymbol(); ArrayDeclare* array_declare = (ArrayDeclare*)popSymbol(); ArrayDeclareList* total_list = new ArrayDeclareList(reductPro.left); - total_list->size = array_declare->size; + total_list->size = vector(); + total_list->size.push_back(array_declare->size); + total_list->total_size = array_declare->size; pushSymbol(total_list); break; } @@ -1085,25 +1091,87 @@ void ParserAndSemanticAnalyser::analyse(list&words, ostream& out) { } case 56://assign_sentence ::= array = expression ; { - Symbol* comma = popSymbol(); + Symbol* semi = popSymbol(); Expression* expression = (Expression*)popSymbol(); Symbol* assign = popSymbol(); - Id* ID = (Id*)popSymbol(); + Array* array = (Array*)popSymbol(); Symbol* assign_sentence = new Symbol(reductPro.left); - code.emit("=", expression->name, "_", ID->name); + code.emit("[]=", expression->name, "_", array->name); pushSymbol(assign_sentence); break; } case 57://factor ::= array { + Array* array = (Array*)popSymbol(); + Factor* factor = new Factor(reductPro.left); + factor->name = array->name; + pushSymbol(factor); + break; + } + case 58://array ::= ID index_list + { + IndexList* index_list = (IndexList*)popSymbol(); + Id* ID = (Id*)popSymbol(); + Var* v = lookUpVar(ID->name); + if (v == NULL || v->type!=D_INT_ARRAY) + outputError(string("语法错误:第") + to_string(lineCount) + "行,数组"+ID->name+"不存在"); + if (index_list->index.size()>v->size.size()) + outputError(string("语法错误:第") + to_string(lineCount) + "行,数组"+ID->name+"索引不合法"); + + // 解析index_list + Nomial* total_index = new Nomial(Symbol()); + if(v->size.size()==1) + total_index->name = index_list->index.at(0); + else{ + total_index->name = "0"; + int former_size = 1; + + for(int i=v->size.size()-1;i>=0;i--){ + string cur_index = "0"; + string new_base = "0"; + if (i < index_list->index.size()){ + cur_index = index_list->index.at(i); + // new_base = cur_index * former_size + if (cur_index != "0"){ + new_base = nt.newTemp(); + code.emit("*",cur_index,to_string(former_size),new_base); + } + + // total_index = new_base + total_index + if(total_index->name!="0" && new_base!="0") + code.emit("+",total_index->name,new_base,total_index->name); + else if(total_index->name=="0") + total_index->name = new_base; + } + former_size *= v->size.at(i); + } + } + Array* array = new Array(reductPro.left); + array->name = ID->name+"["+total_index->name+"]"; + pushSymbol(array); break; } - case 58://array ::= ID [ expression ] + case 59://index_list ::= [ expression ] index_list { + IndexList* old_index_list = (IndexList*)popSymbol(); + Symbol* rbracket = popSymbol(); + Expression* ex = (Expression*)popSymbol(); + Symbol* lbracket = popSymbol(); + IndexList* new_index_list = new IndexList(reductPro.left); + new_index_list->index = vector(old_index_list->index); + new_index_list->index.insert(new_index_list->index.begin(),ex->name); + pushSymbol(new_index_list); break; } - case 59://array ::= array [ expression ] + case 60://index_list ::= [ expression ] { + Symbol* rbracket = popSymbol(); + Expression* ex = (Expression*)popSymbol(); + Symbol* lbracket = popSymbol(); + IndexList* new_index_list = new IndexList(reductPro.left); + new_index_list->index = vector(); + new_index_list->index.push_back(ex->name); + pushSymbol(new_index_list); break; } default: diff --git a/ParserAndSemanticAnalyser.h b/ParserAndSemanticAnalyser.h index 95b8b1d..3f186a6 100644 --- a/ParserAndSemanticAnalyser.h +++ b/ParserAndSemanticAnalyser.h @@ -21,13 +21,14 @@ enum DecType { }; //数据类型(int/void) -enum DType { D_VOID, D_INT }; +enum DType { D_VOID, D_INT, D_INT_ARRAY }; struct Var { string name; DType type; int level; + vectorsize; }; struct Func { @@ -75,10 +76,23 @@ class ArrayDeclare :public Symbol { class ArrayDeclareList :public Symbol { public: - int size; + vector size; + int total_size; ArrayDeclareList(const Symbol& sym); }; +class Array :public Symbol { +public: + string name; + Array(const Symbol& sym); +}; + +class IndexList :public Symbol { +public: + vector index; + IndexList(const Symbol& sym); +}; + class SentenceBlock :public Symbol { public: listnextList; diff --git a/main.cpp b/main.cpp index fce159e..476ba81 100644 --- a/main.cpp +++ b/main.cpp @@ -10,26 +10,27 @@ ******************************/ int main() { // test.txt中存放需要解析的代码 - LexicalAnalyser lexicalAnalyser("test.txt"); + LexicalAnalyser lexicalAnalyser("test_with_array.txt"); lexicalAnalyser.analyse(); //productions.txt中存放语法规则 ParserAndSemanticAnalyser parserAndSemanticAnalyser("productions.txt"); parserAndSemanticAnalyser.outputDFA("result/DFA.txt"); + //根据移进规约表分析词法结果并将分析结果输出到SLR1_analyse.txt parserAndSemanticAnalyser.analyse(lexicalAnalyser.getResult(), "result/SLR1_analyse.txt"); parserAndSemanticAnalyser.outputIntermediateCode("result/Intermediate.txt"); - IntermediateCode* code = parserAndSemanticAnalyser.getIntermediateCode(); - code->divideBlocks(parserAndSemanticAnalyser.getFuncEnter()); - code->outputBlocks("result/funBlocks.txt"); + // IntermediateCode* code = parserAndSemanticAnalyser.getIntermediateCode(); + // code->divideBlocks(parserAndSemanticAnalyser.getFuncEnter()); + // code->outputBlocks("result/funBlocks.txt"); - ObjectCodeGenerator objectCodeGenerator; - objectCodeGenerator.analyseBlock(code->getFuncBlock()); - objectCodeGenerator.outputIBlocks(); - objectCodeGenerator.generateCode(); - objectCodeGenerator.outputObjectCode(); - objectCodeGenerator.outputObjectCode("result/program.asm"); + // ObjectCodeGenerator objectCodeGenerator; + // objectCodeGenerator.analyseBlock(code->getFuncBlock()); + // objectCodeGenerator.outputIBlocks(); + // objectCodeGenerator.generateCode(); + // objectCodeGenerator.outputObjectCode(); + // objectCodeGenerator.outputObjectCode("result/program.asm"); return 0; } \ No newline at end of file diff --git a/productions.txt b/productions.txt index 7b25b24..4290269 100644 --- a/productions.txt +++ b/productions.txt @@ -52,9 +52,10 @@ argument_list ::= expression argument_list ::= expression , argument_list declare ::= int ID array_declare_list array_declare_list ::= array_declare array_declare_list -array_declare_list ::= array_declare +array_declare_list ::= array_declare ; array_declare ::= [ NUM ] assign_sentence ::= array = expression ; factor ::= array -array ::= ID [ expression ] -array ::= array [ expression ] \ No newline at end of file +array ::= ID index_list +index_list ::= [ expression ] index_list +index_list ::= [ expression ] \ No newline at end of file diff --git a/productions_with_explanation.txt b/productions_with_explanation.txt index 909abad..d2ac30e 100644 --- a/productions_with_explanation.txt +++ b/productions_with_explanation.txt @@ -93,8 +93,9 @@ factor ::= ID ( argument_list ) factor ::= ID factor ::= array -array ::= ID [ expression ] -array ::= array [ expression ] +array ::= ID index_list +index_list ::= [ expression ] index_list +index_list ::= [ expression ] // 实参 argument_list ::= diff --git a/result/DFA.txt b/result/DFA.txt index e4b6570..90960a1 100644 --- a/result/DFA.txt +++ b/result/DFA.txt @@ -1,18 +1,18 @@ I0= [【P -> . N declare_list 】【N -> . 】] -I1= [【P -> N . declare_list 】【declare_list -> . declare declare_list 】【declare_list -> . declare 】【declare -> . int ID M A function_declare 】【declare -> . int ID var_declare 】【declare -> . void ID M A function_declare 】] +I1= [【P -> N . declare_list 】【declare_list -> . declare declare_list 】【declare_list -> . declare 】【declare -> . int ID M A function_declare 】【declare -> . int ID var_declare 】【declare -> . void ID M A function_declare 】【declare -> . int ID array_declare_list 】] I2= [【P -> N declare_list . 】] -I3= [【declare_list -> . declare declare_list 】【declare_list -> declare . declare_list 】【declare_list -> . declare 】【declare_list -> declare . 】【declare -> . int ID M A function_declare 】【declare -> . int ID var_declare 】【declare -> . void ID M A function_declare 】] +I3= [【declare_list -> . declare declare_list 】【declare_list -> declare . declare_list 】【declare_list -> . declare 】【declare_list -> declare . 】【declare -> . int ID M A function_declare 】【declare -> . int ID var_declare 】【declare -> . void ID M A function_declare 】【declare -> . int ID array_declare_list 】] -I4= [【declare -> int . ID M A function_declare 】【declare -> int . ID var_declare 】] +I4= [【declare -> int . ID M A function_declare 】【declare -> int . ID var_declare 】【declare -> int . ID array_declare_list 】] I5= [【declare -> void . ID M A function_declare 】] I6= [【declare_list -> declare declare_list . 】] -I7= [【declare -> int ID . M A function_declare 】【declare -> int ID . var_declare 】【var_declare -> . ; 】【M -> . 】] +I7= [【declare -> int ID . M A function_declare 】【declare -> int ID . var_declare 】【var_declare -> . ; 】【M -> . 】【declare -> int ID . array_declare_list 】【array_declare_list -> . array_declare array_declare_list 】【array_declare_list -> . array_declare ; 】【array_declare -> . [ NUM ] 】] I8= [【declare -> void ID . M A function_declare 】【M -> . 】] @@ -22,187 +22,221 @@ I10= [【declare -> int ID var_declare . 】] I11= [【var_declare -> ; . 】] -I12= [【declare -> void ID M . A function_declare 】【A -> . 】] +I12= [【declare -> int ID array_declare_list . 】] -I13= [【declare -> int ID M A . function_declare 】【function_declare -> . ( parameter ) sentence_block 】] +I13= [【array_declare_list -> . array_declare array_declare_list 】【array_declare_list -> array_declare . array_declare_list 】【array_declare_list -> . array_declare ; 】【array_declare_list -> array_declare . ; 】【array_declare -> . [ NUM ] 】] -I14= [【declare -> void ID M A . function_declare 】【function_declare -> . ( parameter ) sentence_block 】] +I14= [【array_declare -> [ . NUM ] 】] -I15= [【declare -> int ID M A function_declare . 】] +I15= [【declare -> void ID M . A function_declare 】【A -> . 】] -I16= [【function_declare -> ( . parameter ) sentence_block 】【parameter -> . parameter_list 】【parameter -> . void 】【parameter_list -> . param 】【parameter_list -> . param , parameter_list 】【param -> . int ID 】] +I16= [【declare -> int ID M A . function_declare 】【function_declare -> . ( parameter ) sentence_block 】] -I17= [【declare -> void ID M A function_declare . 】] +I17= [【array_declare_list -> array_declare array_declare_list . 】] -I18= [【function_declare -> ( parameter . ) sentence_block 】] +I18= [【array_declare_list -> array_declare ; . 】] -I19= [【parameter -> parameter_list . 】] +I19= [【array_declare -> [ NUM . ] 】] -I20= [【parameter -> void . 】] +I20= [【declare -> void ID M A . function_declare 】【function_declare -> . ( parameter ) sentence_block 】] -I21= [【parameter_list -> param . 】【parameter_list -> param . , parameter_list 】] +I21= [【declare -> int ID M A function_declare . 】] -I22= [【param -> int . ID 】] +I22= [【function_declare -> ( . parameter ) sentence_block 】【parameter -> . parameter_list 】【parameter -> . void 】【parameter_list -> . param 】【parameter_list -> . param , parameter_list 】【param -> . int ID 】] -I23= [【function_declare -> ( parameter ) . sentence_block 】【sentence_block -> . { inner_declare sentence_list } 】] +I23= [【array_declare -> [ NUM ] . 】] -I24= [【parameter_list -> . param 】【parameter_list -> . param , parameter_list 】【parameter_list -> param , . parameter_list 】【param -> . int ID 】] +I24= [【declare -> void ID M A function_declare . 】] -I25= [【param -> int ID . 】] +I25= [【function_declare -> ( parameter . ) sentence_block 】] -I26= [【function_declare -> ( parameter ) sentence_block . 】] +I26= [【parameter -> parameter_list . 】] -I27= [【sentence_block -> { . inner_declare sentence_list } 】【inner_declare -> . 】【inner_declare -> . inner_var_declare ; inner_declare 】【inner_var_declare -> . int ID 】] +I27= [【parameter -> void . 】] -I28= [【parameter_list -> param , parameter_list . 】] +I28= [【parameter_list -> param . 】【parameter_list -> param . , parameter_list 】] -I29= [【sentence_block -> { inner_declare . sentence_list } 】【sentence_list -> . sentence M sentence_list 】【sentence_list -> . sentence 】【sentence -> . if_sentence 】【sentence -> . while_sentence 】【sentence -> . return_sentence 】【sentence -> . assign_sentence 】【assign_sentence -> . ID = expression ; 】【return_sentence -> . return ; 】【return_sentence -> . return expression ; 】【while_sentence -> . while M ( expression ) A sentence_block 】【if_sentence -> . if ( expression ) A sentence_block 】【if_sentence -> . if ( expression ) A sentence_block N else M A sentence_block 】] +I29= [【param -> int . ID 】] -I30= [【inner_declare -> inner_var_declare . ; inner_declare 】] +I30= [【function_declare -> ( parameter ) . sentence_block 】【sentence_block -> . { inner_declare sentence_list } 】] -I31= [【inner_var_declare -> int . ID 】] +I31= [【parameter_list -> . param 】【parameter_list -> . param , parameter_list 】【parameter_list -> param , . parameter_list 】【param -> . int ID 】] -I32= [【sentence_block -> { inner_declare sentence_list . } 】] +I32= [【param -> int ID . 】] -I33= [【sentence_list -> sentence . M sentence_list 】【sentence_list -> sentence . 】【M -> . 】] +I33= [【function_declare -> ( parameter ) sentence_block . 】] -I34= [【sentence -> if_sentence . 】] +I34= [【sentence_block -> { . inner_declare sentence_list } 】【inner_declare -> . 】【inner_declare -> . inner_var_declare ; inner_declare 】【inner_var_declare -> . int ID 】] -I35= [【sentence -> while_sentence . 】] +I35= [【parameter_list -> param , parameter_list . 】] -I36= [【sentence -> return_sentence . 】] +I36= [【sentence_block -> { inner_declare . sentence_list } 】【sentence_list -> . sentence M sentence_list 】【sentence_list -> . sentence 】【sentence -> . if_sentence 】【sentence -> . while_sentence 】【sentence -> . return_sentence 】【sentence -> . assign_sentence 】【assign_sentence -> . ID = expression ; 】【return_sentence -> . return ; 】【return_sentence -> . return expression ; 】【while_sentence -> . while M ( expression ) A sentence_block 】【if_sentence -> . if ( expression ) A sentence_block 】【if_sentence -> . if ( expression ) A sentence_block N else M A sentence_block 】【assign_sentence -> . array = expression ; 】【array -> . ID index_list 】] -I37= [【sentence -> assign_sentence . 】] +I37= [【inner_declare -> inner_var_declare . ; inner_declare 】] -I38= [【assign_sentence -> ID . = expression ; 】] +I38= [【inner_var_declare -> int . ID 】] -I39= [【return_sentence -> return . ; 】【return_sentence -> return . expression ; 】【expression -> . add_expression 】【expression -> . add_expression > add_expression 】【expression -> . add_expression < add_expression 】【expression -> . add_expression == add_expression 】【expression -> . add_expression >= add_expression 】【expression -> . add_expression <= add_expression 】【expression -> . add_expression != add_expression 】【add_expression -> . item 】【add_expression -> . item + add_expression 】【add_expression -> . item - add_expression 】【item -> . factor 】【item -> . factor * item 】【item -> . factor / item 】【factor -> . NUM 】【factor -> . ( expression ) 】【factor -> . ID ( argument_list ) 】【factor -> . ID 】] +I39= [【sentence_block -> { inner_declare sentence_list . } 】] -I40= [【while_sentence -> while . M ( expression ) A sentence_block 】【M -> . 】] +I40= [【sentence_list -> sentence . M sentence_list 】【sentence_list -> sentence . 】【M -> . 】] -I41= [【if_sentence -> if . ( expression ) A sentence_block 】【if_sentence -> if . ( expression ) A sentence_block N else M A sentence_block 】] +I41= [【sentence -> if_sentence . 】] -I42= [【inner_declare -> . 】【inner_declare -> . inner_var_declare ; inner_declare 】【inner_declare -> inner_var_declare ; . inner_declare 】【inner_var_declare -> . int ID 】] +I42= [【sentence -> while_sentence . 】] -I43= [【inner_var_declare -> int ID . 】] +I43= [【sentence -> return_sentence . 】] -I44= [【sentence_block -> { inner_declare sentence_list } . 】] +I44= [【sentence -> assign_sentence . 】] -I45= [【sentence_list -> . sentence M sentence_list 】【sentence_list -> sentence M . sentence_list 】【sentence_list -> . sentence 】【sentence -> . if_sentence 】【sentence -> . while_sentence 】【sentence -> . return_sentence 】【sentence -> . assign_sentence 】【assign_sentence -> . ID = expression ; 】【return_sentence -> . return ; 】【return_sentence -> . return expression ; 】【while_sentence -> . while M ( expression ) A sentence_block 】【if_sentence -> . if ( expression ) A sentence_block 】【if_sentence -> . if ( expression ) A sentence_block N else M A sentence_block 】] +I45= [【assign_sentence -> ID . = expression ; 】【array -> ID . index_list 】【index_list -> . [ expression ] index_list 】【index_list -> . [ expression ] 】] -I46= [【assign_sentence -> ID = . expression ; 】【expression -> . add_expression 】【expression -> . add_expression > add_expression 】【expression -> . add_expression < add_expression 】【expression -> . add_expression == add_expression 】【expression -> . add_expression >= add_expression 】【expression -> . add_expression <= add_expression 】【expression -> . add_expression != add_expression 】【add_expression -> . item 】【add_expression -> . item + add_expression 】【add_expression -> . item - add_expression 】【item -> . factor 】【item -> . factor * item 】【item -> . factor / item 】【factor -> . NUM 】【factor -> . ( expression ) 】【factor -> . ID ( argument_list ) 】【factor -> . ID 】] +I46= [【return_sentence -> return . ; 】【return_sentence -> return . expression ; 】【expression -> . add_expression 】【expression -> . add_expression > add_expression 】【expression -> . add_expression < add_expression 】【expression -> . add_expression == add_expression 】【expression -> . add_expression >= add_expression 】【expression -> . add_expression <= add_expression 】【expression -> . add_expression != add_expression 】【add_expression -> . item 】【add_expression -> . item + add_expression 】【add_expression -> . item - add_expression 】【item -> . factor 】【item -> . factor * item 】【item -> . factor / item 】【factor -> . NUM 】【factor -> . ( expression ) 】【factor -> . ID ( argument_list ) 】【factor -> . ID 】【factor -> . array 】【array -> . ID index_list 】] -I47= [【return_sentence -> return ; . 】] +I47= [【while_sentence -> while . M ( expression ) A sentence_block 】【M -> . 】] -I48= [【return_sentence -> return expression . ; 】] +I48= [【if_sentence -> if . ( expression ) A sentence_block 】【if_sentence -> if . ( expression ) A sentence_block N else M A sentence_block 】] -I49= [【expression -> add_expression . 】【expression -> add_expression . > add_expression 】【expression -> add_expression . < add_expression 】【expression -> add_expression . == add_expression 】【expression -> add_expression . >= add_expression 】【expression -> add_expression . <= add_expression 】【expression -> add_expression . != add_expression 】] +I49= [【assign_sentence -> array . = expression ; 】] -I50= [【add_expression -> item . 】【add_expression -> item . + add_expression 】【add_expression -> item . - add_expression 】] +I50= [【inner_declare -> . 】【inner_declare -> . inner_var_declare ; inner_declare 】【inner_declare -> inner_var_declare ; . inner_declare 】【inner_var_declare -> . int ID 】] -I51= [【item -> factor . 】【item -> factor . * item 】【item -> factor . / item 】] +I51= [【inner_var_declare -> int ID . 】] -I52= [【factor -> NUM . 】] +I52= [【sentence_block -> { inner_declare sentence_list } . 】] -I53= [【expression -> . add_expression 】【expression -> . add_expression > add_expression 】【expression -> . add_expression < add_expression 】【expression -> . add_expression == add_expression 】【expression -> . add_expression >= add_expression 】【expression -> . add_expression <= add_expression 】【expression -> . add_expression != add_expression 】【add_expression -> . item 】【add_expression -> . item + add_expression 】【add_expression -> . item - add_expression 】【item -> . factor 】【item -> . factor * item 】【item -> . factor / item 】【factor -> . NUM 】【factor -> . ( expression ) 】【factor -> ( . expression ) 】【factor -> . ID ( argument_list ) 】【factor -> . ID 】] +I53= [【sentence_list -> . sentence M sentence_list 】【sentence_list -> sentence M . sentence_list 】【sentence_list -> . sentence 】【sentence -> . if_sentence 】【sentence -> . while_sentence 】【sentence -> . return_sentence 】【sentence -> . assign_sentence 】【assign_sentence -> . ID = expression ; 】【return_sentence -> . return ; 】【return_sentence -> . return expression ; 】【while_sentence -> . while M ( expression ) A sentence_block 】【if_sentence -> . if ( expression ) A sentence_block 】【if_sentence -> . if ( expression ) A sentence_block N else M A sentence_block 】【assign_sentence -> . array = expression ; 】【array -> . ID index_list 】] -I54= [【factor -> ID . ( argument_list ) 】【factor -> ID . 】] +I54= [【assign_sentence -> ID = . expression ; 】【expression -> . add_expression 】【expression -> . add_expression > add_expression 】【expression -> . add_expression < add_expression 】【expression -> . add_expression == add_expression 】【expression -> . add_expression >= add_expression 】【expression -> . add_expression <= add_expression 】【expression -> . add_expression != add_expression 】【add_expression -> . item 】【add_expression -> . item + add_expression 】【add_expression -> . item - add_expression 】【item -> . factor 】【item -> . factor * item 】【item -> . factor / item 】【factor -> . NUM 】【factor -> . ( expression ) 】【factor -> . ID ( argument_list ) 】【factor -> . ID 】【factor -> . array 】【array -> . ID index_list 】] -I55= [【while_sentence -> while M . ( expression ) A sentence_block 】] +I55= [【array -> ID index_list . 】] -I56= [【if_sentence -> if ( . expression ) A sentence_block 】【if_sentence -> if ( . expression ) A sentence_block N else M A sentence_block 】【expression -> . add_expression 】【expression -> . add_expression > add_expression 】【expression -> . add_expression < add_expression 】【expression -> . add_expression == add_expression 】【expression -> . add_expression >= add_expression 】【expression -> . add_expression <= add_expression 】【expression -> . add_expression != add_expression 】【add_expression -> . item 】【add_expression -> . item + add_expression 】【add_expression -> . item - add_expression 】【item -> . factor 】【item -> . factor * item 】【item -> . factor / item 】【factor -> . NUM 】【factor -> . ( expression ) 】【factor -> . ID ( argument_list ) 】【factor -> . ID 】] +I56= [【expression -> . add_expression 】【expression -> . add_expression > add_expression 】【expression -> . add_expression < add_expression 】【expression -> . add_expression == add_expression 】【expression -> . add_expression >= add_expression 】【expression -> . add_expression <= add_expression 】【expression -> . add_expression != add_expression 】【add_expression -> . item 】【add_expression -> . item + add_expression 】【add_expression -> . item - add_expression 】【item -> . factor 】【item -> . factor * item 】【item -> . factor / item 】【factor -> . NUM 】【factor -> . ( expression ) 】【factor -> . ID ( argument_list ) 】【factor -> . ID 】【factor -> . array 】【array -> . ID index_list 】【index_list -> [ . expression ] index_list 】【index_list -> [ . expression ] 】] -I57= [【inner_declare -> inner_var_declare ; inner_declare . 】] +I57= [【return_sentence -> return ; . 】] -I58= [【sentence_list -> sentence M sentence_list . 】] +I58= [【return_sentence -> return expression . ; 】] -I59= [【assign_sentence -> ID = expression . ; 】] +I59= [【expression -> add_expression . 】【expression -> add_expression . > add_expression 】【expression -> add_expression . < add_expression 】【expression -> add_expression . == add_expression 】【expression -> add_expression . >= add_expression 】【expression -> add_expression . <= add_expression 】【expression -> add_expression . != add_expression 】] -I60= [【return_sentence -> return expression ; . 】] +I60= [【add_expression -> item . 】【add_expression -> item . + add_expression 】【add_expression -> item . - add_expression 】] -I61= [【expression -> add_expression > . add_expression 】【add_expression -> . item 】【add_expression -> . item + add_expression 】【add_expression -> . item - add_expression 】【item -> . factor 】【item -> . factor * item 】【item -> . factor / item 】【factor -> . NUM 】【factor -> . ( expression ) 】【factor -> . ID ( argument_list ) 】【factor -> . ID 】] +I61= [【item -> factor . 】【item -> factor . * item 】【item -> factor . / item 】] -I62= [【expression -> add_expression < . add_expression 】【add_expression -> . item 】【add_expression -> . item + add_expression 】【add_expression -> . item - add_expression 】【item -> . factor 】【item -> . factor * item 】【item -> . factor / item 】【factor -> . NUM 】【factor -> . ( expression ) 】【factor -> . ID ( argument_list ) 】【factor -> . ID 】] +I62= [【factor -> NUM . 】] -I63= [【expression -> add_expression == . add_expression 】【add_expression -> . item 】【add_expression -> . item + add_expression 】【add_expression -> . item - add_expression 】【item -> . factor 】【item -> . factor * item 】【item -> . factor / item 】【factor -> . NUM 】【factor -> . ( expression ) 】【factor -> . ID ( argument_list ) 】【factor -> . ID 】] +I63= [【expression -> . add_expression 】【expression -> . add_expression > add_expression 】【expression -> . add_expression < add_expression 】【expression -> . add_expression == add_expression 】【expression -> . add_expression >= add_expression 】【expression -> . add_expression <= add_expression 】【expression -> . add_expression != add_expression 】【add_expression -> . item 】【add_expression -> . item + add_expression 】【add_expression -> . item - add_expression 】【item -> . factor 】【item -> . factor * item 】【item -> . factor / item 】【factor -> . NUM 】【factor -> . ( expression ) 】【factor -> ( . expression ) 】【factor -> . ID ( argument_list ) 】【factor -> . ID 】【factor -> . array 】【array -> . ID index_list 】] -I64= [【expression -> add_expression >= . add_expression 】【add_expression -> . item 】【add_expression -> . item + add_expression 】【add_expression -> . item - add_expression 】【item -> . factor 】【item -> . factor * item 】【item -> . factor / item 】【factor -> . NUM 】【factor -> . ( expression ) 】【factor -> . ID ( argument_list ) 】【factor -> . ID 】] +I64= [【factor -> ID . ( argument_list ) 】【factor -> ID . 】【array -> ID . index_list 】【index_list -> . [ expression ] index_list 】【index_list -> . [ expression ] 】] -I65= [【expression -> add_expression <= . add_expression 】【add_expression -> . item 】【add_expression -> . item + add_expression 】【add_expression -> . item - add_expression 】【item -> . factor 】【item -> . factor * item 】【item -> . factor / item 】【factor -> . NUM 】【factor -> . ( expression ) 】【factor -> . ID ( argument_list ) 】【factor -> . ID 】] +I65= [【factor -> array . 】] -I66= [【expression -> add_expression != . add_expression 】【add_expression -> . item 】【add_expression -> . item + add_expression 】【add_expression -> . item - add_expression 】【item -> . factor 】【item -> . factor * item 】【item -> . factor / item 】【factor -> . NUM 】【factor -> . ( expression ) 】【factor -> . ID ( argument_list ) 】【factor -> . ID 】] +I66= [【while_sentence -> while M . ( expression ) A sentence_block 】] -I67= [【add_expression -> . item 】【add_expression -> . item + add_expression 】【add_expression -> item + . add_expression 】【add_expression -> . item - add_expression 】【item -> . factor 】【item -> . factor * item 】【item -> . factor / item 】【factor -> . NUM 】【factor -> . ( expression ) 】【factor -> . ID ( argument_list ) 】【factor -> . ID 】] +I67= [【if_sentence -> if ( . expression ) A sentence_block 】【if_sentence -> if ( . expression ) A sentence_block N else M A sentence_block 】【expression -> . add_expression 】【expression -> . add_expression > add_expression 】【expression -> . add_expression < add_expression 】【expression -> . add_expression == add_expression 】【expression -> . add_expression >= add_expression 】【expression -> . add_expression <= add_expression 】【expression -> . add_expression != add_expression 】【add_expression -> . item 】【add_expression -> . item + add_expression 】【add_expression -> . item - add_expression 】【item -> . factor 】【item -> . factor * item 】【item -> . factor / item 】【factor -> . NUM 】【factor -> . ( expression ) 】【factor -> . ID ( argument_list ) 】【factor -> . ID 】【factor -> . array 】【array -> . ID index_list 】] -I68= [【add_expression -> . item 】【add_expression -> . item + add_expression 】【add_expression -> . item - add_expression 】【add_expression -> item - . add_expression 】【item -> . factor 】【item -> . factor * item 】【item -> . factor / item 】【factor -> . NUM 】【factor -> . ( expression ) 】【factor -> . ID ( argument_list ) 】【factor -> . ID 】] +I68= [【expression -> . add_expression 】【expression -> . add_expression > add_expression 】【expression -> . add_expression < add_expression 】【expression -> . add_expression == add_expression 】【expression -> . add_expression >= add_expression 】【expression -> . add_expression <= add_expression 】【expression -> . add_expression != add_expression 】【add_expression -> . item 】【add_expression -> . item + add_expression 】【add_expression -> . item - add_expression 】【item -> . factor 】【item -> . factor * item 】【item -> . factor / item 】【factor -> . NUM 】【factor -> . ( expression ) 】【factor -> . ID ( argument_list ) 】【factor -> . ID 】【assign_sentence -> array = . expression ; 】【factor -> . array 】【array -> . ID index_list 】] -I69= [【item -> . factor 】【item -> . factor * item 】【item -> factor * . item 】【item -> . factor / item 】【factor -> . NUM 】【factor -> . ( expression ) 】【factor -> . ID ( argument_list ) 】【factor -> . ID 】] +I69= [【inner_declare -> inner_var_declare ; inner_declare . 】] -I70= [【item -> . factor 】【item -> . factor * item 】【item -> . factor / item 】【item -> factor / . item 】【factor -> . NUM 】【factor -> . ( expression ) 】【factor -> . ID ( argument_list ) 】【factor -> . ID 】] +I70= [【sentence_list -> sentence M sentence_list . 】] -I71= [【factor -> ( expression . ) 】] +I71= [【assign_sentence -> ID = expression . ; 】] -I72= [【expression -> . add_expression 】【expression -> . add_expression > add_expression 】【expression -> . add_expression < add_expression 】【expression -> . add_expression == add_expression 】【expression -> . add_expression >= add_expression 】【expression -> . add_expression <= add_expression 】【expression -> . add_expression != add_expression 】【add_expression -> . item 】【add_expression -> . item + add_expression 】【add_expression -> . item - add_expression 】【item -> . factor 】【item -> . factor * item 】【item -> . factor / item 】【factor -> . NUM 】【factor -> . ( expression ) 】【factor -> . ID ( argument_list ) 】【factor -> ID ( . argument_list ) 】【factor -> . ID 】【argument_list -> . 】【argument_list -> . expression 】【argument_list -> . expression , argument_list 】] +I72= [【index_list -> [ expression . ] index_list 】【index_list -> [ expression . ] 】] -I73= [【while_sentence -> while M ( . expression ) A sentence_block 】【expression -> . add_expression 】【expression -> . add_expression > add_expression 】【expression -> . add_expression < add_expression 】【expression -> . add_expression == add_expression 】【expression -> . add_expression >= add_expression 】【expression -> . add_expression <= add_expression 】【expression -> . add_expression != add_expression 】【add_expression -> . item 】【add_expression -> . item + add_expression 】【add_expression -> . item - add_expression 】【item -> . factor 】【item -> . factor * item 】【item -> . factor / item 】【factor -> . NUM 】【factor -> . ( expression ) 】【factor -> . ID ( argument_list ) 】【factor -> . ID 】] +I73= [【return_sentence -> return expression ; . 】] -I74= [【if_sentence -> if ( expression . ) A sentence_block 】【if_sentence -> if ( expression . ) A sentence_block N else M A sentence_block 】] +I74= [【expression -> add_expression > . add_expression 】【add_expression -> . item 】【add_expression -> . item + add_expression 】【add_expression -> . item - add_expression 】【item -> . factor 】【item -> . factor * item 】【item -> . factor / item 】【factor -> . NUM 】【factor -> . ( expression ) 】【factor -> . ID ( argument_list ) 】【factor -> . ID 】【factor -> . array 】【array -> . ID index_list 】] -I75= [【assign_sentence -> ID = expression ; . 】] +I75= [【expression -> add_expression < . add_expression 】【add_expression -> . item 】【add_expression -> . item + add_expression 】【add_expression -> . item - add_expression 】【item -> . factor 】【item -> . factor * item 】【item -> . factor / item 】【factor -> . NUM 】【factor -> . ( expression ) 】【factor -> . ID ( argument_list ) 】【factor -> . ID 】【factor -> . array 】【array -> . ID index_list 】] -I76= [【expression -> add_expression > add_expression . 】] +I76= [【expression -> add_expression == . add_expression 】【add_expression -> . item 】【add_expression -> . item + add_expression 】【add_expression -> . item - add_expression 】【item -> . factor 】【item -> . factor * item 】【item -> . factor / item 】【factor -> . NUM 】【factor -> . ( expression ) 】【factor -> . ID ( argument_list ) 】【factor -> . ID 】【factor -> . array 】【array -> . ID index_list 】] -I77= [【expression -> add_expression < add_expression . 】] +I77= [【expression -> add_expression >= . add_expression 】【add_expression -> . item 】【add_expression -> . item + add_expression 】【add_expression -> . item - add_expression 】【item -> . factor 】【item -> . factor * item 】【item -> . factor / item 】【factor -> . NUM 】【factor -> . ( expression ) 】【factor -> . ID ( argument_list ) 】【factor -> . ID 】【factor -> . array 】【array -> . ID index_list 】] -I78= [【expression -> add_expression == add_expression . 】] +I78= [【expression -> add_expression <= . add_expression 】【add_expression -> . item 】【add_expression -> . item + add_expression 】【add_expression -> . item - add_expression 】【item -> . factor 】【item -> . factor * item 】【item -> . factor / item 】【factor -> . NUM 】【factor -> . ( expression ) 】【factor -> . ID ( argument_list ) 】【factor -> . ID 】【factor -> . array 】【array -> . ID index_list 】] -I79= [【expression -> add_expression >= add_expression . 】] +I79= [【expression -> add_expression != . add_expression 】【add_expression -> . item 】【add_expression -> . item + add_expression 】【add_expression -> . item - add_expression 】【item -> . factor 】【item -> . factor * item 】【item -> . factor / item 】【factor -> . NUM 】【factor -> . ( expression ) 】【factor -> . ID ( argument_list ) 】【factor -> . ID 】【factor -> . array 】【array -> . ID index_list 】] -I80= [【expression -> add_expression <= add_expression . 】] +I80= [【add_expression -> . item 】【add_expression -> . item + add_expression 】【add_expression -> item + . add_expression 】【add_expression -> . item - add_expression 】【item -> . factor 】【item -> . factor * item 】【item -> . factor / item 】【factor -> . NUM 】【factor -> . ( expression ) 】【factor -> . ID ( argument_list ) 】【factor -> . ID 】【factor -> . array 】【array -> . ID index_list 】] -I81= [【expression -> add_expression != add_expression . 】] +I81= [【add_expression -> . item 】【add_expression -> . item + add_expression 】【add_expression -> . item - add_expression 】【add_expression -> item - . add_expression 】【item -> . factor 】【item -> . factor * item 】【item -> . factor / item 】【factor -> . NUM 】【factor -> . ( expression ) 】【factor -> . ID ( argument_list ) 】【factor -> . ID 】【factor -> . array 】【array -> . ID index_list 】] -I82= [【add_expression -> item + add_expression . 】] +I82= [【item -> . factor 】【item -> . factor * item 】【item -> factor * . item 】【item -> . factor / item 】【factor -> . NUM 】【factor -> . ( expression ) 】【factor -> . ID ( argument_list ) 】【factor -> . ID 】【factor -> . array 】【array -> . ID index_list 】] -I83= [【add_expression -> item - add_expression . 】] +I83= [【item -> . factor 】【item -> . factor * item 】【item -> . factor / item 】【item -> factor / . item 】【factor -> . NUM 】【factor -> . ( expression ) 】【factor -> . ID ( argument_list ) 】【factor -> . ID 】【factor -> . array 】【array -> . ID index_list 】] -I84= [【item -> factor * item . 】] +I84= [【factor -> ( expression . ) 】] -I85= [【item -> factor / item . 】] +I85= [【expression -> . add_expression 】【expression -> . add_expression > add_expression 】【expression -> . add_expression < add_expression 】【expression -> . add_expression == add_expression 】【expression -> . add_expression >= add_expression 】【expression -> . add_expression <= add_expression 】【expression -> . add_expression != add_expression 】【add_expression -> . item 】【add_expression -> . item + add_expression 】【add_expression -> . item - add_expression 】【item -> . factor 】【item -> . factor * item 】【item -> . factor / item 】【factor -> . NUM 】【factor -> . ( expression ) 】【factor -> . ID ( argument_list ) 】【factor -> ID ( . argument_list ) 】【factor -> . ID 】【argument_list -> . 】【argument_list -> . expression 】【argument_list -> . expression , argument_list 】【factor -> . array 】【array -> . ID index_list 】] -I86= [【factor -> ( expression ) . 】] +I86= [【while_sentence -> while M ( . expression ) A sentence_block 】【expression -> . add_expression 】【expression -> . add_expression > add_expression 】【expression -> . add_expression < add_expression 】【expression -> . add_expression == add_expression 】【expression -> . add_expression >= add_expression 】【expression -> . add_expression <= add_expression 】【expression -> . add_expression != add_expression 】【add_expression -> . item 】【add_expression -> . item + add_expression 】【add_expression -> . item - add_expression 】【item -> . factor 】【item -> . factor * item 】【item -> . factor / item 】【factor -> . NUM 】【factor -> . ( expression ) 】【factor -> . ID ( argument_list ) 】【factor -> . ID 】【factor -> . array 】【array -> . ID index_list 】] -I87= [【factor -> ID ( argument_list . ) 】] +I87= [【if_sentence -> if ( expression . ) A sentence_block 】【if_sentence -> if ( expression . ) A sentence_block N else M A sentence_block 】] -I88= [【argument_list -> expression . 】【argument_list -> expression . , argument_list 】] +I88= [【assign_sentence -> array = expression . ; 】] -I89= [【while_sentence -> while M ( expression . ) A sentence_block 】] +I89= [【assign_sentence -> ID = expression ; . 】] -I90= [【A -> . 】【if_sentence -> if ( expression ) . A sentence_block 】【if_sentence -> if ( expression ) . A sentence_block N else M A sentence_block 】] +I90= [【index_list -> . [ expression ] index_list 】【index_list -> [ expression ] . index_list 】【index_list -> . [ expression ] 】【index_list -> [ expression ] . 】] -I91= [【factor -> ID ( argument_list ) . 】] +I91= [【expression -> add_expression > add_expression . 】] -I92= [【expression -> . add_expression 】【expression -> . add_expression > add_expression 】【expression -> . add_expression < add_expression 】【expression -> . add_expression == add_expression 】【expression -> . add_expression >= add_expression 】【expression -> . add_expression <= add_expression 】【expression -> . add_expression != add_expression 】【add_expression -> . item 】【add_expression -> . item + add_expression 】【add_expression -> . item - add_expression 】【item -> . factor 】【item -> . factor * item 】【item -> . factor / item 】【factor -> . NUM 】【factor -> . ( expression ) 】【factor -> . ID ( argument_list ) 】【factor -> . ID 】【argument_list -> . 】【argument_list -> . expression 】【argument_list -> . expression , argument_list 】【argument_list -> expression , . argument_list 】] +I92= [【expression -> add_expression < add_expression . 】] -I93= [【A -> . 】【while_sentence -> while M ( expression ) . A sentence_block 】] +I93= [【expression -> add_expression == add_expression . 】] -I94= [【sentence_block -> . { inner_declare sentence_list } 】【if_sentence -> if ( expression ) A . sentence_block 】【if_sentence -> if ( expression ) A . sentence_block N else M A sentence_block 】] +I94= [【expression -> add_expression >= add_expression . 】] -I95= [【argument_list -> expression , argument_list . 】] +I95= [【expression -> add_expression <= add_expression . 】] -I96= [【sentence_block -> . { inner_declare sentence_list } 】【while_sentence -> while M ( expression ) A . sentence_block 】] +I96= [【expression -> add_expression != add_expression . 】] -I97= [【if_sentence -> if ( expression ) A sentence_block . 】【if_sentence -> if ( expression ) A sentence_block . N else M A sentence_block 】【N -> . 】] +I97= [【add_expression -> item + add_expression . 】] -I98= [【while_sentence -> while M ( expression ) A sentence_block . 】] +I98= [【add_expression -> item - add_expression . 】] -I99= [【if_sentence -> if ( expression ) A sentence_block N . else M A sentence_block 】] +I99= [【item -> factor * item . 】] -I100= [【if_sentence -> if ( expression ) A sentence_block N else . M A sentence_block 】【M -> . 】] +I100= [【item -> factor / item . 】] -I101= [【A -> . 】【if_sentence -> if ( expression ) A sentence_block N else M . A sentence_block 】] +I101= [【factor -> ( expression ) . 】] -I102= [【sentence_block -> . { inner_declare sentence_list } 】【if_sentence -> if ( expression ) A sentence_block N else M A . sentence_block 】] +I102= [【factor -> ID ( argument_list . ) 】] -I103= [【if_sentence -> if ( expression ) A sentence_block N else M A sentence_block . 】] +I103= [【argument_list -> expression . 】【argument_list -> expression . , argument_list 】] + +I104= [【while_sentence -> while M ( expression . ) A sentence_block 】] + +I105= [【A -> . 】【if_sentence -> if ( expression ) . A sentence_block 】【if_sentence -> if ( expression ) . A sentence_block N else M A sentence_block 】] + +I106= [【assign_sentence -> array = expression ; . 】] + +I107= [【index_list -> [ expression ] index_list . 】] + +I108= [【factor -> ID ( argument_list ) . 】] + +I109= [【expression -> . add_expression 】【expression -> . add_expression > add_expression 】【expression -> . add_expression < add_expression 】【expression -> . add_expression == add_expression 】【expression -> . add_expression >= add_expression 】【expression -> . add_expression <= add_expression 】【expression -> . add_expression != add_expression 】【add_expression -> . item 】【add_expression -> . item + add_expression 】【add_expression -> . item - add_expression 】【item -> . factor 】【item -> . factor * item 】【item -> . factor / item 】【factor -> . NUM 】【factor -> . ( expression ) 】【factor -> . ID ( argument_list ) 】【factor -> . ID 】【argument_list -> . 】【argument_list -> . expression 】【argument_list -> . expression , argument_list 】【argument_list -> expression , . argument_list 】【factor -> . array 】【array -> . ID index_list 】] + +I110= [【A -> . 】【while_sentence -> while M ( expression ) . A sentence_block 】] + +I111= [【sentence_block -> . { inner_declare sentence_list } 】【if_sentence -> if ( expression ) A . sentence_block 】【if_sentence -> if ( expression ) A . sentence_block N else M A sentence_block 】] + +I112= [【argument_list -> expression , argument_list . 】] + +I113= [【sentence_block -> . { inner_declare sentence_list } 】【while_sentence -> while M ( expression ) A . sentence_block 】] + +I114= [【if_sentence -> if ( expression ) A sentence_block . 】【if_sentence -> if ( expression ) A sentence_block . N else M A sentence_block 】【N -> . 】] + +I115= [【while_sentence -> while M ( expression ) A sentence_block . 】] + +I116= [【if_sentence -> if ( expression ) A sentence_block N . else M A sentence_block 】] + +I117= [【if_sentence -> if ( expression ) A sentence_block N else . M A sentence_block 】【M -> . 】] + +I118= [【A -> . 】【if_sentence -> if ( expression ) A sentence_block N else M . A sentence_block 】] + +I119= [【sentence_block -> . { inner_declare sentence_list } 】【if_sentence -> if ( expression ) A sentence_block N else M A . sentence_block 】] + +I120= [【if_sentence -> if ( expression ) A sentence_block N else M A sentence_block . 】] diff --git a/result/Intermediate.txt b/result/Intermediate.txt index 9e6d247..ee6b739 100644 --- a/result/Intermediate.txt +++ b/result/Intermediate.txt @@ -22,16 +22,26 @@ 21( = , T5 , _ , a ) 22( * , a , 2 , T6 ) 23( return , T6 , _ , _ ) - 24( = , 3 , _ , a ) - 25( = , 4 , _ , b ) - 26( = , 2 , _ , c ) - 27( par , c , _ , _ ) - 28( call , demo , _ , _ ) - 29( = , @RETURN_PLACE , _ , T7 ) - 30( par , a , _ , _ ) - 31( par , b , _ , _ ) - 32( par , T7 , _ , _ ) - 33( call , program , _ , _ ) - 34( = , @RETURN_PLACE , _ , T8 ) - 35( = , T8 , _ , a ) - 36( return , _ , _ , _ ) + 24( []= , 3 , _ , a[0] ) + 25( * , 1 , 1 , T7 ) + 26( + , a[0] , 1 , T8 ) + 27( []= , T8 , _ , a[T7] ) + 28( * , 1 , 2 , T9 ) + 29( * , 1 , 2 , T10 ) + 30( + , a[0] , a[T10] , T11 ) + 31( []= , T11 , _ , a[T9] ) + 32( * , 1 , 1 , T12 ) + 33( * , 1 , 2 , T13 ) + 34( + , T12 , T13 , T12 ) + 35( * , 1 , 1 , T14 ) + 36( * , 1 , 2 , T15 ) + 37( par , a[T15] , _ , _ ) + 38( call , demo , _ , _ ) + 39( = , @RETURN_PLACE , _ , T16 ) + 40( par , a[0] , _ , _ ) + 41( par , a[T14] , _ , _ ) + 42( par , T16 , _ , _ ) + 43( call , program , _ , _ ) + 44( = , @RETURN_PLACE , _ , T17 ) + 45( []= , T17 , _ , a[T12] ) + 46( return , _ , _ , _ ) diff --git a/result/SLR1_analyse.txt b/result/SLR1_analyse.txt index cc0968a..07e2cb9 100644 --- a/result/SLR1_analyse.txt +++ b/result/SLR1_analyse.txt @@ -16,10 +16,28 @@ 0 1 3 4 # N declare int ID 0 1 3 4 7 -# N declare int ID ; -0 1 3 4 7 11 -# N declare int ID var_declare -0 1 3 4 7 10 +# N declare int ID [ +0 1 3 4 7 14 +# N declare int ID [ NUM +0 1 3 4 7 14 19 +# N declare int ID [ NUM ] +0 1 3 4 7 14 19 23 +# N declare int ID array_declare +0 1 3 4 7 13 +# N declare int ID array_declare [ +0 1 3 4 7 13 14 +# N declare int ID array_declare [ NUM +0 1 3 4 7 13 14 19 +# N declare int ID array_declare [ NUM ] +0 1 3 4 7 13 14 19 23 +# N declare int ID array_declare array_declare +0 1 3 4 7 13 13 +# N declare int ID array_declare array_declare ; +0 1 3 4 7 13 13 18 +# N declare int ID array_declare array_declare_list +0 1 3 4 7 13 17 +# N declare int ID array_declare_list +0 1 3 4 7 12 # N declare declare 0 1 3 3 # N declare declare int @@ -29,381 +47,381 @@ # N declare declare int ID M 0 1 3 3 4 7 9 # N declare declare int ID M A -0 1 3 3 4 7 9 13 +0 1 3 3 4 7 9 16 # N declare declare int ID M A ( -0 1 3 3 4 7 9 13 16 +0 1 3 3 4 7 9 16 22 # N declare declare int ID M A ( int -0 1 3 3 4 7 9 13 16 22 +0 1 3 3 4 7 9 16 22 29 # N declare declare int ID M A ( int ID -0 1 3 3 4 7 9 13 16 22 25 +0 1 3 3 4 7 9 16 22 29 32 # N declare declare int ID M A ( param -0 1 3 3 4 7 9 13 16 21 +0 1 3 3 4 7 9 16 22 28 # N declare declare int ID M A ( param , -0 1 3 3 4 7 9 13 16 21 24 +0 1 3 3 4 7 9 16 22 28 31 # N declare declare int ID M A ( param , int -0 1 3 3 4 7 9 13 16 21 24 22 +0 1 3 3 4 7 9 16 22 28 31 29 # N declare declare int ID M A ( param , int ID -0 1 3 3 4 7 9 13 16 21 24 22 25 +0 1 3 3 4 7 9 16 22 28 31 29 32 # N declare declare int ID M A ( param , param -0 1 3 3 4 7 9 13 16 21 24 21 +0 1 3 3 4 7 9 16 22 28 31 28 # N declare declare int ID M A ( param , param , -0 1 3 3 4 7 9 13 16 21 24 21 24 +0 1 3 3 4 7 9 16 22 28 31 28 31 # N declare declare int ID M A ( param , param , int -0 1 3 3 4 7 9 13 16 21 24 21 24 22 +0 1 3 3 4 7 9 16 22 28 31 28 31 29 # N declare declare int ID M A ( param , param , int ID -0 1 3 3 4 7 9 13 16 21 24 21 24 22 25 +0 1 3 3 4 7 9 16 22 28 31 28 31 29 32 # N declare declare int ID M A ( param , param , param -0 1 3 3 4 7 9 13 16 21 24 21 24 21 +0 1 3 3 4 7 9 16 22 28 31 28 31 28 # N declare declare int ID M A ( param , param , parameter_list -0 1 3 3 4 7 9 13 16 21 24 21 24 28 +0 1 3 3 4 7 9 16 22 28 31 28 31 35 # N declare declare int ID M A ( param , parameter_list -0 1 3 3 4 7 9 13 16 21 24 28 +0 1 3 3 4 7 9 16 22 28 31 35 # N declare declare int ID M A ( parameter_list -0 1 3 3 4 7 9 13 16 19 +0 1 3 3 4 7 9 16 22 26 # N declare declare int ID M A ( parameter -0 1 3 3 4 7 9 13 16 18 +0 1 3 3 4 7 9 16 22 25 # N declare declare int ID M A ( parameter ) -0 1 3 3 4 7 9 13 16 18 23 +0 1 3 3 4 7 9 16 22 25 30 # N declare declare int ID M A ( parameter ) { -0 1 3 3 4 7 9 13 16 18 23 27 +0 1 3 3 4 7 9 16 22 25 30 34 # N declare declare int ID M A ( parameter ) { int -0 1 3 3 4 7 9 13 16 18 23 27 31 +0 1 3 3 4 7 9 16 22 25 30 34 38 # N declare declare int ID M A ( parameter ) { int ID -0 1 3 3 4 7 9 13 16 18 23 27 31 43 +0 1 3 3 4 7 9 16 22 25 30 34 38 51 # N declare declare int ID M A ( parameter ) { inner_var_declare -0 1 3 3 4 7 9 13 16 18 23 27 30 +0 1 3 3 4 7 9 16 22 25 30 34 37 # N declare declare int ID M A ( parameter ) { inner_var_declare ; -0 1 3 3 4 7 9 13 16 18 23 27 30 42 +0 1 3 3 4 7 9 16 22 25 30 34 37 50 # N declare declare int ID M A ( parameter ) { inner_var_declare ; int -0 1 3 3 4 7 9 13 16 18 23 27 30 42 31 +0 1 3 3 4 7 9 16 22 25 30 34 37 50 38 # N declare declare int ID M A ( parameter ) { inner_var_declare ; int ID -0 1 3 3 4 7 9 13 16 18 23 27 30 42 31 43 +0 1 3 3 4 7 9 16 22 25 30 34 37 50 38 51 # N declare declare int ID M A ( parameter ) { inner_var_declare ; inner_var_declare -0 1 3 3 4 7 9 13 16 18 23 27 30 42 30 +0 1 3 3 4 7 9 16 22 25 30 34 37 50 37 # N declare declare int ID M A ( parameter ) { inner_var_declare ; inner_var_declare ; -0 1 3 3 4 7 9 13 16 18 23 27 30 42 30 42 +0 1 3 3 4 7 9 16 22 25 30 34 37 50 37 50 # N declare declare int ID M A ( parameter ) { inner_var_declare ; inner_var_declare ; inner_declare -0 1 3 3 4 7 9 13 16 18 23 27 30 42 30 42 57 +0 1 3 3 4 7 9 16 22 25 30 34 37 50 37 50 69 # N declare declare int ID M A ( parameter ) { inner_var_declare ; inner_declare -0 1 3 3 4 7 9 13 16 18 23 27 30 42 57 +0 1 3 3 4 7 9 16 22 25 30 34 37 50 69 # N declare declare int ID M A ( parameter ) { inner_declare -0 1 3 3 4 7 9 13 16 18 23 27 29 +0 1 3 3 4 7 9 16 22 25 30 34 36 # N declare declare int ID M A ( parameter ) { inner_declare ID -0 1 3 3 4 7 9 13 16 18 23 27 29 38 +0 1 3 3 4 7 9 16 22 25 30 34 36 45 # N declare declare int ID M A ( parameter ) { inner_declare ID = -0 1 3 3 4 7 9 13 16 18 23 27 29 38 46 +0 1 3 3 4 7 9 16 22 25 30 34 36 45 54 # N declare declare int ID M A ( parameter ) { inner_declare ID = NUM -0 1 3 3 4 7 9 13 16 18 23 27 29 38 46 52 +0 1 3 3 4 7 9 16 22 25 30 34 36 45 54 62 # N declare declare int ID M A ( parameter ) { inner_declare ID = factor -0 1 3 3 4 7 9 13 16 18 23 27 29 38 46 51 +0 1 3 3 4 7 9 16 22 25 30 34 36 45 54 61 # N declare declare int ID M A ( parameter ) { inner_declare ID = item -0 1 3 3 4 7 9 13 16 18 23 27 29 38 46 50 +0 1 3 3 4 7 9 16 22 25 30 34 36 45 54 60 # N declare declare int ID M A ( parameter ) { inner_declare ID = add_expression -0 1 3 3 4 7 9 13 16 18 23 27 29 38 46 49 +0 1 3 3 4 7 9 16 22 25 30 34 36 45 54 59 # N declare declare int ID M A ( parameter ) { inner_declare ID = expression -0 1 3 3 4 7 9 13 16 18 23 27 29 38 46 59 +0 1 3 3 4 7 9 16 22 25 30 34 36 45 54 71 # N declare declare int ID M A ( parameter ) { inner_declare ID = expression ; -0 1 3 3 4 7 9 13 16 18 23 27 29 38 46 59 75 +0 1 3 3 4 7 9 16 22 25 30 34 36 45 54 71 89 # N declare declare int ID M A ( parameter ) { inner_declare assign_sentence -0 1 3 3 4 7 9 13 16 18 23 27 29 37 +0 1 3 3 4 7 9 16 22 25 30 34 36 44 # N declare declare int ID M A ( parameter ) { inner_declare sentence -0 1 3 3 4 7 9 13 16 18 23 27 29 33 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 # N declare declare int ID M A ( parameter ) { inner_declare sentence M -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( ID -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 54 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 64 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( factor -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 51 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 61 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( item -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 50 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 60 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( add_expression -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 49 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 59 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( add_expression > -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 49 61 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 59 74 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( add_expression > ( -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 49 61 53 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 59 74 63 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( add_expression > ( ID -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 49 61 53 54 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 59 74 63 64 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( add_expression > ( factor -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 49 61 53 51 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 59 74 63 61 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( add_expression > ( item -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 49 61 53 50 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 59 74 63 60 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( add_expression > ( item + -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 49 61 53 50 67 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 59 74 63 60 80 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( add_expression > ( item + ID -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 49 61 53 50 67 54 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 59 74 63 60 80 64 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( add_expression > ( item + factor -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 49 61 53 50 67 51 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 59 74 63 60 80 61 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( add_expression > ( item + item -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 49 61 53 50 67 50 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 59 74 63 60 80 60 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( add_expression > ( item + add_expression -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 49 61 53 50 67 82 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 59 74 63 60 80 97 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( add_expression > ( add_expression -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 49 61 53 49 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 59 74 63 59 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( add_expression > ( expression -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 49 61 53 71 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 59 74 63 84 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( add_expression > ( expression ) -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 49 61 53 71 86 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 59 74 63 84 101 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( add_expression > factor -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 49 61 51 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 59 74 61 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( add_expression > item -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 49 61 50 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 59 74 60 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( add_expression > add_expression -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 49 61 76 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 59 74 91 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A { -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 27 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 34 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A { inner_declare -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 27 29 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 34 36 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A { inner_declare ID -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 27 29 38 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 34 36 45 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A { inner_declare ID = -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 27 29 38 46 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 34 36 45 54 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A { inner_declare ID = ID -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 27 29 38 46 54 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 34 36 45 54 64 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A { inner_declare ID = factor -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 27 29 38 46 51 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 34 36 45 54 61 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A { inner_declare ID = item -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 27 29 38 46 50 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 34 36 45 54 60 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A { inner_declare ID = item + -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 27 29 38 46 50 67 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 34 36 45 54 60 80 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A { inner_declare ID = item + ( -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 27 29 38 46 50 67 53 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 34 36 45 54 60 80 63 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A { inner_declare ID = item + ( ID -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 27 29 38 46 50 67 53 54 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 34 36 45 54 60 80 63 64 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A { inner_declare ID = item + ( factor -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 27 29 38 46 50 67 53 51 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 34 36 45 54 60 80 63 61 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A { inner_declare ID = item + ( factor * -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 27 29 38 46 50 67 53 51 69 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 34 36 45 54 60 80 63 61 82 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A { inner_declare ID = item + ( factor * ID -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 27 29 38 46 50 67 53 51 69 54 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 34 36 45 54 60 80 63 61 82 64 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A { inner_declare ID = item + ( factor * factor -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 27 29 38 46 50 67 53 51 69 51 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 34 36 45 54 60 80 63 61 82 61 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A { inner_declare ID = item + ( factor * item -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 27 29 38 46 50 67 53 51 69 84 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 34 36 45 54 60 80 63 61 82 99 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A { inner_declare ID = item + ( item -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 27 29 38 46 50 67 53 50 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 34 36 45 54 60 80 63 60 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A { inner_declare ID = item + ( item + -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 27 29 38 46 50 67 53 50 67 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 34 36 45 54 60 80 63 60 80 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A { inner_declare ID = item + ( item + NUM -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 27 29 38 46 50 67 53 50 67 52 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 34 36 45 54 60 80 63 60 80 62 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A { inner_declare ID = item + ( item + factor -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 27 29 38 46 50 67 53 50 67 51 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 34 36 45 54 60 80 63 60 80 61 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A { inner_declare ID = item + ( item + item -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 27 29 38 46 50 67 53 50 67 50 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 34 36 45 54 60 80 63 60 80 60 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A { inner_declare ID = item + ( item + add_expression -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 27 29 38 46 50 67 53 50 67 82 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 34 36 45 54 60 80 63 60 80 97 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A { inner_declare ID = item + ( add_expression -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 27 29 38 46 50 67 53 49 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 34 36 45 54 60 80 63 59 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A { inner_declare ID = item + ( expression -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 27 29 38 46 50 67 53 71 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 34 36 45 54 60 80 63 84 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A { inner_declare ID = item + ( expression ) -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 27 29 38 46 50 67 53 71 86 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 34 36 45 54 60 80 63 84 101 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A { inner_declare ID = item + factor -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 27 29 38 46 50 67 51 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 34 36 45 54 60 80 61 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A { inner_declare ID = item + item -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 27 29 38 46 50 67 50 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 34 36 45 54 60 80 60 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A { inner_declare ID = item + add_expression -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 27 29 38 46 50 67 82 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 34 36 45 54 60 80 97 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A { inner_declare ID = add_expression -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 27 29 38 46 49 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 34 36 45 54 59 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A { inner_declare ID = expression -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 27 29 38 46 59 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 34 36 45 54 71 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A { inner_declare ID = expression ; -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 27 29 38 46 59 75 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 34 36 45 54 71 89 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A { inner_declare assign_sentence -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 27 29 37 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 34 36 44 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A { inner_declare sentence -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 27 29 33 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 34 36 40 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A { inner_declare sentence_list -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 27 29 32 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 34 36 39 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A { inner_declare sentence_list } -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 27 29 32 44 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 34 36 39 52 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A sentence_block -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 97 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 114 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A sentence_block N -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 97 99 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 114 116 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A sentence_block N else -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 97 99 100 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 114 116 117 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A sentence_block N else M -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 97 99 100 101 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 114 116 117 118 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A sentence_block N else M A -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 97 99 100 101 102 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 114 116 117 118 119 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A sentence_block N else M A { -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 97 99 100 101 102 27 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 114 116 117 118 119 34 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A sentence_block N else M A { inner_declare -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 97 99 100 101 102 27 29 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 114 116 117 118 119 34 36 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A sentence_block N else M A { inner_declare ID -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 97 99 100 101 102 27 29 38 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 114 116 117 118 119 34 36 45 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A sentence_block N else M A { inner_declare ID = -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 97 99 100 101 102 27 29 38 46 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 114 116 117 118 119 34 36 45 54 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A sentence_block N else M A { inner_declare ID = ID -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 97 99 100 101 102 27 29 38 46 54 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 114 116 117 118 119 34 36 45 54 64 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A sentence_block N else M A { inner_declare ID = factor -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 97 99 100 101 102 27 29 38 46 51 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 114 116 117 118 119 34 36 45 54 61 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A sentence_block N else M A { inner_declare ID = item -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 97 99 100 101 102 27 29 38 46 50 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 114 116 117 118 119 34 36 45 54 60 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A sentence_block N else M A { inner_declare ID = add_expression -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 97 99 100 101 102 27 29 38 46 49 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 114 116 117 118 119 34 36 45 54 59 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A sentence_block N else M A { inner_declare ID = expression -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 97 99 100 101 102 27 29 38 46 59 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 114 116 117 118 119 34 36 45 54 71 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A sentence_block N else M A { inner_declare ID = expression ; -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 97 99 100 101 102 27 29 38 46 59 75 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 114 116 117 118 119 34 36 45 54 71 89 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A sentence_block N else M A { inner_declare assign_sentence -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 97 99 100 101 102 27 29 37 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 114 116 117 118 119 34 36 44 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A sentence_block N else M A { inner_declare sentence -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 97 99 100 101 102 27 29 33 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 114 116 117 118 119 34 36 40 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A sentence_block N else M A { inner_declare sentence_list -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 97 99 100 101 102 27 29 32 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 114 116 117 118 119 34 36 39 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A sentence_block N else M A { inner_declare sentence_list } -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 97 99 100 101 102 27 29 32 44 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 114 116 117 118 119 34 36 39 52 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if ( expression ) A sentence_block N else M A sentence_block -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 41 56 74 90 94 97 99 100 101 102 103 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 48 67 87 105 111 114 116 117 118 119 120 # N declare declare int ID M A ( parameter ) { inner_declare sentence M if_sentence -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 34 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 41 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M while -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 40 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 47 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M while M -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 40 55 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 47 66 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M while M ( -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 40 55 73 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 47 66 86 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M while M ( ID -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 40 55 73 54 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 47 66 86 64 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M while M ( factor -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 40 55 73 51 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 47 66 86 61 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M while M ( item -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 40 55 73 50 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 47 66 86 60 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M while M ( add_expression -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 40 55 73 49 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 47 66 86 59 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M while M ( add_expression <= -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 40 55 73 49 65 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 47 66 86 59 78 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M while M ( add_expression <= NUM -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 40 55 73 49 65 52 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 47 66 86 59 78 62 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M while M ( add_expression <= factor -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 40 55 73 49 65 51 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 47 66 86 59 78 61 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M while M ( add_expression <= item -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 40 55 73 49 65 50 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 47 66 86 59 78 60 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M while M ( add_expression <= add_expression -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 40 55 73 49 65 80 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 47 66 86 59 78 95 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M while M ( expression -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 40 55 73 89 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 47 66 86 104 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M while M ( expression ) -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 40 55 73 89 93 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 47 66 86 104 110 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M while M ( expression ) A -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 40 55 73 89 93 96 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 47 66 86 104 110 113 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M while M ( expression ) A { -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 40 55 73 89 93 96 27 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 47 66 86 104 110 113 34 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M while M ( expression ) A { inner_declare -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 40 55 73 89 93 96 27 29 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 47 66 86 104 110 113 34 36 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M while M ( expression ) A { inner_declare ID -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 40 55 73 89 93 96 27 29 38 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 47 66 86 104 110 113 34 36 45 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M while M ( expression ) A { inner_declare ID = -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 40 55 73 89 93 96 27 29 38 46 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 47 66 86 104 110 113 34 36 45 54 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M while M ( expression ) A { inner_declare ID = ID -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 40 55 73 89 93 96 27 29 38 46 54 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 47 66 86 104 110 113 34 36 45 54 64 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M while M ( expression ) A { inner_declare ID = factor -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 40 55 73 89 93 96 27 29 38 46 51 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 47 66 86 104 110 113 34 36 45 54 61 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M while M ( expression ) A { inner_declare ID = factor * -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 40 55 73 89 93 96 27 29 38 46 51 69 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 47 66 86 104 110 113 34 36 45 54 61 82 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M while M ( expression ) A { inner_declare ID = factor * NUM -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 40 55 73 89 93 96 27 29 38 46 51 69 52 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 47 66 86 104 110 113 34 36 45 54 61 82 62 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M while M ( expression ) A { inner_declare ID = factor * factor -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 40 55 73 89 93 96 27 29 38 46 51 69 51 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 47 66 86 104 110 113 34 36 45 54 61 82 61 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M while M ( expression ) A { inner_declare ID = factor * item -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 40 55 73 89 93 96 27 29 38 46 51 69 84 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 47 66 86 104 110 113 34 36 45 54 61 82 99 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M while M ( expression ) A { inner_declare ID = item -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 40 55 73 89 93 96 27 29 38 46 50 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 47 66 86 104 110 113 34 36 45 54 60 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M while M ( expression ) A { inner_declare ID = add_expression -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 40 55 73 89 93 96 27 29 38 46 49 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 47 66 86 104 110 113 34 36 45 54 59 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M while M ( expression ) A { inner_declare ID = expression -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 40 55 73 89 93 96 27 29 38 46 59 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 47 66 86 104 110 113 34 36 45 54 71 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M while M ( expression ) A { inner_declare ID = expression ; -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 40 55 73 89 93 96 27 29 38 46 59 75 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 47 66 86 104 110 113 34 36 45 54 71 89 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M while M ( expression ) A { inner_declare assign_sentence -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 40 55 73 89 93 96 27 29 37 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 47 66 86 104 110 113 34 36 44 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M while M ( expression ) A { inner_declare sentence -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 40 55 73 89 93 96 27 29 33 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 47 66 86 104 110 113 34 36 40 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M while M ( expression ) A { inner_declare sentence M -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 40 55 73 89 93 96 27 29 33 45 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 47 66 86 104 110 113 34 36 40 53 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M while M ( expression ) A { inner_declare sentence M ID -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 40 55 73 89 93 96 27 29 33 45 38 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 47 66 86 104 110 113 34 36 40 53 45 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M while M ( expression ) A { inner_declare sentence M ID = -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 40 55 73 89 93 96 27 29 33 45 38 46 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 47 66 86 104 110 113 34 36 40 53 45 54 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M while M ( expression ) A { inner_declare sentence M ID = ID -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 40 55 73 89 93 96 27 29 33 45 38 46 54 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 47 66 86 104 110 113 34 36 40 53 45 54 64 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M while M ( expression ) A { inner_declare sentence M ID = factor -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 40 55 73 89 93 96 27 29 33 45 38 46 51 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 47 66 86 104 110 113 34 36 40 53 45 54 61 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M while M ( expression ) A { inner_declare sentence M ID = item -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 40 55 73 89 93 96 27 29 33 45 38 46 50 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 47 66 86 104 110 113 34 36 40 53 45 54 60 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M while M ( expression ) A { inner_declare sentence M ID = add_expression -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 40 55 73 89 93 96 27 29 33 45 38 46 49 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 47 66 86 104 110 113 34 36 40 53 45 54 59 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M while M ( expression ) A { inner_declare sentence M ID = expression -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 40 55 73 89 93 96 27 29 33 45 38 46 59 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 47 66 86 104 110 113 34 36 40 53 45 54 71 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M while M ( expression ) A { inner_declare sentence M ID = expression ; -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 40 55 73 89 93 96 27 29 33 45 38 46 59 75 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 47 66 86 104 110 113 34 36 40 53 45 54 71 89 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M while M ( expression ) A { inner_declare sentence M assign_sentence -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 40 55 73 89 93 96 27 29 33 45 37 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 47 66 86 104 110 113 34 36 40 53 44 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M while M ( expression ) A { inner_declare sentence M sentence -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 40 55 73 89 93 96 27 29 33 45 33 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 47 66 86 104 110 113 34 36 40 53 40 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M while M ( expression ) A { inner_declare sentence M sentence_list -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 40 55 73 89 93 96 27 29 33 45 58 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 47 66 86 104 110 113 34 36 40 53 70 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M while M ( expression ) A { inner_declare sentence_list -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 40 55 73 89 93 96 27 29 32 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 47 66 86 104 110 113 34 36 39 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M while M ( expression ) A { inner_declare sentence_list } -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 40 55 73 89 93 96 27 29 32 44 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 47 66 86 104 110 113 34 36 39 52 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M while M ( expression ) A sentence_block -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 40 55 73 89 93 96 98 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 47 66 86 104 110 113 115 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M while_sentence -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 35 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 42 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M sentence -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 33 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 40 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M sentence M -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 33 45 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 40 53 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M sentence M return -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 33 45 39 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 40 53 46 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M sentence M return ID -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 33 45 39 54 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 40 53 46 64 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M sentence M return factor -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 33 45 39 51 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 40 53 46 61 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M sentence M return item -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 33 45 39 50 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 40 53 46 60 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M sentence M return add_expression -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 33 45 39 49 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 40 53 46 59 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M sentence M return expression -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 33 45 39 48 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 40 53 46 58 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M sentence M return expression ; -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 33 45 39 48 60 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 40 53 46 58 73 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M sentence M return_sentence -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 33 45 36 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 40 53 43 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M sentence M sentence -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 33 45 33 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 40 53 40 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M sentence M sentence_list -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 33 45 58 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 40 53 70 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence M sentence_list -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 33 45 58 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 40 53 70 # N declare declare int ID M A ( parameter ) { inner_declare sentence M sentence_list -0 1 3 3 4 7 9 13 16 18 23 27 29 33 45 58 +0 1 3 3 4 7 9 16 22 25 30 34 36 40 53 70 # N declare declare int ID M A ( parameter ) { inner_declare sentence_list -0 1 3 3 4 7 9 13 16 18 23 27 29 32 +0 1 3 3 4 7 9 16 22 25 30 34 36 39 # N declare declare int ID M A ( parameter ) { inner_declare sentence_list } -0 1 3 3 4 7 9 13 16 18 23 27 29 32 44 +0 1 3 3 4 7 9 16 22 25 30 34 36 39 52 # N declare declare int ID M A ( parameter ) sentence_block -0 1 3 3 4 7 9 13 16 18 23 26 +0 1 3 3 4 7 9 16 22 25 30 33 # N declare declare int ID M A function_declare -0 1 3 3 4 7 9 13 15 +0 1 3 3 4 7 9 16 21 # N declare declare declare 0 1 3 3 3 # N declare declare declare int @@ -413,93 +431,93 @@ # N declare declare declare int ID M 0 1 3 3 3 4 7 9 # N declare declare declare int ID M A -0 1 3 3 3 4 7 9 13 +0 1 3 3 3 4 7 9 16 # N declare declare declare int ID M A ( -0 1 3 3 3 4 7 9 13 16 +0 1 3 3 3 4 7 9 16 22 # N declare declare declare int ID M A ( int -0 1 3 3 3 4 7 9 13 16 22 +0 1 3 3 3 4 7 9 16 22 29 # N declare declare declare int ID M A ( int ID -0 1 3 3 3 4 7 9 13 16 22 25 +0 1 3 3 3 4 7 9 16 22 29 32 # N declare declare declare int ID M A ( param -0 1 3 3 3 4 7 9 13 16 21 +0 1 3 3 3 4 7 9 16 22 28 # N declare declare declare int ID M A ( parameter_list -0 1 3 3 3 4 7 9 13 16 19 +0 1 3 3 3 4 7 9 16 22 26 # N declare declare declare int ID M A ( parameter -0 1 3 3 3 4 7 9 13 16 18 +0 1 3 3 3 4 7 9 16 22 25 # N declare declare declare int ID M A ( parameter ) -0 1 3 3 3 4 7 9 13 16 18 23 +0 1 3 3 3 4 7 9 16 22 25 30 # N declare declare declare int ID M A ( parameter ) { -0 1 3 3 3 4 7 9 13 16 18 23 27 +0 1 3 3 3 4 7 9 16 22 25 30 34 # N declare declare declare int ID M A ( parameter ) { inner_declare -0 1 3 3 3 4 7 9 13 16 18 23 27 29 +0 1 3 3 3 4 7 9 16 22 25 30 34 36 # N declare declare declare int ID M A ( parameter ) { inner_declare ID -0 1 3 3 3 4 7 9 13 16 18 23 27 29 38 +0 1 3 3 3 4 7 9 16 22 25 30 34 36 45 # N declare declare declare int ID M A ( parameter ) { inner_declare ID = -0 1 3 3 3 4 7 9 13 16 18 23 27 29 38 46 +0 1 3 3 3 4 7 9 16 22 25 30 34 36 45 54 # N declare declare declare int ID M A ( parameter ) { inner_declare ID = ID -0 1 3 3 3 4 7 9 13 16 18 23 27 29 38 46 54 +0 1 3 3 3 4 7 9 16 22 25 30 34 36 45 54 64 # N declare declare declare int ID M A ( parameter ) { inner_declare ID = factor -0 1 3 3 3 4 7 9 13 16 18 23 27 29 38 46 51 +0 1 3 3 3 4 7 9 16 22 25 30 34 36 45 54 61 # N declare declare declare int ID M A ( parameter ) { inner_declare ID = item -0 1 3 3 3 4 7 9 13 16 18 23 27 29 38 46 50 +0 1 3 3 3 4 7 9 16 22 25 30 34 36 45 54 60 # N declare declare declare int ID M A ( parameter ) { inner_declare ID = item + -0 1 3 3 3 4 7 9 13 16 18 23 27 29 38 46 50 67 +0 1 3 3 3 4 7 9 16 22 25 30 34 36 45 54 60 80 # N declare declare declare int ID M A ( parameter ) { inner_declare ID = item + NUM -0 1 3 3 3 4 7 9 13 16 18 23 27 29 38 46 50 67 52 +0 1 3 3 3 4 7 9 16 22 25 30 34 36 45 54 60 80 62 # N declare declare declare int ID M A ( parameter ) { inner_declare ID = item + factor -0 1 3 3 3 4 7 9 13 16 18 23 27 29 38 46 50 67 51 +0 1 3 3 3 4 7 9 16 22 25 30 34 36 45 54 60 80 61 # N declare declare declare int ID M A ( parameter ) { inner_declare ID = item + item -0 1 3 3 3 4 7 9 13 16 18 23 27 29 38 46 50 67 50 +0 1 3 3 3 4 7 9 16 22 25 30 34 36 45 54 60 80 60 # N declare declare declare int ID M A ( parameter ) { inner_declare ID = item + add_expression -0 1 3 3 3 4 7 9 13 16 18 23 27 29 38 46 50 67 82 +0 1 3 3 3 4 7 9 16 22 25 30 34 36 45 54 60 80 97 # N declare declare declare int ID M A ( parameter ) { inner_declare ID = add_expression -0 1 3 3 3 4 7 9 13 16 18 23 27 29 38 46 49 +0 1 3 3 3 4 7 9 16 22 25 30 34 36 45 54 59 # N declare declare declare int ID M A ( parameter ) { inner_declare ID = expression -0 1 3 3 3 4 7 9 13 16 18 23 27 29 38 46 59 +0 1 3 3 3 4 7 9 16 22 25 30 34 36 45 54 71 # N declare declare declare int ID M A ( parameter ) { inner_declare ID = expression ; -0 1 3 3 3 4 7 9 13 16 18 23 27 29 38 46 59 75 +0 1 3 3 3 4 7 9 16 22 25 30 34 36 45 54 71 89 # N declare declare declare int ID M A ( parameter ) { inner_declare assign_sentence -0 1 3 3 3 4 7 9 13 16 18 23 27 29 37 +0 1 3 3 3 4 7 9 16 22 25 30 34 36 44 # N declare declare declare int ID M A ( parameter ) { inner_declare sentence -0 1 3 3 3 4 7 9 13 16 18 23 27 29 33 +0 1 3 3 3 4 7 9 16 22 25 30 34 36 40 # N declare declare declare int ID M A ( parameter ) { inner_declare sentence M -0 1 3 3 3 4 7 9 13 16 18 23 27 29 33 45 +0 1 3 3 3 4 7 9 16 22 25 30 34 36 40 53 # N declare declare declare int ID M A ( parameter ) { inner_declare sentence M return -0 1 3 3 3 4 7 9 13 16 18 23 27 29 33 45 39 +0 1 3 3 3 4 7 9 16 22 25 30 34 36 40 53 46 # N declare declare declare int ID M A ( parameter ) { inner_declare sentence M return ID -0 1 3 3 3 4 7 9 13 16 18 23 27 29 33 45 39 54 +0 1 3 3 3 4 7 9 16 22 25 30 34 36 40 53 46 64 # N declare declare declare int ID M A ( parameter ) { inner_declare sentence M return factor -0 1 3 3 3 4 7 9 13 16 18 23 27 29 33 45 39 51 +0 1 3 3 3 4 7 9 16 22 25 30 34 36 40 53 46 61 # N declare declare declare int ID M A ( parameter ) { inner_declare sentence M return factor * -0 1 3 3 3 4 7 9 13 16 18 23 27 29 33 45 39 51 69 +0 1 3 3 3 4 7 9 16 22 25 30 34 36 40 53 46 61 82 # N declare declare declare int ID M A ( parameter ) { inner_declare sentence M return factor * NUM -0 1 3 3 3 4 7 9 13 16 18 23 27 29 33 45 39 51 69 52 +0 1 3 3 3 4 7 9 16 22 25 30 34 36 40 53 46 61 82 62 # N declare declare declare int ID M A ( parameter ) { inner_declare sentence M return factor * factor -0 1 3 3 3 4 7 9 13 16 18 23 27 29 33 45 39 51 69 51 +0 1 3 3 3 4 7 9 16 22 25 30 34 36 40 53 46 61 82 61 # N declare declare declare int ID M A ( parameter ) { inner_declare sentence M return factor * item -0 1 3 3 3 4 7 9 13 16 18 23 27 29 33 45 39 51 69 84 +0 1 3 3 3 4 7 9 16 22 25 30 34 36 40 53 46 61 82 99 # N declare declare declare int ID M A ( parameter ) { inner_declare sentence M return item -0 1 3 3 3 4 7 9 13 16 18 23 27 29 33 45 39 50 +0 1 3 3 3 4 7 9 16 22 25 30 34 36 40 53 46 60 # N declare declare declare int ID M A ( parameter ) { inner_declare sentence M return add_expression -0 1 3 3 3 4 7 9 13 16 18 23 27 29 33 45 39 49 +0 1 3 3 3 4 7 9 16 22 25 30 34 36 40 53 46 59 # N declare declare declare int ID M A ( parameter ) { inner_declare sentence M return expression -0 1 3 3 3 4 7 9 13 16 18 23 27 29 33 45 39 48 +0 1 3 3 3 4 7 9 16 22 25 30 34 36 40 53 46 58 # N declare declare declare int ID M A ( parameter ) { inner_declare sentence M return expression ; -0 1 3 3 3 4 7 9 13 16 18 23 27 29 33 45 39 48 60 +0 1 3 3 3 4 7 9 16 22 25 30 34 36 40 53 46 58 73 # N declare declare declare int ID M A ( parameter ) { inner_declare sentence M return_sentence -0 1 3 3 3 4 7 9 13 16 18 23 27 29 33 45 36 +0 1 3 3 3 4 7 9 16 22 25 30 34 36 40 53 43 # N declare declare declare int ID M A ( parameter ) { inner_declare sentence M sentence -0 1 3 3 3 4 7 9 13 16 18 23 27 29 33 45 33 +0 1 3 3 3 4 7 9 16 22 25 30 34 36 40 53 40 # N declare declare declare int ID M A ( parameter ) { inner_declare sentence M sentence_list -0 1 3 3 3 4 7 9 13 16 18 23 27 29 33 45 58 +0 1 3 3 3 4 7 9 16 22 25 30 34 36 40 53 70 # N declare declare declare int ID M A ( parameter ) { inner_declare sentence_list -0 1 3 3 3 4 7 9 13 16 18 23 27 29 32 +0 1 3 3 3 4 7 9 16 22 25 30 34 36 39 # N declare declare declare int ID M A ( parameter ) { inner_declare sentence_list } -0 1 3 3 3 4 7 9 13 16 18 23 27 29 32 44 +0 1 3 3 3 4 7 9 16 22 25 30 34 36 39 52 # N declare declare declare int ID M A ( parameter ) sentence_block -0 1 3 3 3 4 7 9 13 16 18 23 26 +0 1 3 3 3 4 7 9 16 22 25 30 33 # N declare declare declare int ID M A function_declare -0 1 3 3 3 4 7 9 13 15 +0 1 3 3 3 4 7 9 16 21 # N declare declare declare declare 0 1 3 3 3 3 # N declare declare declare declare void @@ -507,223 +525,505 @@ # N declare declare declare declare void ID 0 1 3 3 3 3 5 8 # N declare declare declare declare void ID M -0 1 3 3 3 3 5 8 12 +0 1 3 3 3 3 5 8 15 # N declare declare declare declare void ID M A -0 1 3 3 3 3 5 8 12 14 +0 1 3 3 3 3 5 8 15 20 # N declare declare declare declare void ID M A ( -0 1 3 3 3 3 5 8 12 14 16 +0 1 3 3 3 3 5 8 15 20 22 # N declare declare declare declare void ID M A ( void -0 1 3 3 3 3 5 8 12 14 16 20 +0 1 3 3 3 3 5 8 15 20 22 27 # N declare declare declare declare void ID M A ( parameter -0 1 3 3 3 3 5 8 12 14 16 18 +0 1 3 3 3 3 5 8 15 20 22 25 # N declare declare declare declare void ID M A ( parameter ) -0 1 3 3 3 3 5 8 12 14 16 18 23 +0 1 3 3 3 3 5 8 15 20 22 25 30 # N declare declare declare declare void ID M A ( parameter ) { -0 1 3 3 3 3 5 8 12 14 16 18 23 27 -# N declare declare declare declare void ID M A ( parameter ) { int -0 1 3 3 3 3 5 8 12 14 16 18 23 27 31 -# N declare declare declare declare void ID M A ( parameter ) { int ID -0 1 3 3 3 3 5 8 12 14 16 18 23 27 31 43 -# N declare declare declare declare void ID M A ( parameter ) { inner_var_declare -0 1 3 3 3 3 5 8 12 14 16 18 23 27 30 -# N declare declare declare declare void ID M A ( parameter ) { inner_var_declare ; -0 1 3 3 3 3 5 8 12 14 16 18 23 27 30 42 -# N declare declare declare declare void ID M A ( parameter ) { inner_var_declare ; int -0 1 3 3 3 3 5 8 12 14 16 18 23 27 30 42 31 -# N declare declare declare declare void ID M A ( parameter ) { inner_var_declare ; int ID -0 1 3 3 3 3 5 8 12 14 16 18 23 27 30 42 31 43 -# N declare declare declare declare void ID M A ( parameter ) { inner_var_declare ; inner_var_declare -0 1 3 3 3 3 5 8 12 14 16 18 23 27 30 42 30 -# N declare declare declare declare void ID M A ( parameter ) { inner_var_declare ; inner_var_declare ; -0 1 3 3 3 3 5 8 12 14 16 18 23 27 30 42 30 42 -# N declare declare declare declare void ID M A ( parameter ) { inner_var_declare ; inner_var_declare ; int -0 1 3 3 3 3 5 8 12 14 16 18 23 27 30 42 30 42 31 -# N declare declare declare declare void ID M A ( parameter ) { inner_var_declare ; inner_var_declare ; int ID -0 1 3 3 3 3 5 8 12 14 16 18 23 27 30 42 30 42 31 43 -# N declare declare declare declare void ID M A ( parameter ) { inner_var_declare ; inner_var_declare ; inner_var_declare -0 1 3 3 3 3 5 8 12 14 16 18 23 27 30 42 30 42 30 -# N declare declare declare declare void ID M A ( parameter ) { inner_var_declare ; inner_var_declare ; inner_var_declare ; -0 1 3 3 3 3 5 8 12 14 16 18 23 27 30 42 30 42 30 42 -# N declare declare declare declare void ID M A ( parameter ) { inner_var_declare ; inner_var_declare ; inner_var_declare ; inner_declare -0 1 3 3 3 3 5 8 12 14 16 18 23 27 30 42 30 42 30 42 57 -# N declare declare declare declare void ID M A ( parameter ) { inner_var_declare ; inner_var_declare ; inner_declare -0 1 3 3 3 3 5 8 12 14 16 18 23 27 30 42 30 42 57 -# N declare declare declare declare void ID M A ( parameter ) { inner_var_declare ; inner_declare -0 1 3 3 3 3 5 8 12 14 16 18 23 27 30 42 57 +0 1 3 3 3 3 5 8 15 20 22 25 30 34 # N declare declare declare declare void ID M A ( parameter ) { inner_declare -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 # N declare declare declare declare void ID M A ( parameter ) { inner_declare ID -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 38 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare ID = -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 38 46 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare ID = NUM -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 38 46 52 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare ID = factor -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 38 46 51 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare ID = item -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 38 46 50 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare ID = add_expression -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 38 46 49 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare ID = expression -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 38 46 59 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare ID = expression ; -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 38 46 59 75 +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 45 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare ID [ +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 45 56 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare ID [ NUM +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 45 56 62 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare ID [ factor +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 45 56 61 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare ID [ item +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 45 56 60 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare ID [ add_expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 45 56 59 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare ID [ expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 45 56 72 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare ID [ expression ] +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 45 56 72 90 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare ID [ expression ] [ +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 45 56 72 90 56 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare ID [ expression ] [ NUM +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 45 56 72 90 56 62 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare ID [ expression ] [ factor +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 45 56 72 90 56 61 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare ID [ expression ] [ item +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 45 56 72 90 56 60 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare ID [ expression ] [ add_expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 45 56 72 90 56 59 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare ID [ expression ] [ expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 45 56 72 90 56 72 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare ID [ expression ] [ expression ] +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 45 56 72 90 56 72 90 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare ID [ expression ] index_list +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 45 56 72 90 107 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare ID index_list +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 45 55 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare array +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 49 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare array = +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 49 68 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare array = NUM +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 49 68 62 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare array = factor +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 49 68 61 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare array = item +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 49 68 60 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare array = add_expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 49 68 59 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare array = expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 49 68 88 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare array = expression ; +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 49 68 88 106 # N declare declare declare declare void ID M A ( parameter ) { inner_declare assign_sentence -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 37 +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 44 # N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 # N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 # N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M ID -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 38 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M ID = -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 38 46 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M ID = NUM -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 38 46 52 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M ID = factor -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 38 46 51 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M ID = item -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 38 46 50 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M ID = add_expression -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 38 46 49 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M ID = expression -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 38 46 59 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M ID = expression ; -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 38 46 59 75 +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 45 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M ID [ +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 45 56 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M ID [ NUM +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 45 56 62 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M ID [ factor +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 45 56 61 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M ID [ item +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 45 56 60 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M ID [ add_expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 45 56 59 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M ID [ expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 45 56 72 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M ID [ expression ] +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 45 56 72 90 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M ID [ expression ] [ +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 45 56 72 90 56 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M ID [ expression ] [ NUM +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 45 56 72 90 56 62 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M ID [ expression ] [ factor +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 45 56 72 90 56 61 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M ID [ expression ] [ item +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 45 56 72 90 56 60 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M ID [ expression ] [ add_expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 45 56 72 90 56 59 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M ID [ expression ] [ expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 45 56 72 90 56 72 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M ID [ expression ] [ expression ] +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 45 56 72 90 56 72 90 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M ID [ expression ] index_list +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 45 56 72 90 107 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M ID index_list +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 45 55 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M array +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 49 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M array = +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 49 68 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M array = ID +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 49 68 64 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M array = ID [ +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 49 68 64 56 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M array = ID [ NUM +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 49 68 64 56 62 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M array = ID [ factor +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 49 68 64 56 61 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M array = ID [ item +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 49 68 64 56 60 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M array = ID [ add_expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 49 68 64 56 59 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M array = ID [ expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 49 68 64 56 72 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M array = ID [ expression ] +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 49 68 64 56 72 90 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M array = ID [ expression ] [ +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 49 68 64 56 72 90 56 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M array = ID [ expression ] [ NUM +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 49 68 64 56 72 90 56 62 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M array = ID [ expression ] [ factor +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 49 68 64 56 72 90 56 61 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M array = ID [ expression ] [ item +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 49 68 64 56 72 90 56 60 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M array = ID [ expression ] [ add_expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 49 68 64 56 72 90 56 59 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M array = ID [ expression ] [ expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 49 68 64 56 72 90 56 72 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M array = ID [ expression ] [ expression ] +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 49 68 64 56 72 90 56 72 90 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M array = ID [ expression ] index_list +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 49 68 64 56 72 90 107 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M array = ID index_list +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 49 68 64 55 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M array = array +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 49 68 65 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M array = factor +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 49 68 61 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M array = item +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 49 68 60 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M array = item + +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 49 68 60 80 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M array = item + NUM +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 49 68 60 80 62 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M array = item + factor +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 49 68 60 80 61 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M array = item + item +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 49 68 60 80 60 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M array = item + add_expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 49 68 60 80 97 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M array = add_expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 49 68 59 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M array = expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 49 68 88 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M array = expression ; +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 49 68 88 106 # N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M assign_sentence -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 37 +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 44 # N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 # N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 # N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M ID -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 38 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M ID = -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 38 46 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M ID = NUM -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 38 46 52 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M ID = factor -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 38 46 51 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M ID = item -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 38 46 50 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M ID = add_expression -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 38 46 49 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M ID = expression -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 38 46 59 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M ID = expression ; -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 38 46 59 75 +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 45 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M ID [ +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 45 56 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M ID [ NUM +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 45 56 62 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M ID [ factor +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 45 56 61 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M ID [ item +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 45 56 60 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M ID [ add_expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 45 56 59 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M ID [ expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 45 56 72 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M ID [ expression ] +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 45 56 72 90 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M ID index_list +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 45 55 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M array +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 49 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M array = +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 49 68 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M array = ID +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 49 68 64 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M array = ID [ +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 49 68 64 56 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M array = ID [ NUM +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 49 68 64 56 62 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M array = ID [ factor +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 49 68 64 56 61 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M array = ID [ item +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 49 68 64 56 60 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M array = ID [ add_expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 49 68 64 56 59 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M array = ID [ expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 49 68 64 56 72 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M array = ID [ expression ] +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 49 68 64 56 72 90 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M array = ID index_list +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 49 68 64 55 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M array = array +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 49 68 65 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M array = factor +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 49 68 61 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M array = item +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 49 68 60 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M array = item + +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 49 68 60 80 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M array = item + ID +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 49 68 60 80 64 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M array = item + ID [ +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 49 68 60 80 64 56 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M array = item + ID [ NUM +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 49 68 60 80 64 56 62 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M array = item + ID [ factor +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 49 68 60 80 64 56 61 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M array = item + ID [ item +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 49 68 60 80 64 56 60 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M array = item + ID [ add_expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 49 68 60 80 64 56 59 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M array = item + ID [ expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 49 68 60 80 64 56 72 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M array = item + ID [ expression ] +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 49 68 60 80 64 56 72 90 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M array = item + ID index_list +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 49 68 60 80 64 55 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M array = item + array +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 49 68 60 80 65 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M array = item + factor +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 49 68 60 80 61 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M array = item + item +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 49 68 60 80 60 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M array = item + add_expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 49 68 60 80 97 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M array = add_expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 49 68 59 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M array = expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 49 68 88 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M array = expression ; +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 49 68 88 106 # N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M assign_sentence -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 37 +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 44 # N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 # N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 # N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 38 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID = -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 38 46 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID = ID -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 38 46 54 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID = ID ( -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 38 46 54 72 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID = ID ( ID -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 38 46 54 72 54 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID = ID ( factor -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 38 46 54 72 51 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID = ID ( item -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 38 46 54 72 50 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID = ID ( add_expression -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 38 46 54 72 49 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID = ID ( expression -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 38 46 54 72 88 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID = ID ( expression , -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 38 46 54 72 88 92 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID = ID ( expression , ID -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 38 46 54 72 88 92 54 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID = ID ( expression , factor -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 38 46 54 72 88 92 51 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID = ID ( expression , item -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 38 46 54 72 88 92 50 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID = ID ( expression , add_expression -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 38 46 54 72 88 92 49 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID = ID ( expression , expression -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 38 46 54 72 88 92 88 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID = ID ( expression , expression , -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 38 46 54 72 88 92 88 92 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID = ID ( expression , expression , ID -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 38 46 54 72 88 92 88 92 54 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID = ID ( expression , expression , ID ( -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 38 46 54 72 88 92 88 92 54 72 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID = ID ( expression , expression , ID ( ID -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 38 46 54 72 88 92 88 92 54 72 54 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID = ID ( expression , expression , ID ( factor -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 38 46 54 72 88 92 88 92 54 72 51 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID = ID ( expression , expression , ID ( item -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 38 46 54 72 88 92 88 92 54 72 50 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID = ID ( expression , expression , ID ( add_expression -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 38 46 54 72 88 92 88 92 54 72 49 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID = ID ( expression , expression , ID ( expression -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 38 46 54 72 88 92 88 92 54 72 88 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID = ID ( expression , expression , ID ( argument_list -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 38 46 54 72 88 92 88 92 54 72 87 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID = ID ( expression , expression , ID ( argument_list ) -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 38 46 54 72 88 92 88 92 54 72 87 91 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID = ID ( expression , expression , factor -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 38 46 54 72 88 92 88 92 51 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID = ID ( expression , expression , item -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 38 46 54 72 88 92 88 92 50 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID = ID ( expression , expression , add_expression -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 38 46 54 72 88 92 88 92 49 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID = ID ( expression , expression , expression -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 38 46 54 72 88 92 88 92 88 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID = ID ( expression , expression , argument_list -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 38 46 54 72 88 92 88 92 95 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID = ID ( expression , argument_list -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 38 46 54 72 88 92 95 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID = ID ( argument_list -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 38 46 54 72 87 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID = ID ( argument_list ) -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 38 46 54 72 87 91 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID = factor -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 38 46 51 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID = item -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 38 46 50 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID = add_expression -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 38 46 49 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID = expression -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 38 46 59 -# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID = expression ; -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 38 46 59 75 +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 45 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID [ +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 45 56 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID [ NUM +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 45 56 62 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID [ factor +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 45 56 61 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID [ item +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 45 56 60 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID [ add_expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 45 56 59 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID [ expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 45 56 72 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID [ expression ] +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 45 56 72 90 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID [ expression ] [ +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 45 56 72 90 56 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID [ expression ] [ NUM +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 45 56 72 90 56 62 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID [ expression ] [ factor +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 45 56 72 90 56 61 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID [ expression ] [ item +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 45 56 72 90 56 60 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID [ expression ] [ add_expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 45 56 72 90 56 59 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID [ expression ] [ expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 45 56 72 90 56 72 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID [ expression ] [ expression ] +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 45 56 72 90 56 72 90 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID [ expression ] index_list +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 45 56 72 90 107 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M ID index_list +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 45 55 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( ID +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 64 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( ID [ +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 64 56 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( ID [ NUM +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 64 56 62 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( ID [ factor +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 64 56 61 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( ID [ item +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 64 56 60 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( ID [ add_expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 64 56 59 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( ID [ expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 64 56 72 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( ID [ expression ] +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 64 56 72 90 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( ID [ expression ] [ +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 64 56 72 90 56 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( ID [ expression ] [ NUM +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 64 56 72 90 56 62 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( ID [ expression ] [ factor +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 64 56 72 90 56 61 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( ID [ expression ] [ item +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 64 56 72 90 56 60 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( ID [ expression ] [ add_expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 64 56 72 90 56 59 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( ID [ expression ] [ expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 64 56 72 90 56 72 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( ID [ expression ] [ expression ] +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 64 56 72 90 56 72 90 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( ID [ expression ] index_list +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 64 56 72 90 107 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( ID index_list +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 64 55 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( array +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 65 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( factor +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 61 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( item +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 60 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( add_expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 59 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , ID +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 64 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , ID [ +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 64 56 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , ID [ NUM +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 64 56 62 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , ID [ factor +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 64 56 61 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , ID [ item +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 64 56 60 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , ID [ add_expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 64 56 59 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , ID [ expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 64 56 72 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , ID [ expression ] +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 64 56 72 90 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , ID [ expression ] [ +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 64 56 72 90 56 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , ID [ expression ] [ NUM +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 64 56 72 90 56 62 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , ID [ expression ] [ factor +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 64 56 72 90 56 61 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , ID [ expression ] [ item +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 64 56 72 90 56 60 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , ID [ expression ] [ add_expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 64 56 72 90 56 59 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , ID [ expression ] [ expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 64 56 72 90 56 72 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , ID [ expression ] [ expression ] +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 64 56 72 90 56 72 90 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , ID [ expression ] index_list +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 64 56 72 90 107 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , ID index_list +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 64 55 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , array +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 65 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , factor +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 61 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , item +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 60 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , add_expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 59 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 103 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , expression , +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 103 109 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , expression , ID +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 103 109 64 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , expression , ID ( +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 103 109 64 85 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , expression , ID ( ID +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 103 109 64 85 64 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , expression , ID ( ID [ +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 103 109 64 85 64 56 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , expression , ID ( ID [ NUM +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 103 109 64 85 64 56 62 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , expression , ID ( ID [ factor +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 103 109 64 85 64 56 61 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , expression , ID ( ID [ item +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 103 109 64 85 64 56 60 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , expression , ID ( ID [ add_expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 103 109 64 85 64 56 59 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , expression , ID ( ID [ expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 103 109 64 85 64 56 72 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , expression , ID ( ID [ expression ] +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 103 109 64 85 64 56 72 90 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , expression , ID ( ID [ expression ] [ +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 103 109 64 85 64 56 72 90 56 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , expression , ID ( ID [ expression ] [ NUM +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 103 109 64 85 64 56 72 90 56 62 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , expression , ID ( ID [ expression ] [ factor +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 103 109 64 85 64 56 72 90 56 61 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , expression , ID ( ID [ expression ] [ item +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 103 109 64 85 64 56 72 90 56 60 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , expression , ID ( ID [ expression ] [ add_expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 103 109 64 85 64 56 72 90 56 59 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , expression , ID ( ID [ expression ] [ expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 103 109 64 85 64 56 72 90 56 72 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , expression , ID ( ID [ expression ] [ expression ] +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 103 109 64 85 64 56 72 90 56 72 90 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , expression , ID ( ID [ expression ] index_list +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 103 109 64 85 64 56 72 90 107 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , expression , ID ( ID index_list +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 103 109 64 85 64 55 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , expression , ID ( array +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 103 109 64 85 65 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , expression , ID ( factor +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 103 109 64 85 61 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , expression , ID ( item +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 103 109 64 85 60 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , expression , ID ( add_expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 103 109 64 85 59 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , expression , ID ( expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 103 109 64 85 103 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , expression , ID ( argument_list +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 103 109 64 85 102 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , expression , ID ( argument_list ) +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 103 109 64 85 102 108 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , expression , factor +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 103 109 61 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , expression , item +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 103 109 60 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , expression , add_expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 103 109 59 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , expression , expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 103 109 103 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , expression , argument_list +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 103 109 112 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( expression , argument_list +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 103 109 112 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( argument_list +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 102 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = ID ( argument_list ) +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 64 85 102 108 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = factor +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 61 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = item +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 60 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = add_expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 59 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = expression +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 88 +# N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M array = expression ; +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 49 68 88 106 # N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M assign_sentence -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 37 +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 44 # N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M sentence -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 33 +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 40 # N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M sentence M -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 33 45 +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 40 53 # N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M sentence M return -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 33 45 39 +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 40 53 46 # N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M sentence M return ; -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 33 45 39 47 +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 40 53 46 57 # N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M sentence M return_sentence -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 33 45 36 +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 40 53 43 # N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M sentence M sentence -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 33 45 33 +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 40 53 40 # N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M sentence M sentence_list -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 33 45 58 +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 40 53 70 # N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence M sentence_list -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 33 45 58 +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 40 53 70 # N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence M sentence_list -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 33 45 58 +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 40 53 70 # N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence M sentence_list -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 33 45 58 +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 40 53 70 # N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence_list -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 32 +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 39 # N declare declare declare declare void ID M A ( parameter ) { inner_declare sentence_list } -0 1 3 3 3 3 5 8 12 14 16 18 23 27 29 32 44 +0 1 3 3 3 3 5 8 15 20 22 25 30 34 36 39 52 # N declare declare declare declare void ID M A ( parameter ) sentence_block -0 1 3 3 3 3 5 8 12 14 16 18 23 26 +0 1 3 3 3 3 5 8 15 20 22 25 30 33 # N declare declare declare declare void ID M A function_declare -0 1 3 3 3 3 5 8 12 14 17 +0 1 3 3 3 3 5 8 15 20 24 # N declare declare declare declare declare 0 1 3 3 3 3 3 # N declare declare declare declare declare_list diff --git a/test_with_array.txt b/test_with_array.txt new file mode 100644 index 0000000..6b21c1b --- /dev/null +++ b/test_with_array.txt @@ -0,0 +1,38 @@ +int b; +int a[2][2]; +int program(int a,int b,int c) +{ + int i; + int j; + i=0; + if(a>(b+c)) + { + j=a+(b*c+1); + } + else + { + j=a; + } + while(i<=100) + { + i=j*2; + j=i; + } + return i; +} + +int demo(int a) +{ + a=a+2; + return a*2; +} + +void main(void) +{ + a[0][0] = 3; + a[0][1] = a[0][0]+1; + a[1] = a[0]+a[1]; + a[1][1] = program(a[0][0],a[0][1],demo(a[1][0])); + return; +} +# \ No newline at end of file