From af494d7f7de55c13b11918517ca31aceb9f2c915 Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de> Date: Sat, 10 Oct 2015 13:25:31 +0200 Subject: [PATCH] simplify; keep nodes out of lexer --- pub/lib/xax_lex.lpp | 12 +++--------- pub/lib/xax_yacc.ypp | 6 ++++-- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/pub/lib/xax_lex.lpp b/pub/lib/xax_lex.lpp index 60956f46..fde9181b 100644 --- a/pub/lib/xax_lex.lpp +++ b/pub/lib/xax_lex.lpp @@ -28,8 +28,6 @@ #include "obj.hpp" #include "var.hpp" #include "expr.hpp" -#include "coord.hpp" -#include "node.hpp" #include "xax_yacc.hpp" // xaxtype must also be declared in xax_yacc @@ -76,16 +74,13 @@ inf { return NUM; } k { - xaxlval->t = RNode( new CNodeIdxK() ); - return IDX; } + return xaxtext[0]; } j { - xaxlval->t = RNode( new CNodeIdxJ() ); - return IDX; } + return xaxtext[0]; } i { - xaxlval->t = RNode( new CNodeIdxI() ); - return IDX; } + return xaxtext[0]; } [xy]|dy|n[ijk]|([zpr]{DIG}+)|outcome|chi2|R2 { xaxlval->v = PVar( new CVar(xaxtext) ); @@ -153,7 +148,6 @@ e { [ \t\n]+ /* eat up whitespace */ "!"|"-"|"+"|"*"|"/"|"%"|"^"|"="|"("|")"|"["|"]"|","|"?"|":"|"{"|"}"|";" { - // printf( "lex: Special character: %s\n", xaxtext ); return xaxtext[0]; } . { diff --git a/pub/lib/xax_yacc.ypp b/pub/lib/xax_yacc.ypp index 85c37502..7cef4ac3 100644 --- a/pub/lib/xax_yacc.ypp +++ b/pub/lib/xax_yacc.ypp @@ -74,7 +74,7 @@ int xaxlex(YYSTYPE *xaxlval); // created by lex.l %left BOP_PM /* error */ /* other tokens created by xax_lex.lpp: */ -%token INT NUM STR IDX REF DUMMY CEV FNCT GENI CVIN END CONV PCONV DIRAC IDF +%token INT NUM STR REF DUMMY CEV FNCT GENI CVIN END CONV PCONV DIRAC IDF /* Grammar follows */ @@ -106,7 +106,9 @@ exp: /* scalar expression */ INT { $$.t = RNode( new CNodeVal( $1.i ) ); } | NUM { $$.t = RNode( new CNodeVal( $1.d ) ); } | STR { $$.t = RNode( new CNodeVal( $1.o ) ); } - | IDX { $$.t = $1.t; } + | 'k' { $$.t = RNode( new CNodeIdxK() ); } + | 'j' { $$.t = RNode( new CNodeIdxJ() ); } + | 'i' { $$.t = RNode( new CNodeIdxI() ); } | REF bra { $$.t = RNode( new CNodeIva( $1.v, $2.r ) ); } | IDF { $$.t = RNode( new CNodeIdf( (PCAST<const CObjStr>($1.o))->to_s() ) ); } | DUMMY { $$.t = RNode( new CNodeDummy() ); } -- GitLab