fix Makefile
This commit is contained in:
parent
29b5b6c1f3
commit
8973390b2a
2 changed files with 70 additions and 57 deletions
19
Makefile
19
Makefile
|
|
@ -1,6 +1,6 @@
|
||||||
CC = zig cc -O2
|
CC = gcc
|
||||||
|
|
||||||
all: parser.tab.o lex.yy.o node.o main.o
|
program: parser.tab.o lex.yy.o node.o main.o
|
||||||
$(CC) ./parser.tab.o ./lex.yy.o ./node.o ./main.o -o program -lfl
|
$(CC) ./parser.tab.o ./lex.yy.o ./node.o ./main.o -o program -lfl
|
||||||
|
|
||||||
main.o: main.c
|
main.o: main.c
|
||||||
|
|
@ -21,6 +21,19 @@ lex.yy.o: lex.yy.c
|
||||||
lex.yy.c: ./scanner.l
|
lex.yy.c: ./scanner.l
|
||||||
flex scanner.l
|
flex scanner.l
|
||||||
|
|
||||||
.PHONY: clean
|
.PHONY: clean test
|
||||||
clean:
|
clean:
|
||||||
rm parser.tab.c parser.tab.h parser.tab.o lex.yy.o lex.yy.c program main.o node.o
|
rm parser.tab.c parser.tab.h parser.tab.o lex.yy.o lex.yy.c program main.o node.o
|
||||||
|
|
||||||
|
test: program
|
||||||
|
@echo Test test1:
|
||||||
|
./program test1
|
||||||
|
@read
|
||||||
|
@echo Test test2:
|
||||||
|
./program test2
|
||||||
|
@read
|
||||||
|
@echo Test test3:
|
||||||
|
./program test3
|
||||||
|
@read
|
||||||
|
@echo Test test4:
|
||||||
|
./program test4
|
||||||
|
|
|
||||||
108
parser.y
108
parser.y
|
|
@ -22,14 +22,14 @@
|
||||||
Program:
|
Program:
|
||||||
ExtDefList {
|
ExtDefList {
|
||||||
pNode children[1] = { $1 };
|
pNode children[1] = { $1 };
|
||||||
$$ = newNode(Program, yylineno, 1, children, nullValue());
|
$$ = newNode(Program, $1->line, 1, children, nullValue());
|
||||||
root = $$;
|
root = $$;
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
ExtDefList:
|
ExtDefList:
|
||||||
ExtDef ExtDefList {
|
ExtDef ExtDefList {
|
||||||
pNode children[2] = { $1, $2 };
|
pNode children[2] = { $1, $2 };
|
||||||
$$ = newNode(ExtDefList, yylineno, 2, children, nullValue());
|
$$ = newNode(ExtDefList, $1->line, 2, children, nullValue());
|
||||||
}
|
}
|
||||||
| {
|
| {
|
||||||
$$ = newNode(ExtDefList, -1, 0, NULL, nullValue());
|
$$ = newNode(ExtDefList, -1, 0, NULL, nullValue());
|
||||||
|
|
@ -38,25 +38,25 @@ ExtDefList:
|
||||||
ExtDef:
|
ExtDef:
|
||||||
Specifier ExtDecList SEMI {
|
Specifier ExtDecList SEMI {
|
||||||
pNode children[3] = { $1, $2, $3 };
|
pNode children[3] = { $1, $2, $3 };
|
||||||
$$ = newNode(ExtDef, yylineno, 3, children, nullValue());
|
$$ = newNode(ExtDef, $1->line, 3, children, nullValue());
|
||||||
}
|
}
|
||||||
| Specifier SEMI {
|
| Specifier SEMI {
|
||||||
pNode children[2] = { $1, $2 };
|
pNode children[2] = { $1, $2 };
|
||||||
$$ = newNode(ExtDef, yylineno, 2, children, nullValue());
|
$$ = newNode(ExtDef, $1->line, 2, children, nullValue());
|
||||||
}
|
}
|
||||||
| Specifier FunDec CompSt {
|
| Specifier FunDec CompSt {
|
||||||
pNode children[3] = { $1, $2, $3 };
|
pNode children[3] = { $1, $2, $3 };
|
||||||
$$ = newNode(ExtDef, yylineno, 3, children, nullValue());
|
$$ = newNode(ExtDef, $1->line, 3, children, nullValue());
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
ExtDecList:
|
ExtDecList:
|
||||||
VarDec {
|
VarDec {
|
||||||
pNode children[1] = { $1 };
|
pNode children[1] = { $1 };
|
||||||
$$ = newNode(ExtDecList, yylineno, 1, children, nullValue());
|
$$ = newNode(ExtDecList, $1->line, 1, children, nullValue());
|
||||||
}
|
}
|
||||||
| VarDec COMMA ExtDecList {
|
| VarDec COMMA ExtDecList {
|
||||||
pNode children[3] = { $1, $2, $3 };
|
pNode children[3] = { $1, $2, $3 };
|
||||||
$$ = newNode(ExtDecList, yylineno, 3, children, nullValue());
|
$$ = newNode(ExtDecList, $1->line, 3, children, nullValue());
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
@ -64,31 +64,31 @@ ExtDecList:
|
||||||
Specifier:
|
Specifier:
|
||||||
TYPE_INT {
|
TYPE_INT {
|
||||||
pNode children[1] = { $1 };
|
pNode children[1] = { $1 };
|
||||||
$$ = newNode(Specifier, yylineno, 1, children, nullValue());
|
$$ = newNode(Specifier, $1->line, 1, children, nullValue());
|
||||||
}
|
}
|
||||||
| TYPE_FLOAT {
|
| TYPE_FLOAT {
|
||||||
pNode children[1] = { $1 };
|
pNode children[1] = { $1 };
|
||||||
$$ = newNode(Specifier, yylineno, 1, children, nullValue());
|
$$ = newNode(Specifier, $1->line, 1, children, nullValue());
|
||||||
}
|
}
|
||||||
| StructSpecifier {
|
| StructSpecifier {
|
||||||
pNode children[1] = { $1 };
|
pNode children[1] = { $1 };
|
||||||
$$ = newNode(Specifier, yylineno, 1, children, nullValue());
|
$$ = newNode(Specifier, $1->line, 1, children, nullValue());
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
StructSpecifier:
|
StructSpecifier:
|
||||||
STRUCT OptTag LC DefList RC {
|
STRUCT OptTag LC DefList RC {
|
||||||
pNode children[5] = { $1, $2, $3, $4, $5 };
|
pNode children[5] = { $1, $2, $3, $4, $5 };
|
||||||
$$ = newNode(StructSpecifier, yylineno, 5, children, nullValue());
|
$$ = newNode(StructSpecifier, $1->line, 5, children, nullValue());
|
||||||
}
|
}
|
||||||
| STRUCT Tag {
|
| STRUCT Tag {
|
||||||
pNode children[2] = { $1, $2 };
|
pNode children[2] = { $1, $2 };
|
||||||
$$ = newNode(StructSpecifier, yylineno, 2, children, nullValue());
|
$$ = newNode(StructSpecifier, $1->line, 2, children, nullValue());
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
OptTag:
|
OptTag:
|
||||||
ID {
|
ID {
|
||||||
pNode children[1] = { $1 };
|
pNode children[1] = { $1 };
|
||||||
$$ = newNode(OptTag, yylineno, 1, children, nullValue());
|
$$ = newNode(OptTag, $1->line, 1, children, nullValue());
|
||||||
}
|
}
|
||||||
| {
|
| {
|
||||||
$$ = newNode(OptTag, -1, 0, NULL, nullValue());
|
$$ = newNode(OptTag, -1, 0, NULL, nullValue());
|
||||||
|
|
@ -97,7 +97,7 @@ OptTag:
|
||||||
Tag:
|
Tag:
|
||||||
ID {
|
ID {
|
||||||
pNode children[1] = { $1 };
|
pNode children[1] = { $1 };
|
||||||
$$ = newNode(Tag, yylineno, 1, children, nullValue());
|
$$ = newNode(Tag, $1->line, 1, children, nullValue());
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
@ -105,37 +105,37 @@ Tag:
|
||||||
VarDec:
|
VarDec:
|
||||||
ID {
|
ID {
|
||||||
pNode children[1] = { $1 };
|
pNode children[1] = { $1 };
|
||||||
$$ = newNode(VarDec, yylineno, 1, children, nullValue());
|
$$ = newNode(VarDec, $1->line, 1, children, nullValue());
|
||||||
}
|
}
|
||||||
| VarDec LB INTEGER RB {
|
| VarDec LB INTEGER RB {
|
||||||
pNode children[4] = { $1, $2, $3, $4 };
|
pNode children[4] = { $1, $2, $3, $4 };
|
||||||
$$ = newNode(VarDec, yylineno, 4, children, nullValue());
|
$$ = newNode(VarDec, $1->line, 4, children, nullValue());
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
FunDec:
|
FunDec:
|
||||||
ID LP VarList RP {
|
ID LP VarList RP {
|
||||||
pNode children[4] = { $1, $2, $3, $4 };
|
pNode children[4] = { $1, $2, $3, $4 };
|
||||||
$$ = newNode(FunDec, yylineno, 4, children, nullValue());
|
$$ = newNode(FunDec, $1->line, 4, children, nullValue());
|
||||||
}
|
}
|
||||||
| ID LP RP {
|
| ID LP RP {
|
||||||
pNode children[3] = { $1, $2, $3 };
|
pNode children[3] = { $1, $2, $3 };
|
||||||
$$ = newNode(FunDec, yylineno, 3, children, nullValue());
|
$$ = newNode(FunDec, $1->line, 3, children, nullValue());
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
VarList:
|
VarList:
|
||||||
ParamDec COMMA VarList {
|
ParamDec COMMA VarList {
|
||||||
pNode children[3] = { $1, $2, $3 };
|
pNode children[3] = { $1, $2, $3 };
|
||||||
$$ = newNode(VarList, yylineno, 3, children, nullValue());
|
$$ = newNode(VarList, $1->line, 3, children, nullValue());
|
||||||
}
|
}
|
||||||
| ParamDec {
|
| ParamDec {
|
||||||
pNode children[1] = { $1 };
|
pNode children[1] = { $1 };
|
||||||
$$ = newNode(VarList, yylineno, 1, children, nullValue());
|
$$ = newNode(VarList, $1->line, 1, children, nullValue());
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
ParamDec:
|
ParamDec:
|
||||||
Specifier VarDec {
|
Specifier VarDec {
|
||||||
pNode children[1] = { $1 };
|
pNode children[1] = { $1 };
|
||||||
$$ = newNode(ParamDec, yylineno, 1, children, nullValue());
|
$$ = newNode(ParamDec, $1->line, 1, children, nullValue());
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
@ -143,13 +143,13 @@ ParamDec:
|
||||||
CompSt:
|
CompSt:
|
||||||
LC DefList StmtList RC {
|
LC DefList StmtList RC {
|
||||||
pNode children[4] = { $1, $2, $3, $4 };
|
pNode children[4] = { $1, $2, $3, $4 };
|
||||||
$$ = newNode(CompSt, yylineno, 4, children, nullValue());
|
$$ = newNode(CompSt, $1->line, 4, children, nullValue());
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
StmtList:
|
StmtList:
|
||||||
Stmt StmtList {
|
Stmt StmtList {
|
||||||
pNode children[2] = { $1, $2 };
|
pNode children[2] = { $1, $2 };
|
||||||
$$ = newNode(StmtList, yylineno, 2, children, nullValue());
|
$$ = newNode(StmtList, $1->line, 2, children, nullValue());
|
||||||
}
|
}
|
||||||
| {
|
| {
|
||||||
$$ = newNode(StmtList, -1, 0, NULL, nullValue());
|
$$ = newNode(StmtList, -1, 0, NULL, nullValue());
|
||||||
|
|
@ -158,27 +158,27 @@ StmtList:
|
||||||
Stmt:
|
Stmt:
|
||||||
Exp SEMI {
|
Exp SEMI {
|
||||||
pNode children[2] = { $1, $2 };
|
pNode children[2] = { $1, $2 };
|
||||||
$$ = newNode(Stmt, yylineno, 2, children, nullValue());
|
$$ = newNode(Stmt, $1->line, 2, children, nullValue());
|
||||||
}
|
}
|
||||||
| CompSt {
|
| CompSt {
|
||||||
pNode children[1] = { $1 };
|
pNode children[1] = { $1 };
|
||||||
$$ = newNode(Stmt, yylineno, 1, children, nullValue());
|
$$ = newNode(Stmt, $1->line, 1, children, nullValue());
|
||||||
}
|
}
|
||||||
| RETURN Exp SEMI {
|
| RETURN Exp SEMI {
|
||||||
pNode children[3] = { $1, $2, $3 };
|
pNode children[3] = { $1, $2, $3 };
|
||||||
$$ = newNode(Stmt, yylineno, 3, children, nullValue());
|
$$ = newNode(Stmt, $1->line, 3, children, nullValue());
|
||||||
}
|
}
|
||||||
| IF LP Exp RP Stmt {
|
| IF LP Exp RP Stmt {
|
||||||
pNode children[5] = { $1, $2, $3, $4, $5 };
|
pNode children[5] = { $1, $2, $3, $4, $5 };
|
||||||
$$ = newNode(Stmt, yylineno, 5, children, nullValue());
|
$$ = newNode(Stmt, $1->line, 5, children, nullValue());
|
||||||
}
|
}
|
||||||
| IF LP Exp RP Stmt ELSE Stmt {
|
| IF LP Exp RP Stmt ELSE Stmt {
|
||||||
pNode children[7] = { $1, $2, $3, $4, $5, $6, $7 };
|
pNode children[7] = { $1, $2, $3, $4, $5, $6, $7 };
|
||||||
$$ = newNode(Stmt, yylineno, 7, children, nullValue());
|
$$ = newNode(Stmt, $1->line, 7, children, nullValue());
|
||||||
}
|
}
|
||||||
| WHILE LP Exp RP Stmt {
|
| WHILE LP Exp RP Stmt {
|
||||||
pNode children[5] = { $1, $2, $3, $4, $5 };
|
pNode children[5] = { $1, $2, $3, $4, $5 };
|
||||||
$$ = newNode(Stmt, yylineno, 5, children, nullValue());
|
$$ = newNode(Stmt, $1->line, 5, children, nullValue());
|
||||||
}
|
}
|
||||||
| error SEMI
|
| error SEMI
|
||||||
;
|
;
|
||||||
|
|
@ -187,7 +187,7 @@ Stmt:
|
||||||
DefList:
|
DefList:
|
||||||
Def DefList {
|
Def DefList {
|
||||||
pNode children[2] = { $1, $2 };
|
pNode children[2] = { $1, $2 };
|
||||||
$$ = newNode(DefList, yylineno, 2, children, nullValue());
|
$$ = newNode(DefList, $1->line, 2, children, nullValue());
|
||||||
}
|
}
|
||||||
| {
|
| {
|
||||||
$$ = newNode(DefList, -1, 0, NULL, nullValue());
|
$$ = newNode(DefList, -1, 0, NULL, nullValue());
|
||||||
|
|
@ -196,27 +196,27 @@ DefList:
|
||||||
Def:
|
Def:
|
||||||
Specifier DecList SEMI {
|
Specifier DecList SEMI {
|
||||||
pNode children[3] = { $1, $2, $3 };
|
pNode children[3] = { $1, $2, $3 };
|
||||||
$$ = newNode(Def, yylineno, 3, children, nullValue());
|
$$ = newNode(Def, $1->line, 3, children, nullValue());
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
DecList:
|
DecList:
|
||||||
Dec {
|
Dec {
|
||||||
pNode children[1] = { $1 };
|
pNode children[1] = { $1 };
|
||||||
$$ = newNode(DecList, yylineno, 1, children, nullValue());
|
$$ = newNode(DecList, $1->line, 1, children, nullValue());
|
||||||
}
|
}
|
||||||
| Dec COMMA DecList {
|
| Dec COMMA DecList {
|
||||||
pNode children[3] = { $1, $2, $3 };
|
pNode children[3] = { $1, $2, $3 };
|
||||||
$$ = newNode(DecList, yylineno, 3, children, nullValue());
|
$$ = newNode(DecList, $1->line, 3, children, nullValue());
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
Dec:
|
Dec:
|
||||||
VarDec {
|
VarDec {
|
||||||
pNode children[1] = { $1 };
|
pNode children[1] = { $1 };
|
||||||
$$ = newNode(Dec, yylineno, 1, children, nullValue());
|
$$ = newNode(Dec, $1->line, 1, children, nullValue());
|
||||||
}
|
}
|
||||||
| VarDec ASSIGNOP Exp {
|
| VarDec ASSIGNOP Exp {
|
||||||
pNode children[3] = { $1, $2, $3 };
|
pNode children[3] = { $1, $2, $3 };
|
||||||
$$ = newNode(Dec, yylineno, 3, children, nullValue());
|
$$ = newNode(Dec, $1->line, 3, children, nullValue());
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
@ -224,82 +224,82 @@ Dec:
|
||||||
Exp:
|
Exp:
|
||||||
Exp ASSIGNOP Exp {
|
Exp ASSIGNOP Exp {
|
||||||
pNode children[3] = { $1, $2, $3 };
|
pNode children[3] = { $1, $2, $3 };
|
||||||
$$ = newNode(Exp, yylineno, 3, children, nullValue());
|
$$ = newNode(Exp, $1->line, 3, children, nullValue());
|
||||||
}
|
}
|
||||||
| Exp AND Exp {
|
| Exp AND Exp {
|
||||||
pNode children[3] = { $1, $2, $3 };
|
pNode children[3] = { $1, $2, $3 };
|
||||||
$$ = newNode(Exp, yylineno, 3, children, nullValue());
|
$$ = newNode(Exp, $1->line, 3, children, nullValue());
|
||||||
}
|
}
|
||||||
| Exp OR Exp {
|
| Exp OR Exp {
|
||||||
pNode children[3] = { $1, $2, $3 };
|
pNode children[3] = { $1, $2, $3 };
|
||||||
$$ = newNode(Exp, yylineno, 3, children, nullValue());
|
$$ = newNode(Exp, $1->line, 3, children, nullValue());
|
||||||
}
|
}
|
||||||
| Exp PLUS Exp {
|
| Exp PLUS Exp {
|
||||||
pNode children[3] = { $1, $2, $3 };
|
pNode children[3] = { $1, $2, $3 };
|
||||||
$$ = newNode(Exp, yylineno, 3, children, nullValue());
|
$$ = newNode(Exp, $1->line, 3, children, nullValue());
|
||||||
}
|
}
|
||||||
| Exp MINUS Exp {
|
| Exp MINUS Exp {
|
||||||
pNode children[3] = { $1, $2, $3 };
|
pNode children[3] = { $1, $2, $3 };
|
||||||
$$ = newNode(Exp, yylineno, 3, children, nullValue());
|
$$ = newNode(Exp, $1->line, 3, children, nullValue());
|
||||||
}
|
}
|
||||||
| Exp TIMES Exp {
|
| Exp TIMES Exp {
|
||||||
pNode children[3] = { $1, $2, $3 };
|
pNode children[3] = { $1, $2, $3 };
|
||||||
$$ = newNode(Exp, yylineno, 3, children, nullValue());
|
$$ = newNode(Exp, $1->line, 3, children, nullValue());
|
||||||
}
|
}
|
||||||
| Exp DIV Exp {
|
| Exp DIV Exp {
|
||||||
pNode children[3] = { $1, $2, $3 };
|
pNode children[3] = { $1, $2, $3 };
|
||||||
$$ = newNode(Exp, yylineno, 3, children, nullValue());
|
$$ = newNode(Exp, $1->line, 3, children, nullValue());
|
||||||
}
|
}
|
||||||
| LP Exp RP {
|
| LP Exp RP {
|
||||||
pNode children[3] = { $1, $2, $3 };
|
pNode children[3] = { $1, $2, $3 };
|
||||||
$$ = newNode(Exp, yylineno, 3, children, nullValue());
|
$$ = newNode(Exp, $1->line, 3, children, nullValue());
|
||||||
}
|
}
|
||||||
| MINUS Exp {
|
| MINUS Exp {
|
||||||
pNode children[2] = { $1, $2 };
|
pNode children[2] = { $1, $2 };
|
||||||
$$ = newNode(Exp, yylineno, 2, children, nullValue());
|
$$ = newNode(Exp, $1->line, 2, children, nullValue());
|
||||||
}
|
}
|
||||||
| NOT Exp {
|
| NOT Exp {
|
||||||
pNode children[2] = { $1, $2 };
|
pNode children[2] = { $1, $2 };
|
||||||
$$ = newNode(Exp, yylineno, 2, children, nullValue());
|
$$ = newNode(Exp, $1->line, 2, children, nullValue());
|
||||||
}
|
}
|
||||||
| ID LP Args RP {
|
| ID LP Args RP {
|
||||||
pNode children[4] = { $1, $2, $3, $4 };
|
pNode children[4] = { $1, $2, $3, $4 };
|
||||||
$$ = newNode(Exp, yylineno, 4, children, nullValue());
|
$$ = newNode(Exp, $1->line, 4, children, nullValue());
|
||||||
}
|
}
|
||||||
| ID LP RP {
|
| ID LP RP {
|
||||||
pNode children[3] = { $1, $2, $3 };
|
pNode children[3] = { $1, $2, $3 };
|
||||||
$$ = newNode(Exp, yylineno, 3, children, nullValue());
|
$$ = newNode(Exp, $1->line, 3, children, nullValue());
|
||||||
}
|
}
|
||||||
| Exp LB Exp RB {
|
| Exp LB Exp RB {
|
||||||
pNode children[4] = { $1, $2, $3, $4 };
|
pNode children[4] = { $1, $2, $3, $4 };
|
||||||
$$ = newNode(Exp, yylineno, 4, children, nullValue());
|
$$ = newNode(Exp, $1->line, 4, children, nullValue());
|
||||||
}
|
}
|
||||||
| Exp DOT ID {
|
| Exp DOT ID {
|
||||||
pNode children[3] = { $1, $2, $3 };
|
pNode children[3] = { $1, $2, $3 };
|
||||||
$$ = newNode(Exp, yylineno, 3, children, nullValue());
|
$$ = newNode(Exp, $1->line, 3, children, nullValue());
|
||||||
}
|
}
|
||||||
| ID {
|
| ID {
|
||||||
pNode children[1] = { $1 };
|
pNode children[1] = { $1 };
|
||||||
$$ = newNode(Exp, yylineno, 1, children, nullValue());
|
$$ = newNode(Exp, $1->line, 1, children, nullValue());
|
||||||
}
|
}
|
||||||
| INTEGER {
|
| INTEGER {
|
||||||
pNode children[1] = { $1 };
|
pNode children[1] = { $1 };
|
||||||
$$ = newNode(Exp, yylineno, 1, children, nullValue());
|
$$ = newNode(Exp, $1->line, 1, children, nullValue());
|
||||||
}
|
}
|
||||||
| FLOAT {
|
| FLOAT {
|
||||||
pNode children[1] = { $1 };
|
pNode children[1] = { $1 };
|
||||||
$$ = newNode(Exp, yylineno, 1, children, nullValue());
|
$$ = newNode(Exp, $1->line, 1, children, nullValue());
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
Exp COMMA Args {
|
Exp COMMA Args {
|
||||||
pNode children[3] = { $1, $2, $3 };
|
pNode children[3] = { $1, $2, $3 };
|
||||||
$$ = newNode(Args, yylineno, 3, children, nullValue());
|
$$ = newNode(Args, $1->line, 3, children, nullValue());
|
||||||
}
|
}
|
||||||
| Exp {
|
| Exp {
|
||||||
pNode children[1] = { $1 };
|
pNode children[1] = { $1 };
|
||||||
$$ = newNode(Exp, yylineno, 1, children, nullValue());
|
$$ = newNode(Exp, $1->line, 1, children, nullValue());
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue