mirror of https://github.com/stella-emu/stella.git
Messing with the parser, nothing conclusive yet
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@635 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
parent
c6db07b077
commit
61fb6e631b
|
@ -11,7 +11,7 @@ int main(int argc, char **argv) {
|
||||||
|
|
||||||
#ifndef BM
|
#ifndef BM
|
||||||
YaccParser::parse(argv[1]);
|
YaccParser::parse(argv[1]);
|
||||||
printf("= %d\n", YaccParser::getResult());
|
printf("\n= %d\n", YaccParser::getResult());
|
||||||
#else
|
#else
|
||||||
char buf[10];
|
char buf[10];
|
||||||
|
|
||||||
|
|
|
@ -21,45 +21,48 @@ void yyerror(char *e) {
|
||||||
%left '|' '^'
|
%left '|' '^'
|
||||||
%left '&'
|
%left '&'
|
||||||
%left SHR SHL
|
%left SHR SHL
|
||||||
%nonassoc UMINUS '<' '>' GTE LTE NE EQ
|
%nonassoc '<' '>' GTE LTE NE EQ
|
||||||
|
%nonassoc UMINUS
|
||||||
|
|
||||||
%%
|
%%
|
||||||
statement: expression { result = $1; }
|
statement: expression { result = $1; }
|
||||||
;
|
;
|
||||||
|
|
||||||
expression: expression '+' expression { $$ = $1 + $3; }
|
expression: expression '+' expression { fprintf(stderr, " +"); $$ = $1 + $3; }
|
||||||
| expression '-' expression { $$ = $1 - $3; }
|
| expression '-' expression { fprintf(stderr, " -"); $$ = $1 - $3; }
|
||||||
| expression '*' expression { $$ = $1 * $3; }
|
| expression '*' expression { fprintf(stderr, " *"); $$ = $1 * $3; }
|
||||||
| expression '/' expression
|
| expression '/' expression
|
||||||
{ if($3 == 0)
|
{ fprintf(stderr, " /");
|
||||||
|
if($3 == 0)
|
||||||
yyerror("divide by zero");
|
yyerror("divide by zero");
|
||||||
else
|
else
|
||||||
$$ = $1 / $3;
|
$$ = $1 / $3;
|
||||||
}
|
}
|
||||||
| expression '%' expression
|
| expression '%' expression
|
||||||
{ if($3 == 0)
|
{ fprintf(stderr, " %");
|
||||||
|
if($3 == 0)
|
||||||
yyerror("divide by zero");
|
yyerror("divide by zero");
|
||||||
else
|
else
|
||||||
$$ = $1 % $3;
|
$$ = $1 % $3;
|
||||||
}
|
}
|
||||||
| expression '&' expression { $$ = $1 & $3; }
|
| expression '&' expression { fprintf(stderr, " &"); $$ = $1 & $3; }
|
||||||
| expression '|' expression { $$ = $1 | $3; }
|
| expression '|' expression { fprintf(stderr, " |"); $$ = $1 | $3; }
|
||||||
| expression '^' expression { $$ = $1 ^ $3; }
|
| expression '^' expression { fprintf(stderr, " ^"); $$ = $1 ^ $3; }
|
||||||
| expression '>' expression { $$ = $1 > $3; }
|
| expression '>' expression { fprintf(stderr, " <"); $$ = $1 > $3; }
|
||||||
| expression '<' expression { $$ = $1 < $3; }
|
| expression '<' expression { fprintf(stderr, " >"); $$ = $1 < $3; }
|
||||||
| expression GTE expression { $$ = $1 >= $3; }
|
| expression GTE expression { fprintf(stderr, " >="); $$ = $1 >= $3; }
|
||||||
| expression LTE expression { $$ = $1 <= $3; }
|
| expression LTE expression { fprintf(stderr, " <="); $$ = $1 <= $3; }
|
||||||
| expression NE expression { $$ = $1 != $3; }
|
| expression NE expression { fprintf(stderr, " !="); $$ = $1 != $3; }
|
||||||
| expression EQ expression { $$ = $1 == $3; }
|
| expression EQ expression { fprintf(stderr, " =="); $$ = $1 == $3; }
|
||||||
| expression SHR expression { $$ = $1 >> $3; }
|
| expression SHR expression { fprintf(stderr, " >>"); $$ = $1 >> $3; }
|
||||||
| expression SHL expression { $$ = $1 << $3; }
|
| expression SHL expression { fprintf(stderr, " >>"); $$ = $1 << $3; }
|
||||||
| expression LOG_OR expression { $$ = $1 || $3; }
|
| expression LOG_OR expression { fprintf(stderr, " ||"); $$ = $1 || $3; }
|
||||||
| expression LOG_AND expression { $$ = $1 && $3; }
|
| expression LOG_AND expression { fprintf(stderr, " &&"); $$ = $1 && $3; }
|
||||||
| '-' expression %prec UMINUS { $$ = -$2; }
|
| '-' expression %prec UMINUS { fprintf(stderr, " U-"); $$ = -$2; }
|
||||||
| '~' expression %prec UMINUS { $$ = (~$2) & 0xffff; }
|
| '~' expression %prec UMINUS { fprintf(stderr, " ~"); $$ = (~$2) & 0xffff; }
|
||||||
| '<' expression %prec UMINUS { $$ = $2 & 0xff; }
|
| '<' expression { fprintf(stderr, " <"); $$ = $2 & 0xff; }
|
||||||
| '>' expression %prec UMINUS { $$ = ($2 >> 8) & 0xff; }
|
| '>' expression { fprintf(stderr, " >"); $$ = ($2 >> 8) & 0xff; }
|
||||||
| '(' expression ')' { $$ = $2; }
|
| '(' expression ')' { fprintf(stderr, " ()"); $$ = $2; }
|
||||||
| NUMBER
|
| NUMBER { fprintf(stderr, " %d", $1); }
|
||||||
;
|
;
|
||||||
%%
|
%%
|
||||||
|
|
|
@ -8,11 +8,11 @@
|
||||||
# define LOG_AND 259
|
# define LOG_AND 259
|
||||||
# define SHR 260
|
# define SHR 260
|
||||||
# define SHL 261
|
# define SHL 261
|
||||||
# define UMINUS 262
|
# define GTE 262
|
||||||
# define GTE 263
|
# define LTE 263
|
||||||
# define LTE 264
|
# define NE 264
|
||||||
# define NE 265
|
# define EQ 265
|
||||||
# define EQ 266
|
# define UMINUS 266
|
||||||
|
|
||||||
#line 1 "stella.y"
|
#line 1 "stella.y"
|
||||||
|
|
||||||
|
@ -54,7 +54,7 @@ static const char yytranslate[] =
|
||||||
2, 2, 2, 2, 2, 2, 2, 8, 13, 2,
|
2, 2, 2, 2, 2, 2, 2, 8, 13, 2,
|
||||||
24, 25, 6, 5, 2, 4, 2, 7, 2, 2,
|
24, 25, 6, 5, 2, 4, 2, 7, 2, 2,
|
||||||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
||||||
17, 2, 18, 2, 2, 2, 2, 2, 2, 2,
|
16, 2, 17, 2, 2, 2, 2, 2, 2, 2,
|
||||||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
||||||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
||||||
2, 2, 2, 2, 12, 2, 2, 2, 2, 2,
|
2, 2, 2, 2, 12, 2, 2, 2, 2, 2,
|
||||||
|
@ -74,7 +74,7 @@ static const char yytranslate[] =
|
||||||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
||||||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
||||||
2, 2, 2, 2, 2, 2, 1, 3, 9, 10,
|
2, 2, 2, 2, 2, 2, 1, 3, 9, 10,
|
||||||
14, 15, 16, 19, 20, 21, 22
|
14, 15, 18, 19, 20, 21, 22
|
||||||
};
|
};
|
||||||
|
|
||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
|
@ -89,12 +89,12 @@ static const short yyrhs[] =
|
||||||
27, 0, 27, 5, 27, 0, 27, 4, 27, 0,
|
27, 0, 27, 5, 27, 0, 27, 4, 27, 0,
|
||||||
27, 6, 27, 0, 27, 7, 27, 0, 27, 8,
|
27, 6, 27, 0, 27, 7, 27, 0, 27, 8,
|
||||||
27, 0, 27, 13, 27, 0, 27, 11, 27, 0,
|
27, 0, 27, 13, 27, 0, 27, 11, 27, 0,
|
||||||
27, 12, 27, 0, 27, 18, 27, 0, 27, 17,
|
27, 12, 27, 0, 27, 17, 27, 0, 27, 16,
|
||||||
27, 0, 27, 19, 27, 0, 27, 20, 27, 0,
|
27, 0, 27, 18, 27, 0, 27, 19, 27, 0,
|
||||||
27, 21, 27, 0, 27, 22, 27, 0, 27, 14,
|
27, 20, 27, 0, 27, 21, 27, 0, 27, 14,
|
||||||
27, 0, 27, 15, 27, 0, 27, 9, 27, 0,
|
27, 0, 27, 15, 27, 0, 27, 9, 27, 0,
|
||||||
27, 10, 27, 0, 4, 27, 0, 23, 27, 0,
|
27, 10, 27, 0, 4, 27, 0, 23, 27, 0,
|
||||||
17, 27, 0, 18, 27, 0, 24, 27, 25, 0,
|
16, 27, 0, 17, 27, 0, 24, 27, 25, 0,
|
||||||
3, 0
|
3, 0
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -104,9 +104,9 @@ static const short yyrhs[] =
|
||||||
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
|
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
|
||||||
static const short yyrline[] =
|
static const short yyrline[] =
|
||||||
{
|
{
|
||||||
0, 27, 30, 31, 32, 33, 39, 45, 46, 47,
|
0, 28, 31, 32, 33, 34, 41, 48, 49, 50,
|
||||||
48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
|
51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
|
||||||
58, 59, 60, 61, 62, 63
|
61, 62, 63, 64, 65, 66
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -117,8 +117,8 @@ static const short yyrline[] =
|
||||||
static const char *const yytname[] =
|
static const char *const yytname[] =
|
||||||
{
|
{
|
||||||
"$", "error", "$undefined.", "NUMBER", "'-'", "'+'", "'*'", "'/'", "'%'",
|
"$", "error", "$undefined.", "NUMBER", "'-'", "'+'", "'*'", "'/'", "'%'",
|
||||||
"LOG_OR", "LOG_AND", "'|'", "'^'", "'&'", "SHR", "SHL", "UMINUS", "'<'",
|
"LOG_OR", "LOG_AND", "'|'", "'^'", "'&'", "SHR", "SHL", "'<'", "'>'",
|
||||||
"'>'", "GTE", "LTE", "NE", "EQ", "'~'", "'('", "')'", "statement",
|
"GTE", "LTE", "NE", "EQ", "UMINUS", "'~'", "'('", "')'", "statement",
|
||||||
"expression", 0
|
"expression", 0
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
@ -159,12 +159,12 @@ static const short yydefgoto[] =
|
||||||
|
|
||||||
static const short yypact[] =
|
static const short yypact[] =
|
||||||
{
|
{
|
||||||
45,-32768, 45, 45, 45, 45, 45, 66, -12, -12,
|
44,-32768, 44, 44, 44, 44, 44, 65,-32768, -11,
|
||||||
-12, -12, 25, 45, 45, 45, 45, 45, 45, 45,
|
-11,-32768, 25, 44, 44, 44, 44, 44, 44, 44,
|
||||||
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
|
44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
|
||||||
45,-32768, 83, 83, 97, 97, 97, 110, 122, 38,
|
44,-32768, 81, 81, 94, 94, 94, 106, 117, 38,
|
||||||
38, 131, 137, 137, -12, -12, -12, -12, -12, -12,
|
38, 125, 131, 131, -11, -11, -11, -11, -11, -11,
|
||||||
41, 54,-32768
|
49, 62,-32768
|
||||||
};
|
};
|
||||||
|
|
||||||
static const short yypgoto[] =
|
static const short yypgoto[] =
|
||||||
|
@ -173,7 +173,7 @@ static const short yypgoto[] =
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
#define YYLAST 159
|
#define YYLAST 152
|
||||||
|
|
||||||
|
|
||||||
static const short yytable[] =
|
static const short yytable[] =
|
||||||
|
@ -182,38 +182,38 @@ static const short yytable[] =
|
||||||
-32768, 32, 33, 34, 35, 36, 37, 38, 39, 40,
|
-32768, 32, 33, 34, 35, 36, 37, 38, 39, 40,
|
||||||
41, 42, 43, 44, 45, 46, 47, 48, 49, 13,
|
41, 42, 43, 44, 45, 46, 47, 48, 49, 13,
|
||||||
14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
|
14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
|
||||||
24, 51, 25, 26, 27, 28, 29, 30, 1, 2,
|
24, 25, 26, 27, 28, 29, 30, 1, 2, 51,
|
||||||
31, 22, 23, 24, 52, 25, 26, 27, 28, 29,
|
31, 22, 23, 24, 25, 26, 27, 28, 29, 30,
|
||||||
30, 0, 3, 4, 0, 0, 0, 0, 5, 6,
|
3, 4, 52, 0, 0, 0, 0, 5, 6, 13,
|
||||||
13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
|
14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
|
||||||
23, 24, 0, 25, 26, 27, 28, 29, 30, 15,
|
24, 25, 26, 27, 28, 29, 30, 15, 16, 17,
|
||||||
16, 17, 18, 19, 20, 21, 22, 23, 24, 0,
|
18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
|
||||||
25, 26, 27, 28, 29, 30, 18, 19, 20, 21,
|
28, 29, 30, 18, 19, 20, 21, 22, 23, 24,
|
||||||
22, 23, 24, 0, 25, 26, 27, 28, 29, 30,
|
25, 26, 27, 28, 29, 30, 19, 20, 21, 22,
|
||||||
19, 20, 21, 22, 23, 24, 0, 25, 26, 27,
|
23, 24, 25, 26, 27, 28, 29, 30, 20, 21,
|
||||||
28, 29, 30, 20, 21, 22, 23, 24, 0, 25,
|
22, 23, 24, 25, 26, 27, 28, 29, 30, 23,
|
||||||
26, 27, 28, 29, 30, 23, 24, 0, 25, 26,
|
24, 25, 26, 27, 28, 29, 30, 25, 26, 27,
|
||||||
27, 28, 29, 30, 25, 26, 27, 28, 29, 30
|
28, 29, 30
|
||||||
};
|
};
|
||||||
|
|
||||||
static const short yycheck[] =
|
static const short yycheck[] =
|
||||||
{
|
{
|
||||||
2, 3, 4, 5, 6, 17, 18, 19, 20, 21,
|
2, 3, 4, 5, 6, 16, 17, 18, 19, 20,
|
||||||
22, 13, 14, 15, 16, 17, 18, 19, 20, 21,
|
21, 13, 14, 15, 16, 17, 18, 19, 20, 21,
|
||||||
22, 23, 24, 25, 26, 27, 28, 29, 30, 4,
|
22, 23, 24, 25, 26, 27, 28, 29, 30, 4,
|
||||||
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
|
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
|
||||||
15, 0, 17, 18, 19, 20, 21, 22, 3, 4,
|
15, 16, 17, 18, 19, 20, 21, 3, 4, 0,
|
||||||
25, 13, 14, 15, 0, 17, 18, 19, 20, 21,
|
25, 13, 14, 15, 16, 17, 18, 19, 20, 21,
|
||||||
22, -1, 17, 18, -1, -1, -1, -1, 23, 24,
|
16, 17, 0, -1, -1, -1, -1, 23, 24, 4,
|
||||||
4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
|
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
|
||||||
14, 15, -1, 17, 18, 19, 20, 21, 22, 6,
|
15, 16, 17, 18, 19, 20, 21, 6, 7, 8,
|
||||||
7, 8, 9, 10, 11, 12, 13, 14, 15, -1,
|
9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
|
||||||
17, 18, 19, 20, 21, 22, 9, 10, 11, 12,
|
19, 20, 21, 9, 10, 11, 12, 13, 14, 15,
|
||||||
13, 14, 15, -1, 17, 18, 19, 20, 21, 22,
|
16, 17, 18, 19, 20, 21, 10, 11, 12, 13,
|
||||||
10, 11, 12, 13, 14, 15, -1, 17, 18, 19,
|
14, 15, 16, 17, 18, 19, 20, 21, 11, 12,
|
||||||
20, 21, 22, 11, 12, 13, 14, 15, -1, 17,
|
13, 14, 15, 16, 17, 18, 19, 20, 21, 14,
|
||||||
18, 19, 20, 21, 22, 14, 15, -1, 17, 18,
|
15, 16, 17, 18, 19, 20, 21, 16, 17, 18,
|
||||||
19, 20, 21, 22, 17, 18, 19, 20, 21, 22
|
19, 20, 21
|
||||||
};
|
};
|
||||||
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
|
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
|
||||||
#line 3 "/usr/share/bison/bison.simple"
|
#line 3 "/usr/share/bison/bison.simple"
|
||||||
|
@ -923,108 +923,114 @@ yyreduce:
|
||||||
switch (yyn) {
|
switch (yyn) {
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
#line 27 "stella.y"
|
#line 28 "stella.y"
|
||||||
{ result = yyvsp[0]; }
|
{ result = yyvsp[0]; }
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
#line 30 "stella.y"
|
#line 31 "stella.y"
|
||||||
{ yyval = yyvsp[-2] + yyvsp[0]; }
|
{ fprintf(stderr, " +"); yyval = yyvsp[-2] + yyvsp[0]; }
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
#line 31 "stella.y"
|
#line 32 "stella.y"
|
||||||
{ yyval = yyvsp[-2] - yyvsp[0]; }
|
{ fprintf(stderr, " -"); yyval = yyvsp[-2] - yyvsp[0]; }
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
#line 32 "stella.y"
|
#line 33 "stella.y"
|
||||||
{ yyval = yyvsp[-2] * yyvsp[0]; }
|
{ fprintf(stderr, " *"); yyval = yyvsp[-2] * yyvsp[0]; }
|
||||||
break;
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
#line 34 "stella.y"
|
#line 35 "stella.y"
|
||||||
{ if(yyvsp[0] == 0)
|
{ fprintf(stderr, " /");
|
||||||
|
if(yyvsp[0] == 0)
|
||||||
yyerror("divide by zero");
|
yyerror("divide by zero");
|
||||||
else
|
else
|
||||||
yyval = yyvsp[-2] / yyvsp[0];
|
yyval = yyvsp[-2] / yyvsp[0];
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 6:
|
case 6:
|
||||||
#line 40 "stella.y"
|
#line 42 "stella.y"
|
||||||
{ if(yyvsp[0] == 0)
|
{ fprintf(stderr, " %");
|
||||||
|
if(yyvsp[0] == 0)
|
||||||
yyerror("divide by zero");
|
yyerror("divide by zero");
|
||||||
else
|
else
|
||||||
yyval = yyvsp[-2] % yyvsp[0];
|
yyval = yyvsp[-2] % yyvsp[0];
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 7:
|
case 7:
|
||||||
#line 45 "stella.y"
|
#line 48 "stella.y"
|
||||||
{ yyval = yyvsp[-2] & yyvsp[0]; }
|
{ fprintf(stderr, " &"); yyval = yyvsp[-2] & yyvsp[0]; }
|
||||||
break;
|
break;
|
||||||
case 8:
|
case 8:
|
||||||
#line 46 "stella.y"
|
#line 49 "stella.y"
|
||||||
{ yyval = yyvsp[-2] | yyvsp[0]; }
|
{ fprintf(stderr, " |"); yyval = yyvsp[-2] | yyvsp[0]; }
|
||||||
break;
|
break;
|
||||||
case 9:
|
case 9:
|
||||||
#line 47 "stella.y"
|
#line 50 "stella.y"
|
||||||
{ yyval = yyvsp[-2] ^ yyvsp[0]; }
|
{ fprintf(stderr, " ^"); yyval = yyvsp[-2] ^ yyvsp[0]; }
|
||||||
break;
|
break;
|
||||||
case 10:
|
case 10:
|
||||||
#line 48 "stella.y"
|
#line 51 "stella.y"
|
||||||
{ yyval = yyvsp[-2] > yyvsp[0]; }
|
{ fprintf(stderr, " <"); yyval = yyvsp[-2] > yyvsp[0]; }
|
||||||
break;
|
break;
|
||||||
case 11:
|
case 11:
|
||||||
#line 49 "stella.y"
|
#line 52 "stella.y"
|
||||||
{ yyval = yyvsp[-2] < yyvsp[0]; }
|
{ fprintf(stderr, " >"); yyval = yyvsp[-2] < yyvsp[0]; }
|
||||||
break;
|
break;
|
||||||
case 12:
|
case 12:
|
||||||
#line 50 "stella.y"
|
#line 53 "stella.y"
|
||||||
{ yyval = yyvsp[-2] >= yyvsp[0]; }
|
{ fprintf(stderr, " >="); yyval = yyvsp[-2] >= yyvsp[0]; }
|
||||||
break;
|
break;
|
||||||
case 13:
|
case 13:
|
||||||
#line 51 "stella.y"
|
#line 54 "stella.y"
|
||||||
{ yyval = yyvsp[-2] <= yyvsp[0]; }
|
{ fprintf(stderr, " <="); yyval = yyvsp[-2] <= yyvsp[0]; }
|
||||||
break;
|
break;
|
||||||
case 14:
|
case 14:
|
||||||
#line 52 "stella.y"
|
#line 55 "stella.y"
|
||||||
{ yyval = yyvsp[-2] != yyvsp[0]; }
|
{ fprintf(stderr, " !="); yyval = yyvsp[-2] != yyvsp[0]; }
|
||||||
break;
|
break;
|
||||||
case 15:
|
case 15:
|
||||||
#line 53 "stella.y"
|
#line 56 "stella.y"
|
||||||
{ yyval = yyvsp[-2] == yyvsp[0]; }
|
{ fprintf(stderr, " =="); yyval = yyvsp[-2] == yyvsp[0]; }
|
||||||
break;
|
break;
|
||||||
case 16:
|
case 16:
|
||||||
#line 54 "stella.y"
|
#line 57 "stella.y"
|
||||||
{ yyval = yyvsp[-2] >> yyvsp[0]; }
|
{ fprintf(stderr, " >>"); yyval = yyvsp[-2] >> yyvsp[0]; }
|
||||||
break;
|
break;
|
||||||
case 17:
|
case 17:
|
||||||
#line 55 "stella.y"
|
#line 58 "stella.y"
|
||||||
{ yyval = yyvsp[-2] << yyvsp[0]; }
|
{ fprintf(stderr, " >>"); yyval = yyvsp[-2] << yyvsp[0]; }
|
||||||
break;
|
break;
|
||||||
case 18:
|
case 18:
|
||||||
#line 56 "stella.y"
|
#line 59 "stella.y"
|
||||||
{ yyval = yyvsp[-2] || yyvsp[0]; }
|
{ fprintf(stderr, " ||"); yyval = yyvsp[-2] || yyvsp[0]; }
|
||||||
break;
|
break;
|
||||||
case 19:
|
case 19:
|
||||||
#line 57 "stella.y"
|
#line 60 "stella.y"
|
||||||
{ yyval = yyvsp[-2] && yyvsp[0]; }
|
{ fprintf(stderr, " &&"); yyval = yyvsp[-2] && yyvsp[0]; }
|
||||||
break;
|
break;
|
||||||
case 20:
|
case 20:
|
||||||
#line 58 "stella.y"
|
#line 61 "stella.y"
|
||||||
{ yyval = -yyvsp[0]; }
|
{ fprintf(stderr, " U-"); yyval = -yyvsp[0]; }
|
||||||
break;
|
break;
|
||||||
case 21:
|
case 21:
|
||||||
#line 59 "stella.y"
|
#line 62 "stella.y"
|
||||||
{ yyval = (~yyvsp[0]) & 0xffff; }
|
{ fprintf(stderr, " ~"); yyval = (~yyvsp[0]) & 0xffff; }
|
||||||
break;
|
break;
|
||||||
case 22:
|
case 22:
|
||||||
#line 60 "stella.y"
|
#line 63 "stella.y"
|
||||||
{ yyval = yyvsp[0] & 0xff; }
|
{ fprintf(stderr, " <"); yyval = yyvsp[0] & 0xff; }
|
||||||
break;
|
break;
|
||||||
case 23:
|
case 23:
|
||||||
#line 61 "stella.y"
|
#line 64 "stella.y"
|
||||||
{ yyval = (yyvsp[0] >> 8) & 0xff; }
|
{ fprintf(stderr, " >"); yyval = (yyvsp[0] >> 8) & 0xff; }
|
||||||
break;
|
break;
|
||||||
case 24:
|
case 24:
|
||||||
#line 62 "stella.y"
|
#line 65 "stella.y"
|
||||||
{ yyval = yyvsp[-1]; }
|
{ fprintf(stderr, " ()"); yyval = yyvsp[-1]; }
|
||||||
|
break;
|
||||||
|
case 25:
|
||||||
|
#line 66 "stella.y"
|
||||||
|
{ fprintf(stderr, " %d", yyvsp[0]); }
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1259,5 +1265,5 @@ yyreturn:
|
||||||
#endif
|
#endif
|
||||||
return yyresult;
|
return yyresult;
|
||||||
}
|
}
|
||||||
#line 65 "stella.y"
|
#line 68 "stella.y"
|
||||||
|
|
||||||
|
|
|
@ -10,11 +10,11 @@
|
||||||
# define LOG_AND 259
|
# define LOG_AND 259
|
||||||
# define SHR 260
|
# define SHR 260
|
||||||
# define SHL 261
|
# define SHL 261
|
||||||
# define UMINUS 262
|
# define GTE 262
|
||||||
# define GTE 263
|
# define LTE 263
|
||||||
# define LTE 264
|
# define NE 264
|
||||||
# define NE 265
|
# define EQ 265
|
||||||
# define EQ 266
|
# define UMINUS 266
|
||||||
|
|
||||||
|
|
||||||
extern YYSTYPE yylval;
|
extern YYSTYPE yylval;
|
||||||
|
|
Loading…
Reference in New Issue