diff --git a/src/frontend/parse-bison.c b/src/frontend/parse-bison.c index 8c2e95784..134d4a607 100644 --- a/src/frontend/parse-bison.c +++ b/src/frontend/parse-bison.c @@ -77,18 +77,22 @@ #line 1 "parse-bison.y" /* - * (compile (concat "bison " (file-relative-name buffer-file-name))) + * (compile (concat "bison -ydo parse-bison.c " (file-relative-name buffer-file-name))) */ + #include "ngspice/ngspice.h" + #include "ngspice/fteparse.h" + #include #include - struct PPltype { - const char *start, *stop; - }; - # define YYLTYPE struct PPltype + #include "parse.h" + #include "parse-bison.h" + #include "parse-bison-y.h" + + # define YYLLOC_DEFAULT(Current, Rhs, N) \ do \ if (N) { \ @@ -99,22 +103,11 @@ } \ while (0) - #include "parse-bison.h" - - extern int PPlex (YYSTYPE *lvalp, struct PPltype *llocp, char **line); - extern int PPdebug; - static void PPerror (YYLTYPE *locp, char **line, struct pnode **retval, char const *); - #if defined (_MSC_VER) - # define __func__ __FUNCTION__ /* __func__ is C99, but MSC can't */ - #endif - - - /* Line 268 of yacc.c */ -#line 118 "parse-bison.c" +#line 111 "parse-bison.c" /* Enabling traces. */ #ifndef YYDEBUG @@ -149,6 +142,14 @@ NEG = 263 }; #endif +/* Tokens. */ +#define TOK_NUM 258 +#define TOK_STR 259 +#define TOK_LE 260 +#define TOK_GE 261 +#define TOK_NE 262 +#define NEG 263 + @@ -157,7 +158,7 @@ typedef union YYSTYPE { /* Line 293 of yacc.c */ -#line 53 "parse-bison.y" +#line 45 "parse-bison.y" double num; const char *str; @@ -166,7 +167,7 @@ typedef union YYSTYPE /* Line 293 of yacc.c */ -#line 170 "parse-bison.c" +#line 171 "parse-bison.c" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ @@ -191,7 +192,7 @@ typedef struct YYLTYPE /* Line 343 of yacc.c */ -#line 195 "parse-bison.c" +#line 196 "parse-bison.c" #ifdef short # undef short @@ -492,10 +493,10 @@ static const yytype_int8 yyrhs[] = /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint8 yyrline[] = { - 0, 116, 116, 117, 121, 122, 126, 133, 134, 136, - 137, 138, 139, 140, 141, 142, 144, 146, 147, 149, - 155, 156, 157, 158, 159, 160, 162, 163, 165, 166, - 167 + 0, 108, 108, 109, 113, 114, 118, 125, 126, 128, + 129, 130, 131, 132, 133, 134, 136, 138, 139, 141, + 147, 148, 149, 150, 151, 152, 154, 155, 157, 158, + 159 }; #endif @@ -1364,14 +1365,14 @@ YYLTYPE yylloc; /* User initialization code. */ /* Line 1590 of yacc.c */ -#line 104 "parse-bison.y" +#line 96 "parse-bison.y" { yylval.num = 0.0; yylloc.start = yylloc.stop = NULL; } /* Line 1590 of yacc.c */ -#line 1375 "parse-bison.c" +#line 1376 "parse-bison.c" yyvsp[0] = yylval; goto yysetstate; @@ -1559,28 +1560,28 @@ yyreduce: case 2: /* Line 1806 of yacc.c */ -#line 116 "parse-bison.y" +#line 108 "parse-bison.y" { *retval = NULL; } break; case 3: /* Line 1806 of yacc.c */ -#line 117 "parse-bison.y" +#line 109 "parse-bison.y" { *retval = (yyvsp[(1) - (1)].pnode); } break; case 5: /* Line 1806 of yacc.c */ -#line 122 "parse-bison.y" +#line 114 "parse-bison.y" { (yyvsp[(1) - (2)].pnode)->pn_next = (yyvsp[(2) - (2)].pnode); (yyvsp[(2) - (2)].pnode)->pn_use ++; (yyval.pnode) = (yyvsp[(1) - (2)].pnode); } break; case 6: /* Line 1806 of yacc.c */ -#line 126 "parse-bison.y" +#line 118 "parse-bison.y" { (yyvsp[(1) - (1)].pnode)->pn_name = copy_substring((yylsp[(1) - (1)]).start, (yylsp[(1) - (1)]).stop); (yyval.pnode) = (yyvsp[(1) - (1)].pnode); @@ -1590,92 +1591,92 @@ yyreduce: case 7: /* Line 1806 of yacc.c */ -#line 133 "parse-bison.y" - { (yyval.pnode) = mknnode((yyvsp[(1) - (1)].num)); } +#line 125 "parse-bison.y" + { (yyval.pnode) = PP_mknnode((yyvsp[(1) - (1)].num)); } break; case 8: /* Line 1806 of yacc.c */ -#line 134 "parse-bison.y" - { (yyval.pnode) = mksnode((yyvsp[(1) - (1)].str)); txfree((void*)(yyvsp[(1) - (1)].str)); } +#line 126 "parse-bison.y" + { (yyval.pnode) = PP_mksnode((yyvsp[(1) - (1)].str)); txfree((void*)(yyvsp[(1) - (1)].str)); } break; case 9: /* Line 1806 of yacc.c */ -#line 136 "parse-bison.y" - { (yyval.pnode) = mkbnode(PT_OP_COMMA, (yyvsp[(1) - (3)].pnode), (yyvsp[(3) - (3)].pnode)); } +#line 128 "parse-bison.y" + { (yyval.pnode) = PP_mkbnode(PT_OP_COMMA, (yyvsp[(1) - (3)].pnode), (yyvsp[(3) - (3)].pnode)); } break; case 10: /* Line 1806 of yacc.c */ -#line 137 "parse-bison.y" - { (yyval.pnode) = mkbnode(PT_OP_PLUS, (yyvsp[(1) - (3)].pnode), (yyvsp[(3) - (3)].pnode)); } +#line 129 "parse-bison.y" + { (yyval.pnode) = PP_mkbnode(PT_OP_PLUS, (yyvsp[(1) - (3)].pnode), (yyvsp[(3) - (3)].pnode)); } break; case 11: /* Line 1806 of yacc.c */ -#line 138 "parse-bison.y" - { (yyval.pnode) = mkbnode(PT_OP_MINUS, (yyvsp[(1) - (3)].pnode), (yyvsp[(3) - (3)].pnode)); } +#line 130 "parse-bison.y" + { (yyval.pnode) = PP_mkbnode(PT_OP_MINUS, (yyvsp[(1) - (3)].pnode), (yyvsp[(3) - (3)].pnode)); } break; case 12: /* Line 1806 of yacc.c */ -#line 139 "parse-bison.y" - { (yyval.pnode) = mkbnode(PT_OP_TIMES, (yyvsp[(1) - (3)].pnode), (yyvsp[(3) - (3)].pnode)); } +#line 131 "parse-bison.y" + { (yyval.pnode) = PP_mkbnode(PT_OP_TIMES, (yyvsp[(1) - (3)].pnode), (yyvsp[(3) - (3)].pnode)); } break; case 13: /* Line 1806 of yacc.c */ -#line 140 "parse-bison.y" - { (yyval.pnode) = mkbnode(PT_OP_MOD, (yyvsp[(1) - (3)].pnode), (yyvsp[(3) - (3)].pnode)); } +#line 132 "parse-bison.y" + { (yyval.pnode) = PP_mkbnode(PT_OP_MOD, (yyvsp[(1) - (3)].pnode), (yyvsp[(3) - (3)].pnode)); } break; case 14: /* Line 1806 of yacc.c */ -#line 141 "parse-bison.y" - { (yyval.pnode) = mkbnode(PT_OP_DIVIDE, (yyvsp[(1) - (3)].pnode), (yyvsp[(3) - (3)].pnode)); } +#line 133 "parse-bison.y" + { (yyval.pnode) = PP_mkbnode(PT_OP_DIVIDE, (yyvsp[(1) - (3)].pnode), (yyvsp[(3) - (3)].pnode)); } break; case 15: /* Line 1806 of yacc.c */ -#line 142 "parse-bison.y" - { (yyval.pnode) = mkbnode(PT_OP_POWER, (yyvsp[(1) - (3)].pnode), (yyvsp[(3) - (3)].pnode)); } +#line 134 "parse-bison.y" + { (yyval.pnode) = PP_mkbnode(PT_OP_POWER, (yyvsp[(1) - (3)].pnode), (yyvsp[(3) - (3)].pnode)); } break; case 16: /* Line 1806 of yacc.c */ -#line 144 "parse-bison.y" +#line 136 "parse-bison.y" { (yyval.pnode) = (yyvsp[(2) - (3)].pnode); } break; case 17: /* Line 1806 of yacc.c */ -#line 146 "parse-bison.y" - { (yyval.pnode) = mkunode(PT_OP_UMINUS, (yyvsp[(2) - (2)].pnode)); } +#line 138 "parse-bison.y" + { (yyval.pnode) = PP_mkunode(PT_OP_UMINUS, (yyvsp[(2) - (2)].pnode)); } break; case 18: /* Line 1806 of yacc.c */ -#line 147 "parse-bison.y" - { (yyval.pnode) = mkunode(PT_OP_NOT, (yyvsp[(2) - (2)].pnode)); } +#line 139 "parse-bison.y" + { (yyval.pnode) = PP_mkunode(PT_OP_NOT, (yyvsp[(2) - (2)].pnode)); } break; case 19: /* Line 1806 of yacc.c */ -#line 149 "parse-bison.y" - { (yyval.pnode) = mkfnode((yyvsp[(1) - (4)].str), (yyvsp[(3) - (4)].pnode)); +#line 141 "parse-bison.y" + { (yyval.pnode) = PP_mkfnode((yyvsp[(1) - (4)].str), (yyvsp[(3) - (4)].pnode)); txfree((void*)(yyvsp[(1) - (4)].str)); if(!(yyval.pnode)) YYABORT; @@ -1685,85 +1686,85 @@ yyreduce: case 20: /* Line 1806 of yacc.c */ -#line 155 "parse-bison.y" - { (yyval.pnode) = mkbnode(PT_OP_EQ, (yyvsp[(1) - (3)].pnode), (yyvsp[(3) - (3)].pnode)); } +#line 147 "parse-bison.y" + { (yyval.pnode) = PP_mkbnode(PT_OP_EQ, (yyvsp[(1) - (3)].pnode), (yyvsp[(3) - (3)].pnode)); } break; case 21: /* Line 1806 of yacc.c */ -#line 156 "parse-bison.y" - { (yyval.pnode) = mkbnode(PT_OP_NE, (yyvsp[(1) - (3)].pnode), (yyvsp[(3) - (3)].pnode)); } +#line 148 "parse-bison.y" + { (yyval.pnode) = PP_mkbnode(PT_OP_NE, (yyvsp[(1) - (3)].pnode), (yyvsp[(3) - (3)].pnode)); } break; case 22: /* Line 1806 of yacc.c */ -#line 157 "parse-bison.y" - { (yyval.pnode) = mkbnode(PT_OP_GT, (yyvsp[(1) - (3)].pnode), (yyvsp[(3) - (3)].pnode)); } +#line 149 "parse-bison.y" + { (yyval.pnode) = PP_mkbnode(PT_OP_GT, (yyvsp[(1) - (3)].pnode), (yyvsp[(3) - (3)].pnode)); } break; case 23: /* Line 1806 of yacc.c */ -#line 158 "parse-bison.y" - { (yyval.pnode) = mkbnode(PT_OP_LT, (yyvsp[(1) - (3)].pnode), (yyvsp[(3) - (3)].pnode)); } +#line 150 "parse-bison.y" + { (yyval.pnode) = PP_mkbnode(PT_OP_LT, (yyvsp[(1) - (3)].pnode), (yyvsp[(3) - (3)].pnode)); } break; case 24: /* Line 1806 of yacc.c */ -#line 159 "parse-bison.y" - { (yyval.pnode) = mkbnode(PT_OP_GE, (yyvsp[(1) - (3)].pnode), (yyvsp[(3) - (3)].pnode)); } +#line 151 "parse-bison.y" + { (yyval.pnode) = PP_mkbnode(PT_OP_GE, (yyvsp[(1) - (3)].pnode), (yyvsp[(3) - (3)].pnode)); } break; case 25: /* Line 1806 of yacc.c */ -#line 160 "parse-bison.y" - { (yyval.pnode) = mkbnode(PT_OP_LE, (yyvsp[(1) - (3)].pnode), (yyvsp[(3) - (3)].pnode)); } +#line 152 "parse-bison.y" + { (yyval.pnode) = PP_mkbnode(PT_OP_LE, (yyvsp[(1) - (3)].pnode), (yyvsp[(3) - (3)].pnode)); } break; case 26: /* Line 1806 of yacc.c */ -#line 162 "parse-bison.y" - { (yyval.pnode) = mkbnode(PT_OP_AND, (yyvsp[(1) - (3)].pnode), (yyvsp[(3) - (3)].pnode)); } +#line 154 "parse-bison.y" + { (yyval.pnode) = PP_mkbnode(PT_OP_AND, (yyvsp[(1) - (3)].pnode), (yyvsp[(3) - (3)].pnode)); } break; case 27: /* Line 1806 of yacc.c */ -#line 163 "parse-bison.y" - { (yyval.pnode) = mkbnode(PT_OP_OR, (yyvsp[(1) - (3)].pnode), (yyvsp[(3) - (3)].pnode)); } +#line 155 "parse-bison.y" + { (yyval.pnode) = PP_mkbnode(PT_OP_OR, (yyvsp[(1) - (3)].pnode), (yyvsp[(3) - (3)].pnode)); } break; case 28: /* Line 1806 of yacc.c */ -#line 165 "parse-bison.y" - { (yyval.pnode) = mkbnode(PT_OP_INDX, (yyvsp[(1) - (4)].pnode), (yyvsp[(3) - (4)].pnode)); } +#line 157 "parse-bison.y" + { (yyval.pnode) = PP_mkbnode(PT_OP_INDX, (yyvsp[(1) - (4)].pnode), (yyvsp[(3) - (4)].pnode)); } break; case 29: /* Line 1806 of yacc.c */ -#line 166 "parse-bison.y" - { (yyval.pnode) = mkbnode(PT_OP_RANGE, (yyvsp[(1) - (6)].pnode), (yyvsp[(4) - (6)].pnode)); } +#line 158 "parse-bison.y" + { (yyval.pnode) = PP_mkbnode(PT_OP_RANGE, (yyvsp[(1) - (6)].pnode), (yyvsp[(4) - (6)].pnode)); } break; case 30: /* Line 1806 of yacc.c */ -#line 167 "parse-bison.y" - { (yyval.pnode) = mkbnode(PT_OP_TERNARY,(yyvsp[(1) - (5)].pnode), - mkbnode(PT_OP_COMMA,(yyvsp[(3) - (5)].pnode),(yyvsp[(5) - (5)].pnode))); } +#line 159 "parse-bison.y" + { (yyval.pnode) = PP_mkbnode(PT_OP_TERNARY,(yyvsp[(1) - (5)].pnode), + PP_mkbnode(PT_OP_COMMA,(yyvsp[(3) - (5)].pnode),(yyvsp[(5) - (5)].pnode))); } break; /* Line 1806 of yacc.c */ -#line 1767 "parse-bison.c" +#line 1768 "parse-bison.c" default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -2001,7 +2002,7 @@ yyreturn: /* Line 2067 of yacc.c */ -#line 171 "parse-bison.y" +#line 163 "parse-bison.y" diff --git a/src/frontend/parse-bison.h b/src/frontend/parse-bison.h index 0bdf8779b..59e3d5d20 100644 --- a/src/frontend/parse-bison.h +++ b/src/frontend/parse-bison.h @@ -45,6 +45,14 @@ NEG = 263 }; #endif +/* Tokens. */ +#define TOK_NUM 258 +#define TOK_STR 259 +#define TOK_LE 260 +#define TOK_GE 261 +#define TOK_NE 262 +#define NEG 263 + @@ -53,7 +61,7 @@ typedef union YYSTYPE { /* Line 2068 of yacc.c */ -#line 53 "parse-bison.y" +#line 45 "parse-bison.y" double num; const char *str; @@ -62,7 +70,7 @@ typedef union YYSTYPE /* Line 2068 of yacc.c */ -#line 66 "parse-bison.h" +#line 74 "parse-bison.h" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ diff --git a/src/spicelib/parser/inpptree-parser.c b/src/spicelib/parser/inpptree-parser.c index c06a38866..da3a30e07 100644 --- a/src/spicelib/parser/inpptree-parser.c +++ b/src/spicelib/parser/inpptree-parser.c @@ -77,18 +77,21 @@ #line 1 "inpptree-parser.y" /* - * (compile (concat "bison " (file-relative-name buffer-file-name))) + * (compile (concat "bison -ydo inpptree-parser.c " (file-relative-name buffer-file-name))) */ + #include "ngspice/ngspice.h" + #include "ngspice/inpptree.h" + #include #include - struct PTltype { - char *start, *stop; - }; - # define YYLTYPE struct PTltype + #include "inpptree-parser.h" + #include "inpptree-parser-y.h" + + # define YYLLOC_DEFAULT(Current, Rhs, N) \ do \ if (N) { \ @@ -99,23 +102,11 @@ } \ while (0) - - #include "inpptree-parser.h" - - extern int PTlex (YYSTYPE *lvalp, struct PTltype *llocp, char **line); - extern int PTdebug; - static void PTerror (YYLTYPE *locp, char **line, struct INPparseNode **retval, void *ckt, char const *); - #if defined (_MSC_VER) - # define __func__ __FUNCTION__ /* __func__ is C99, but MSC can't */ - #endif - - - /* Line 268 of yacc.c */ -#line 119 "inpptree-parser.c" +#line 110 "inpptree-parser.c" /* Enabling traces. */ #ifndef YYDEBUG @@ -156,6 +147,20 @@ NEG = 269 }; #endif +/* Tokens. */ +#define TOK_NUM 258 +#define TOK_STR 259 +#define TOK_pnode 260 +#define TOK_LE 261 +#define TOK_LT 262 +#define TOK_GE 263 +#define TOK_GT 264 +#define TOK_EQ 265 +#define TOK_NE 266 +#define TOK_OR 267 +#define TOK_AND 268 +#define NEG 269 + @@ -164,7 +169,7 @@ typedef union YYSTYPE { /* Line 293 of yacc.c */ -#line 53 "inpptree-parser.y" +#line 43 "inpptree-parser.y" double num; const char *str; @@ -173,7 +178,7 @@ typedef union YYSTYPE /* Line 293 of yacc.c */ -#line 177 "inpptree-parser.c" +#line 182 "inpptree-parser.c" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ @@ -198,7 +203,7 @@ typedef struct YYLTYPE /* Line 343 of yacc.c */ -#line 202 "inpptree-parser.c" +#line 207 "inpptree-parser.c" #ifdef short # undef short @@ -496,9 +501,9 @@ static const yytype_int8 yyrhs[] = /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint8 yyrline[] = { - 0, 87, 87, 96, 97, 99, 100, 101, 102, 103, - 105, 107, 109, 114, 116, 121, 122, 123, 124, 125, - 126, 128, 132, 136, 141, 142 + 0, 77, 77, 86, 87, 89, 90, 91, 92, 93, + 95, 97, 99, 104, 106, 111, 112, 113, 114, 115, + 116, 118, 122, 126, 131, 132 }; #endif @@ -1351,14 +1356,14 @@ YYLTYPE yylloc; /* User initialization code. */ /* Line 1590 of yacc.c */ -#line 80 "inpptree-parser.y" +#line 70 "inpptree-parser.y" { yylval.num = 0.0; yylloc.start = yylloc.stop = NULL; } /* Line 1590 of yacc.c */ -#line 1362 "inpptree-parser.c" +#line 1367 "inpptree-parser.c" yyvsp[0] = yylval; goto yysetstate; @@ -1546,7 +1551,7 @@ yyreduce: case 2: /* Line 1806 of yacc.c */ -#line 88 "inpptree-parser.y" +#line 78 "inpptree-parser.y" { *retval = (yyvsp[(1) - (1)].pnode); *line = (yylsp[(1) - (1)]).stop; @@ -1557,71 +1562,71 @@ yyreduce: case 3: /* Line 1806 of yacc.c */ -#line 96 "inpptree-parser.y" - { (yyval.pnode) = mknnode((yyvsp[(1) - (1)].num)); } +#line 86 "inpptree-parser.y" + { (yyval.pnode) = PT_mknnode((yyvsp[(1) - (1)].num)); } break; case 4: /* Line 1806 of yacc.c */ -#line 97 "inpptree-parser.y" - { (yyval.pnode) = mksnode((yyvsp[(1) - (1)].str), ckt); txfree((void*)(yyvsp[(1) - (1)].str)); } +#line 87 "inpptree-parser.y" + { (yyval.pnode) = PT_mksnode((yyvsp[(1) - (1)].str), ckt); txfree((void*)(yyvsp[(1) - (1)].str)); } break; case 5: /* Line 1806 of yacc.c */ -#line 99 "inpptree-parser.y" - { (yyval.pnode) = mkbnode("+", (yyvsp[(1) - (3)].pnode), (yyvsp[(3) - (3)].pnode)); } +#line 89 "inpptree-parser.y" + { (yyval.pnode) = PT_mkbnode("+", (yyvsp[(1) - (3)].pnode), (yyvsp[(3) - (3)].pnode)); } break; case 6: /* Line 1806 of yacc.c */ -#line 100 "inpptree-parser.y" - { (yyval.pnode) = mkbnode("-", (yyvsp[(1) - (3)].pnode), (yyvsp[(3) - (3)].pnode)); } +#line 90 "inpptree-parser.y" + { (yyval.pnode) = PT_mkbnode("-", (yyvsp[(1) - (3)].pnode), (yyvsp[(3) - (3)].pnode)); } break; case 7: /* Line 1806 of yacc.c */ -#line 101 "inpptree-parser.y" - { (yyval.pnode) = mkbnode("*", (yyvsp[(1) - (3)].pnode), (yyvsp[(3) - (3)].pnode)); } +#line 91 "inpptree-parser.y" + { (yyval.pnode) = PT_mkbnode("*", (yyvsp[(1) - (3)].pnode), (yyvsp[(3) - (3)].pnode)); } break; case 8: /* Line 1806 of yacc.c */ -#line 102 "inpptree-parser.y" - { (yyval.pnode) = mkbnode("/", (yyvsp[(1) - (3)].pnode), (yyvsp[(3) - (3)].pnode)); } +#line 92 "inpptree-parser.y" + { (yyval.pnode) = PT_mkbnode("/", (yyvsp[(1) - (3)].pnode), (yyvsp[(3) - (3)].pnode)); } break; case 9: /* Line 1806 of yacc.c */ -#line 103 "inpptree-parser.y" - { (yyval.pnode) = mkbnode("^", (yyvsp[(1) - (3)].pnode), (yyvsp[(3) - (3)].pnode)); } +#line 93 "inpptree-parser.y" + { (yyval.pnode) = PT_mkbnode("^", (yyvsp[(1) - (3)].pnode), (yyvsp[(3) - (3)].pnode)); } break; case 10: /* Line 1806 of yacc.c */ -#line 105 "inpptree-parser.y" +#line 95 "inpptree-parser.y" { (yyval.pnode) = (yyvsp[(2) - (3)].pnode); } break; case 11: /* Line 1806 of yacc.c */ -#line 107 "inpptree-parser.y" - { (yyval.pnode) = mkfnode("-",(yyvsp[(2) - (2)].pnode)); } +#line 97 "inpptree-parser.y" + { (yyval.pnode) = PT_mkfnode("-",(yyvsp[(2) - (2)].pnode)); } break; case 12: /* Line 1806 of yacc.c */ -#line 109 "inpptree-parser.y" - { (yyval.pnode) = mkfnode((yyvsp[(1) - (4)].str), (yyvsp[(3) - (4)].pnode)); +#line 99 "inpptree-parser.y" + { (yyval.pnode) = PT_mkfnode((yyvsp[(1) - (4)].str), (yyvsp[(3) - (4)].pnode)); if (!(yyval.pnode)) YYERROR; txfree((void*)(yyvsp[(1) - (4)].str)); } @@ -1630,93 +1635,93 @@ yyreduce: case 14: /* Line 1806 of yacc.c */ -#line 116 "inpptree-parser.y" - { (yyval.pnode) = mkfnode("ternary_fcn", - mkbnode(",", - mkbnode(",", (yyvsp[(1) - (5)].pnode), (yyvsp[(3) - (5)].pnode)), +#line 106 "inpptree-parser.y" + { (yyval.pnode) = PT_mkfnode("ternary_fcn", + PT_mkbnode(",", + PT_mkbnode(",", (yyvsp[(1) - (5)].pnode), (yyvsp[(3) - (5)].pnode)), (yyvsp[(5) - (5)].pnode))); } break; case 15: /* Line 1806 of yacc.c */ -#line 121 "inpptree-parser.y" - { (yyval.pnode) = mkfnode("eq0", mkbnode("-",(yyvsp[(1) - (3)].pnode),(yyvsp[(3) - (3)].pnode))); } +#line 111 "inpptree-parser.y" + { (yyval.pnode) = PT_mkfnode("eq0", PT_mkbnode("-",(yyvsp[(1) - (3)].pnode),(yyvsp[(3) - (3)].pnode))); } break; case 16: /* Line 1806 of yacc.c */ -#line 122 "inpptree-parser.y" - { (yyval.pnode) = mkfnode("ne0", mkbnode("-",(yyvsp[(1) - (3)].pnode),(yyvsp[(3) - (3)].pnode))); } +#line 112 "inpptree-parser.y" + { (yyval.pnode) = PT_mkfnode("ne0", PT_mkbnode("-",(yyvsp[(1) - (3)].pnode),(yyvsp[(3) - (3)].pnode))); } break; case 17: /* Line 1806 of yacc.c */ -#line 123 "inpptree-parser.y" - { (yyval.pnode) = mkfnode("gt0", mkbnode("-",(yyvsp[(1) - (3)].pnode),(yyvsp[(3) - (3)].pnode))); } +#line 113 "inpptree-parser.y" + { (yyval.pnode) = PT_mkfnode("gt0", PT_mkbnode("-",(yyvsp[(1) - (3)].pnode),(yyvsp[(3) - (3)].pnode))); } break; case 18: /* Line 1806 of yacc.c */ -#line 124 "inpptree-parser.y" - { (yyval.pnode) = mkfnode("lt0", mkbnode("-",(yyvsp[(1) - (3)].pnode),(yyvsp[(3) - (3)].pnode))); } +#line 114 "inpptree-parser.y" + { (yyval.pnode) = PT_mkfnode("lt0", PT_mkbnode("-",(yyvsp[(1) - (3)].pnode),(yyvsp[(3) - (3)].pnode))); } break; case 19: /* Line 1806 of yacc.c */ -#line 125 "inpptree-parser.y" - { (yyval.pnode) = mkfnode("ge0", mkbnode("-",(yyvsp[(1) - (3)].pnode),(yyvsp[(3) - (3)].pnode))); } +#line 115 "inpptree-parser.y" + { (yyval.pnode) = PT_mkfnode("ge0", PT_mkbnode("-",(yyvsp[(1) - (3)].pnode),(yyvsp[(3) - (3)].pnode))); } break; case 20: /* Line 1806 of yacc.c */ -#line 126 "inpptree-parser.y" - { (yyval.pnode) = mkfnode("le0", mkbnode("-",(yyvsp[(1) - (3)].pnode),(yyvsp[(3) - (3)].pnode))); } +#line 116 "inpptree-parser.y" + { (yyval.pnode) = PT_mkfnode("le0", PT_mkbnode("-",(yyvsp[(1) - (3)].pnode),(yyvsp[(3) - (3)].pnode))); } break; case 21: /* Line 1806 of yacc.c */ -#line 128 "inpptree-parser.y" - { (yyval.pnode) = mkfnode("ne0", - mkbnode("+", - mkfnode("ne0", (yyvsp[(1) - (3)].pnode)), - mkfnode("ne0", (yyvsp[(3) - (3)].pnode)))); } +#line 118 "inpptree-parser.y" + { (yyval.pnode) = PT_mkfnode("ne0", + PT_mkbnode("+", + PT_mkfnode("ne0", (yyvsp[(1) - (3)].pnode)), + PT_mkfnode("ne0", (yyvsp[(3) - (3)].pnode)))); } break; case 22: /* Line 1806 of yacc.c */ -#line 132 "inpptree-parser.y" - { (yyval.pnode) = mkfnode("eq0", - mkbnode("+", - mkfnode("eq0", (yyvsp[(1) - (3)].pnode)), - mkfnode("eq0", (yyvsp[(3) - (3)].pnode)))); } +#line 122 "inpptree-parser.y" + { (yyval.pnode) = PT_mkfnode("eq0", + PT_mkbnode("+", + PT_mkfnode("eq0", (yyvsp[(1) - (3)].pnode)), + PT_mkfnode("eq0", (yyvsp[(3) - (3)].pnode)))); } break; case 23: /* Line 1806 of yacc.c */ -#line 136 "inpptree-parser.y" - { (yyval.pnode) = mkfnode("eq0", (yyvsp[(2) - (2)].pnode)); } +#line 126 "inpptree-parser.y" + { (yyval.pnode) = PT_mkfnode("eq0", (yyvsp[(2) - (2)].pnode)); } break; case 25: /* Line 1806 of yacc.c */ -#line 142 "inpptree-parser.y" - { (yyval.pnode) = mkbnode(",", (yyvsp[(1) - (3)].pnode), (yyvsp[(3) - (3)].pnode)); } +#line 132 "inpptree-parser.y" + { (yyval.pnode) = PT_mkbnode(",", (yyvsp[(1) - (3)].pnode), (yyvsp[(3) - (3)].pnode)); } break; /* Line 1806 of yacc.c */ -#line 1720 "inpptree-parser.c" +#line 1725 "inpptree-parser.c" default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -1954,7 +1959,7 @@ yyreturn: /* Line 2067 of yacc.c */ -#line 144 "inpptree-parser.y" +#line 134 "inpptree-parser.y" diff --git a/src/spicelib/parser/inpptree-parser.h b/src/spicelib/parser/inpptree-parser.h index 2d53afe80..3e9610bae 100644 --- a/src/spicelib/parser/inpptree-parser.h +++ b/src/spicelib/parser/inpptree-parser.h @@ -51,6 +51,20 @@ NEG = 269 }; #endif +/* Tokens. */ +#define TOK_NUM 258 +#define TOK_STR 259 +#define TOK_pnode 260 +#define TOK_LE 261 +#define TOK_LT 262 +#define TOK_GE 263 +#define TOK_GT 264 +#define TOK_EQ 265 +#define TOK_NE 266 +#define TOK_OR 267 +#define TOK_AND 268 +#define NEG 269 + @@ -59,7 +73,7 @@ typedef union YYSTYPE { /* Line 2068 of yacc.c */ -#line 53 "inpptree-parser.y" +#line 43 "inpptree-parser.y" double num; const char *str; @@ -68,7 +82,7 @@ typedef union YYSTYPE /* Line 2068 of yacc.c */ -#line 72 "inpptree-parser.h" +#line 86 "inpptree-parser.h" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */