aboutsummaryrefslogtreecommitdiff
path: root/tools/bison++/Example/MyCompiler.cc
blob: 3c554bc40f0f8bc5784dc4e3de7fb5c1f64a4eba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include "MyParser.h"
#define YY_DECL int yyFlexLexer::yylex(YY_MyParser_STYPE *val)
#include "FlexLexer.h"
#include <stdio.h>

class MyCompiler : public MyParser
{
private:
  yyFlexLexer theScanner;
 public:
  virtual int yylex();
  virtual void yyerror(char *m);
  MyCompiler(){;}
};

int MyCompiler::yylex()
{
 return theScanner.yylex(&yylval);
}

void MyCompiler::yyerror(char *m)
{ fprintf(stderr,"%d: %s at token '%s'\n",yylloc.first_line, m,yylloc.text);
}

int main(int argc,char **argv)
{
 MyCompiler aCompiler;
 int result=aCompiler.yyparse();
 printf("Resultat Parsing=%s\n",result?"Erreur":"OK");
 return 0;
};