@@ -38,9 +38,6 @@ extern int pcodeerror(const char *str );
38
38
SpaceSymbol *spacesym;
39
39
UserOpSymbol *useropsym;
40
40
LabelSymbol *labelsym;
41
- StartSymbol *startsym;
42
- EndSymbol *endsym;
43
- Next2Symbol *next2sym;
44
41
OperandSymbol *operandsym;
45
42
VarnodeSymbol *varsym;
46
43
SpecificSymbol *specsym;
@@ -77,9 +74,7 @@ extern int pcodeerror(const char *str );
77
74
%token <useropsym> USEROPSYM
78
75
%token <varsym> VARSYM
79
76
%token <operandsym> OPERANDSYM
80
- %token <startsym> STARTSYM
81
- %token <endsym> ENDSYM
82
- %token <next2sym> NEXT2SYM
77
+ %token <specsym> JUMPSYM
83
78
%token <labelsym> LABELSYM
84
79
85
80
%type <param> paramlist
@@ -197,9 +192,7 @@ sizedstar: '*' '[' SPACESYM ']' ':' INTEGER { $$ = new StarQuality; $$->size = *
197
192
| ' *' ' :' INTEGER { $$ = new StarQuality; $$ ->size = *$3 ; delete $3 ; $$ ->id=ConstTpl(pcode->getDefaultSpace ()); }
198
193
| ' *' { $$ = new StarQuality; $$ ->size = 0 ; $$ ->id=ConstTpl(pcode->getDefaultSpace ()); }
199
194
;
200
- jumpdest : STARTSYM { VarnodeTpl *sym = $1 ->getVarnode (); $$ = new VarnodeTpl(ConstTpl(ConstTpl::j_curspace),sym->getOffset (),ConstTpl(ConstTpl::j_curspace_size)); delete sym; }
201
- | ENDSYM { VarnodeTpl *sym = $1 ->getVarnode (); $$ = new VarnodeTpl(ConstTpl(ConstTpl::j_curspace),sym->getOffset (),ConstTpl(ConstTpl::j_curspace_size)); delete sym; }
202
- | NEXT2SYM { VarnodeTpl *sym = $1 ->getVarnode (); $$ = new VarnodeTpl(ConstTpl(ConstTpl::j_curspace),sym->getOffset (),ConstTpl(ConstTpl::j_curspace_size)); delete sym; }
195
+ jumpdest : JUMPSYM { VarnodeTpl *sym = $1 ->getVarnode (); $$ = new VarnodeTpl(ConstTpl(ConstTpl::j_curspace),sym->getOffset (),ConstTpl(ConstTpl::j_curspace_size)); delete sym; }
203
196
| INTEGER { $$ = new VarnodeTpl(ConstTpl(ConstTpl::j_curspace),ConstTpl(ConstTpl::real,*$1 ),ConstTpl(ConstTpl::j_curspace_size)); delete $1 ; }
204
197
| BADINTEGER { $$ = new VarnodeTpl(ConstTpl(ConstTpl::j_curspace),ConstTpl(ConstTpl::real,0 ),ConstTpl(ConstTpl::j_curspace_size)); yyerror (" Parsed integer is too big (overflow)" ); }
205
198
| INTEGER ' [' SPACESYM ' ]' { AddrSpace *spc = $3 ->getSpace (); $$ = new VarnodeTpl(ConstTpl(spc),ConstTpl(ConstTpl::real,*$1 ),ConstTpl(ConstTpl::real,spc->getAddrSize ())); delete $1 ; }
@@ -224,9 +217,7 @@ label: '<' LABELSYM '>' { $$ = $2; }
224
217
;
225
218
specificsymbol: VARSYM { $$ = $1 ; }
226
219
| OPERANDSYM { $$ = $1 ; }
227
- | STARTSYM { $$ = $1 ; }
228
- | ENDSYM { $$ = $1 ; }
229
- | NEXT2SYM { $$ = $1 ; }
220
+ | JUMPSYM { $$ = $1 ; }
230
221
;
231
222
paramlist: /* EMPTY */ { $$ = new vector<ExprTree *>; }
232
223
| expr { $$ = new vector<ExprTree *>; $$->push_back ($1 ); }
@@ -750,14 +741,12 @@ int4 PcodeSnippet::lex(void)
750
741
yylval.operandsym = (OperandSymbol *)sym;
751
742
return OPERANDSYM;
752
743
case SleighSymbol::start_symbol:
753
- yylval.startsym = (StartSymbol *)sym;
754
- return STARTSYM;
755
744
case SleighSymbol::end_symbol:
756
- yylval. endsym = (EndSymbol *)sym;
757
- return ENDSYM;
758
- case SleighSymbol::next2_symbol :
759
- yylval.next2sym = (Next2Symbol *)sym;
760
- return NEXT2SYM ;
745
+ case SleighSymbol::next2_symbol:
746
+ case SleighSymbol::flowdest_symbol:
747
+ case SleighSymbol::flowref_symbol :
748
+ yylval.specsym = (SpecificSymbol *)sym;
749
+ return JUMPSYM ;
761
750
case SleighSymbol::label_symbol:
762
751
yylval.labelsym = (LabelSymbol *)sym;
763
752
return LABELSYM;
0 commit comments