Mercurial > hg > minc-tools
changeset 1361:d33dff04662d
Got rid of some more nasty tabs.
author | neelin <neelin> |
---|---|
date | Thu, 26 Apr 2001 20:11:20 +0000 |
parents | 207002eed2be |
children | 99ba2231d6db |
files | progs/minccalc/gram.c progs/minccalc/gram.y progs/minccalc/lex.c progs/minccalc/lex.l progs/minccalc/y.tab.h |
diffstat | 5 files changed, 502 insertions(+), 502 deletions(-) [+] |
line wrap: on
line diff
--- a/progs/minccalc/gram.c +++ b/progs/minccalc/gram.c @@ -45,10 +45,10 @@ #line 10 "gram.y" typedef union{ -int pos; -node_t node; -float real; -ident_t ident; +int pos; +node_t node; +float real; +ident_t ident; } YYSTYPE; #ifndef YYDEBUG #define YYDEBUG 1 @@ -883,183 +883,183 @@ case 4: #line 55 "gram.y" { yyval.node = new_node(2); - yyval.node->type = NODETYPE_GEN; - yyval.node->pos = yyvsp[0].pos; - yyval.node->ident = yyvsp[-5].ident; - yyval.node->expr[0] = yyvsp[-3].node; - yyval.node->expr[1] = yyvsp[-1].node; ; + yyval.node->type = NODETYPE_GEN; + yyval.node->pos = yyvsp[0].pos; + yyval.node->ident = yyvsp[-5].ident; + yyval.node->expr[0] = yyvsp[-3].node; + yyval.node->expr[1] = yyvsp[-1].node; ; break;} case 5: #line 63 "gram.y" { yyval.node = new_node(2); - yyval.node->type = NODETYPE_RANGE; - yyval.node->flags = 0; - yyval.node->pos = yyvsp[0].pos; - yyval.node->expr[0] = yyvsp[-3].node; - yyval.node->expr[1] = yyvsp[-1].node; ; + yyval.node->type = NODETYPE_RANGE; + yyval.node->flags = 0; + yyval.node->pos = yyvsp[0].pos; + yyval.node->expr[0] = yyvsp[-3].node; + yyval.node->expr[1] = yyvsp[-1].node; ; break;} case 6: #line 71 "gram.y" { yyval.node = new_node(2); - yyval.node->type = NODETYPE_RANGE; - yyval.node->flags = RANGE_EXACT_UPPER; - yyval.node->pos = yyvsp[0].pos; - yyval.node->expr[0] = yyvsp[-3].node; - yyval.node->expr[1] = yyvsp[-1].node; ; + yyval.node->type = NODETYPE_RANGE; + yyval.node->flags = RANGE_EXACT_UPPER; + yyval.node->pos = yyvsp[0].pos; + yyval.node->expr[0] = yyvsp[-3].node; + yyval.node->expr[1] = yyvsp[-1].node; ; break;} case 7: #line 79 "gram.y" { yyval.node = new_node(2); - yyval.node->type = NODETYPE_RANGE; - yyval.node->flags = RANGE_EXACT_LOWER; - yyval.node->pos = yyvsp[0].pos; - yyval.node->expr[0] = yyvsp[-3].node; - yyval.node->expr[1] = yyvsp[-1].node; ; + yyval.node->type = NODETYPE_RANGE; + yyval.node->flags = RANGE_EXACT_LOWER; + yyval.node->pos = yyvsp[0].pos; + yyval.node->expr[0] = yyvsp[-3].node; + yyval.node->expr[1] = yyvsp[-1].node; ; break;} case 8: #line 87 "gram.y" { yyval.node = new_node(2); - yyval.node->type = NODETYPE_RANGE; - yyval.node->flags = RANGE_EXACT_UPPER | RANGE_EXACT_LOWER; - yyval.node->pos = yyvsp[0].pos; - yyval.node->expr[0] = yyvsp[-3].node; - yyval.node->expr[1] = yyvsp[-1].node; ; + yyval.node->type = NODETYPE_RANGE; + yyval.node->flags = RANGE_EXACT_UPPER | RANGE_EXACT_LOWER; + yyval.node->pos = yyvsp[0].pos; + yyval.node->expr[0] = yyvsp[-3].node; + yyval.node->expr[1] = yyvsp[-1].node; ; break;} case 9: #line 95 "gram.y" { yyval.node = new_node(2); - yyval.node->type = NODETYPE_ADD; + yyval.node->type = NODETYPE_ADD; yyval.node->flags |= ALLARGS_SCALAR; - yyval.node->pos = yyvsp[-1].pos; - yyval.node->expr[0] = yyvsp[-2].node; - yyval.node->expr[1] = yyvsp[0].node; ; + yyval.node->pos = yyvsp[-1].pos; + yyval.node->expr[0] = yyvsp[-2].node; + yyval.node->expr[1] = yyvsp[0].node; ; break;} case 10: #line 103 "gram.y" { yyval.node = new_node(2); - yyval.node->type = NODETYPE_SUB; + yyval.node->type = NODETYPE_SUB; yyval.node->flags |= ALLARGS_SCALAR; - yyval.node->pos = yyvsp[-1].pos; - yyval.node->expr[0] = yyvsp[-2].node; - yyval.node->expr[1] = yyvsp[0].node; ; + yyval.node->pos = yyvsp[-1].pos; + yyval.node->expr[0] = yyvsp[-2].node; + yyval.node->expr[1] = yyvsp[0].node; ; break;} case 11: #line 111 "gram.y" { yyval.node = new_node(2); - yyval.node->type = NODETYPE_SUB; - yyval.node->pos = yyvsp[-1].pos; + yyval.node->type = NODETYPE_SUB; + yyval.node->pos = yyvsp[-1].pos; yyval.node->flags |= ALLARGS_SCALAR; - yyval.node->expr[0] = new_node(0); - yyval.node->expr[0]->type = NODETYPE_REAL; - yyval.node->expr[0]->real = 0.0; - yyval.node->expr[1] = yyvsp[0].node; ; + yyval.node->expr[0] = new_node(0); + yyval.node->expr[0]->type = NODETYPE_REAL; + yyval.node->expr[0]->real = 0.0; + yyval.node->expr[1] = yyvsp[0].node; ; break;} case 12: #line 121 "gram.y" { yyval.node = new_node(2); - yyval.node->pos = yyvsp[-1].pos; - yyval.node->type = NODETYPE_MUL; + yyval.node->pos = yyvsp[-1].pos; + yyval.node->type = NODETYPE_MUL; yyval.node->flags |= ALLARGS_SCALAR; - yyval.node->expr[0] = yyvsp[-2].node; - yyval.node->expr[1] = yyvsp[0].node; ; + yyval.node->expr[0] = yyvsp[-2].node; + yyval.node->expr[1] = yyvsp[0].node; ; break;} case 13: #line 129 "gram.y" { yyval.node = new_node(2); - yyval.node->pos = yyvsp[-1].pos; - yyval.node->type = NODETYPE_DIV; + yyval.node->pos = yyvsp[-1].pos; + yyval.node->type = NODETYPE_DIV; yyval.node->flags |= ALLARGS_SCALAR; - yyval.node->expr[0] = yyvsp[-2].node; - yyval.node->expr[1] = yyvsp[0].node; ; + yyval.node->expr[0] = yyvsp[-2].node; + yyval.node->expr[1] = yyvsp[0].node; ; break;} case 14: #line 137 "gram.y" { yyval.node = new_node(2); - yyval.node->pos = yyvsp[-1].pos; - yyval.node->type = NODETYPE_POW; + yyval.node->pos = yyvsp[-1].pos; + yyval.node->type = NODETYPE_POW; yyval.node->flags |= ALLARGS_SCALAR; - yyval.node->expr[0] = yyvsp[-2].node; - yyval.node->expr[1] = yyvsp[0].node; ; + yyval.node->expr[0] = yyvsp[-2].node; + yyval.node->expr[1] = yyvsp[0].node; ; break;} case 15: #line 145 "gram.y" { yyval.node = new_node(2); - yyval.node->type = NODETYPE_LT; + yyval.node->type = NODETYPE_LT; yyval.node->flags |= ALLARGS_SCALAR; - yyval.node->pos = yyvsp[-1].pos; - yyval.node->expr[0] = yyvsp[-2].node; - yyval.node->expr[1] = yyvsp[0].node; ; + yyval.node->pos = yyvsp[-1].pos; + yyval.node->expr[0] = yyvsp[-2].node; + yyval.node->expr[1] = yyvsp[0].node; ; break;} case 16: #line 153 "gram.y" { yyval.node = new_node(2); - yyval.node->type = NODETYPE_LE; + yyval.node->type = NODETYPE_LE; yyval.node->flags |= ALLARGS_SCALAR; - yyval.node->pos = yyvsp[-1].pos; - yyval.node->expr[0] = yyvsp[-2].node; - yyval.node->expr[1] = yyvsp[0].node; ; + yyval.node->pos = yyvsp[-1].pos; + yyval.node->expr[0] = yyvsp[-2].node; + yyval.node->expr[1] = yyvsp[0].node; ; break;} case 17: #line 161 "gram.y" { yyval.node = new_node(2); - yyval.node->type = NODETYPE_GT; + yyval.node->type = NODETYPE_GT; yyval.node->flags |= ALLARGS_SCALAR; - yyval.node->pos = yyvsp[-1].pos; - yyval.node->expr[0] = yyvsp[-2].node; - yyval.node->expr[1] = yyvsp[0].node; ; + yyval.node->pos = yyvsp[-1].pos; + yyval.node->expr[0] = yyvsp[-2].node; + yyval.node->expr[1] = yyvsp[0].node; ; break;} case 18: #line 169 "gram.y" { yyval.node = new_node(2); - yyval.node->type = NODETYPE_GE; + yyval.node->type = NODETYPE_GE; yyval.node->flags |= ALLARGS_SCALAR; - yyval.node->pos = yyvsp[-1].pos; - yyval.node->expr[0] = yyvsp[-2].node; - yyval.node->expr[1] = yyvsp[0].node; ; + yyval.node->pos = yyvsp[-1].pos; + yyval.node->expr[0] = yyvsp[-2].node; + yyval.node->expr[1] = yyvsp[0].node; ; break;} case 19: #line 177 "gram.y" { yyval.node = new_node(2); - yyval.node->type = NODETYPE_EQ; + yyval.node->type = NODETYPE_EQ; yyval.node->flags |= ALLARGS_SCALAR; - yyval.node->pos = yyvsp[-1].pos; - yyval.node->expr[0] = yyvsp[-2].node; - yyval.node->expr[1] = yyvsp[0].node; ; + yyval.node->pos = yyvsp[-1].pos; + yyval.node->expr[0] = yyvsp[-2].node; + yyval.node->expr[1] = yyvsp[0].node; ; break;} case 20: #line 185 "gram.y" { yyval.node = new_node(2); - yyval.node->type = NODETYPE_NE; + yyval.node->type = NODETYPE_NE; yyval.node->flags |= ALLARGS_SCALAR; - yyval.node->pos = yyvsp[-1].pos; - yyval.node->expr[0] = yyvsp[-2].node; - yyval.node->expr[1] = yyvsp[0].node; ; + yyval.node->pos = yyvsp[-1].pos; + yyval.node->expr[0] = yyvsp[-2].node; + yyval.node->expr[1] = yyvsp[0].node; ; break;} case 21: #line 193 "gram.y" { yyval.node = new_node(2); - yyval.node->type = NODETYPE_AND; + yyval.node->type = NODETYPE_AND; yyval.node->flags |= ALLARGS_SCALAR; - yyval.node->pos = yyvsp[-1].pos; - yyval.node->expr[0] = yyvsp[-2].node; - yyval.node->expr[1] = yyvsp[0].node; ; + yyval.node->pos = yyvsp[-1].pos; + yyval.node->expr[0] = yyvsp[-2].node; + yyval.node->expr[1] = yyvsp[0].node; ; break;} case 22: #line 201 "gram.y" { yyval.node = new_node(2); - yyval.node->type = NODETYPE_OR; + yyval.node->type = NODETYPE_OR; yyval.node->flags |= ALLARGS_SCALAR; - yyval.node->pos = yyvsp[-1].pos; - yyval.node->expr[0] = yyvsp[-2].node; - yyval.node->expr[1] = yyvsp[0].node; ; + yyval.node->pos = yyvsp[-1].pos; + yyval.node->expr[0] = yyvsp[-2].node; + yyval.node->expr[1] = yyvsp[0].node; ; break;} case 23: #line 209 "gram.y" { yyval.node = new_node(2); - yyval.node->type = NODETYPE_INDEX; - yyval.node->pos = yyvsp[0].pos; - yyval.node->expr[0] = yyvsp[-3].node; - yyval.node->expr[1] = yyvsp[-1].node; ; + yyval.node->type = NODETYPE_INDEX; + yyval.node->pos = yyvsp[0].pos; + yyval.node->expr[0] = yyvsp[-3].node; + yyval.node->expr[1] = yyvsp[-1].node; ; break;} case 24: #line 216 "gram.y" @@ -1068,168 +1068,168 @@ case 25: #line 219 "gram.y" { yyval.node = new_node(1); - yyval.node->pos = yyvsp[-1].pos; - yyval.node->type = NODETYPE_NOT; + yyval.node->pos = yyvsp[-1].pos; + yyval.node->type = NODETYPE_NOT; yyval.node->flags |= ALLARGS_SCALAR; - yyval.node->expr[0] = yyvsp[0].node; ; + yyval.node->expr[0] = yyvsp[0].node; ; break;} case 26: #line 226 "gram.y" { yyval.node = new_node(1); - yyval.node->pos = yyvsp[-1].pos; - yyval.node->type = NODETYPE_SUM; - yyval.node->expr[0] = yyvsp[0].node; ; + yyval.node->pos = yyvsp[-1].pos; + yyval.node->type = NODETYPE_SUM; + yyval.node->expr[0] = yyvsp[0].node; ; break;} case 27: #line 232 "gram.y" { yyval.node = new_node(1); - yyval.node->pos = yyvsp[-1].pos; - yyval.node->type = NODETYPE_AVG; - yyval.node->expr[0] = yyvsp[0].node; ; + yyval.node->pos = yyvsp[-1].pos; + yyval.node->type = NODETYPE_AVG; + yyval.node->expr[0] = yyvsp[0].node; ; break;} case 28: #line 238 "gram.y" { yyval.node = new_node(1); - yyval.node->pos = yyvsp[-1].pos; - yyval.node->type = NODETYPE_LEN; - yyval.node->expr[0] = yyvsp[0].node; ; + yyval.node->pos = yyvsp[-1].pos; + yyval.node->type = NODETYPE_LEN; + yyval.node->expr[0] = yyvsp[0].node; ; break;} case 29: #line 244 "gram.y" { yyval.node = new_node(1); - yyval.node->pos = yyvsp[-1].pos; - yyval.node->type = NODETYPE_MAX; - yyval.node->expr[0] = yyvsp[0].node; ; + yyval.node->pos = yyvsp[-1].pos; + yyval.node->type = NODETYPE_MAX; + yyval.node->expr[0] = yyvsp[0].node; ; break;} case 30: #line 250 "gram.y" { yyval.node = new_node(1); - yyval.node->pos = yyvsp[-1].pos; - yyval.node->type = NODETYPE_MIN; - yyval.node->expr[0] = yyvsp[0].node; ; + yyval.node->pos = yyvsp[-1].pos; + yyval.node->type = NODETYPE_MIN; + yyval.node->expr[0] = yyvsp[0].node; ; break;} case 31: #line 256 "gram.y" { yyval.node = new_node(1); - yyval.node->pos = yyvsp[-1].pos; - yyval.node->type = NODETYPE_ISNAN; + yyval.node->pos = yyvsp[-1].pos; + yyval.node->type = NODETYPE_ISNAN; yyval.node->flags |= ALLARGS_SCALAR; - yyval.node->expr[0] = yyvsp[0].node; ; + yyval.node->expr[0] = yyvsp[0].node; ; break;} case 32: #line 263 "gram.y" { yyval.node = new_node(1); - yyval.node->pos = yyvsp[-1].pos; - yyval.node->type = NODETYPE_SQRT; + yyval.node->pos = yyvsp[-1].pos; + yyval.node->type = NODETYPE_SQRT; yyval.node->flags |= ALLARGS_SCALAR; - yyval.node->expr[0] = yyvsp[0].node; ; + yyval.node->expr[0] = yyvsp[0].node; ; break;} case 33: #line 270 "gram.y" { yyval.node = new_node(1); - yyval.node->pos = yyvsp[-1].pos; - yyval.node->type = NODETYPE_ABS; + yyval.node->pos = yyvsp[-1].pos; + yyval.node->type = NODETYPE_ABS; yyval.node->flags |= ALLARGS_SCALAR; - yyval.node->expr[0] = yyvsp[0].node; ; + yyval.node->expr[0] = yyvsp[0].node; ; break;} case 34: #line 277 "gram.y" { yyval.node = new_node(1); - yyval.node->pos = yyvsp[-1].pos; - yyval.node->type = NODETYPE_EXP; + yyval.node->pos = yyvsp[-1].pos; + yyval.node->type = NODETYPE_EXP; yyval.node->flags |= ALLARGS_SCALAR; - yyval.node->expr[0] = yyvsp[0].node; ; + yyval.node->expr[0] = yyvsp[0].node; ; break;} case 35: #line 284 "gram.y" { yyval.node = new_node(1); - yyval.node->pos = yyvsp[-1].pos; - yyval.node->type = NODETYPE_LOG; + yyval.node->pos = yyvsp[-1].pos; + yyval.node->type = NODETYPE_LOG; yyval.node->flags |= ALLARGS_SCALAR; - yyval.node->expr[0] = yyvsp[0].node; ; + yyval.node->expr[0] = yyvsp[0].node; ; break;} case 36: #line 291 "gram.y" { yyval.node = new_node(1); - yyval.node->pos = yyvsp[-1].pos; - yyval.node->type = NODETYPE_SIN; + yyval.node->pos = yyvsp[-1].pos; + yyval.node->type = NODETYPE_SIN; yyval.node->flags |= ALLARGS_SCALAR; - yyval.node->expr[0] = yyvsp[0].node; ; + yyval.node->expr[0] = yyvsp[0].node; ; break;} case 37: #line 298 "gram.y" { yyval.node = new_node(1); - yyval.node->pos = yyvsp[-1].pos; - yyval.node->type = NODETYPE_COS; + yyval.node->pos = yyvsp[-1].pos; + yyval.node->type = NODETYPE_COS; yyval.node->flags |= ALLARGS_SCALAR; - yyval.node->expr[0] = yyvsp[0].node; ; + yyval.node->expr[0] = yyvsp[0].node; ; break;} case 38: #line 305 "gram.y" { yyval.node = new_node(3); - yyval.node->pos = yyvsp[-7].pos; - yyval.node->type = NODETYPE_CLAMP; + yyval.node->pos = yyvsp[-7].pos; + yyval.node->type = NODETYPE_CLAMP; yyval.node->flags |= ALLARGS_SCALAR; - yyval.node->expr[0] = yyvsp[-5].node; - yyval.node->expr[1] = yyvsp[-3].node; - yyval.node->expr[2] = yyvsp[-1].node; ; + yyval.node->expr[0] = yyvsp[-5].node; + yyval.node->expr[1] = yyvsp[-3].node; + yyval.node->expr[2] = yyvsp[-1].node; ; break;} case 39: #line 314 "gram.y" { yyval.node = new_node(3); - yyval.node->pos = yyvsp[-7].pos; - yyval.node->type = NODETYPE_SEGMENT; + yyval.node->pos = yyvsp[-7].pos; + yyval.node->type = NODETYPE_SEGMENT; yyval.node->flags |= ALLARGS_SCALAR; - yyval.node->expr[0] = yyvsp[-5].node; - yyval.node->expr[1] = yyvsp[-3].node; - yyval.node->expr[2] = yyvsp[-1].node; ; + yyval.node->expr[0] = yyvsp[-5].node; + yyval.node->expr[1] = yyvsp[-3].node; + yyval.node->expr[2] = yyvsp[-1].node; ; break;} case 40: #line 323 "gram.y" { yyval.node = new_node(0); - yyval.node->type = NODETYPE_IDENT; - yyval.node->pos = -1; - yyval.node->ident = yyvsp[0].ident; ; + yyval.node->type = NODETYPE_IDENT; + yyval.node->pos = -1; + yyval.node->ident = yyvsp[0].ident; ; break;} case 41: #line 329 "gram.y" { yyval.node = new_node(0); - yyval.node->pos = -1; - yyval.node->type = NODETYPE_REAL; - yyval.node->real = yyvsp[0].real; ; + yyval.node->pos = -1; + yyval.node->type = NODETYPE_REAL; + yyval.node->real = yyvsp[0].real; ; break;} case 42: #line 338 "gram.y" { yyval.node = new_node(2); - yyval.node->type = NODETYPE_LET; - yyval.node->pos = yyvsp[-3].pos; - yyval.node->ident = yyvsp[-4].ident; - yyval.node->expr[0] = yyvsp[-2].node; - yyval.node->expr[1] = yyvsp[0].node; ; + yyval.node->type = NODETYPE_LET; + yyval.node->pos = yyvsp[-3].pos; + yyval.node->ident = yyvsp[-4].ident; + yyval.node->expr[0] = yyvsp[-2].node; + yyval.node->expr[1] = yyvsp[0].node; ; break;} case 43: #line 345 "gram.y" { yyval.node = new_node(2); - yyval.node->pos = yyvsp[-3].pos; - yyval.node->type = NODETYPE_LET; - yyval.node->ident = yyvsp[-4].ident; - yyval.node->expr[0] = yyvsp[-2].node; - yyval.node->expr[1] = yyvsp[0].node; ; + yyval.node->pos = yyvsp[-3].pos; + yyval.node->type = NODETYPE_LET; + yyval.node->ident = yyvsp[-4].ident; + yyval.node->expr[0] = yyvsp[-2].node; + yyval.node->expr[1] = yyvsp[0].node; ; break;} case 44: #line 354 "gram.y" { yyval.node = new_node(1); - yyval.node->pos = yyvsp[0].node->pos; - yyval.node->type = NODETYPE_VEC1; - yyval.node->expr[0] = yyvsp[0].node; ; + yyval.node->pos = yyvsp[0].node->pos; + yyval.node->type = NODETYPE_VEC1; + yyval.node->expr[0] = yyvsp[0].node; ; break;} case 45: #line 359 "gram.y" { yyval.node = new_node(2); - yyval.node->pos = yyvsp[-1].pos; - yyval.node->type = NODETYPE_VEC2; - yyval.node->expr[0] = yyvsp[-2].node; - yyval.node->expr[1] = yyvsp[0].node; ; + yyval.node->pos = yyvsp[-1].pos; + yyval.node->type = NODETYPE_VEC2; + yyval.node->expr[0] = yyvsp[-2].node; + yyval.node->expr[1] = yyvsp[0].node; ; break;} } /* the action file gets copied in in place of this dollarsign */ @@ -1460,9 +1460,9 @@ void yyerror(msg) - const char *msg; + const char *msg; { - extern int lexpos; + extern int lexpos; - show_error(lexpos, msg); + show_error(lexpos, msg); }
--- a/progs/minccalc/gram.y +++ b/progs/minccalc/gram.y @@ -8,360 +8,360 @@ %} %union{ -int pos; -node_t node; -float real; -ident_t ident; +int pos; +node_t node; +float real; +ident_t ident; } -%token IN TO IDENT REAL AVG SUM LET NEG LEN MAX MIN -%token ISNAN SQRT ABS EXP LOG SIN COS CLAMP SEGMENT -%token LT LE GT GE EQ NE NOT AND OR +%token IN TO IDENT REAL AVG SUM LET NEG LEN MAX MIN +%token ISNAN SQRT ABS EXP LOG SIN COS CLAMP SEGMENT +%token LT LE GT GE EQ NE NOT AND OR -%type<ident> IDENT -%type<real> REAL -%type<pos> AVG SUM LET NEG LEN ISNAN SQRT ABS MAX MIN EXP LOG SIN COS -%type<pos> CLAMP SEGMENT -%type<pos> IN TO -%type<pos> NOT LT LE GT GE EQ NE AND OR -%type<pos> '+' '-' '*' '/' '(' ')' '[' ']' '.' '=' '^' '{' '}' ',' '|' -%type<node> expr letexpr vector +%type<ident> IDENT +%type<real> REAL +%type<pos> AVG SUM LET NEG LEN ISNAN SQRT ABS MAX MIN EXP LOG SIN COS +%type<pos> CLAMP SEGMENT +%type<pos> IN TO +%type<pos> NOT LT LE GT GE EQ NE AND OR +%type<pos> '+' '-' '*' '/' '(' ')' '[' ']' '.' '=' '^' '{' '}' ',' '|' +%type<node> expr letexpr vector -%right '=' -%right LET +%right '=' +%right LET %left OR %left AND %left EQ NE %left LT LE GT GE -%left '-' '+' -%left '*' '/' -%right NEG NOT -%right '^' -%right AVG SUM LEN ISNAN SQRT ABS MAX MIN EXP LOG SIN COS +%left '-' '+' +%left '*' '/' +%right NEG NOT +%right '^' +%right AVG SUM LEN ISNAN SQRT ABS MAX MIN EXP LOG SIN COS %% -top : expr - { root = $1; } - ; +top : expr + { root = $1; } + ; -expr : '(' expr ')' - { $$ = $2; } +expr : '(' expr ')' + { $$ = $2; } - | '{' vector '}' - { $$ = $2; } + | '{' vector '}' + { $$ = $2; } - | '{' IDENT IN expr '|' expr '}' - { $$ = new_node(2); - $$->type = NODETYPE_GEN; - $$->pos = $7; - $$->ident = $2; - $$->expr[0] = $4; - $$->expr[1] = $6; } + | '{' IDENT IN expr '|' expr '}' + { $$ = new_node(2); + $$->type = NODETYPE_GEN; + $$->pos = $7; + $$->ident = $2; + $$->expr[0] = $4; + $$->expr[1] = $6; } - | '(' expr ',' expr ')' - { $$ = new_node(2); - $$->type = NODETYPE_RANGE; - $$->flags = 0; - $$->pos = $5; - $$->expr[0] = $2; - $$->expr[1] = $4; } + | '(' expr ',' expr ')' + { $$ = new_node(2); + $$->type = NODETYPE_RANGE; + $$->flags = 0; + $$->pos = $5; + $$->expr[0] = $2; + $$->expr[1] = $4; } - | '(' expr ',' expr ']' - { $$ = new_node(2); - $$->type = NODETYPE_RANGE; - $$->flags = RANGE_EXACT_UPPER; - $$->pos = $5; - $$->expr[0] = $2; - $$->expr[1] = $4; } + | '(' expr ',' expr ']' + { $$ = new_node(2); + $$->type = NODETYPE_RANGE; + $$->flags = RANGE_EXACT_UPPER; + $$->pos = $5; + $$->expr[0] = $2; + $$->expr[1] = $4; } - | '[' expr ',' expr ')' - { $$ = new_node(2); - $$->type = NODETYPE_RANGE; - $$->flags = RANGE_EXACT_LOWER; - $$->pos = $5; - $$->expr[0] = $2; - $$->expr[1] = $4; } + | '[' expr ',' expr ')' + { $$ = new_node(2); + $$->type = NODETYPE_RANGE; + $$->flags = RANGE_EXACT_LOWER; + $$->pos = $5; + $$->expr[0] = $2; + $$->expr[1] = $4; } - | '[' expr ',' expr ']' - { $$ = new_node(2); - $$->type = NODETYPE_RANGE; - $$->flags = RANGE_EXACT_UPPER | RANGE_EXACT_LOWER; - $$->pos = $5; - $$->expr[0] = $2; - $$->expr[1] = $4; } + | '[' expr ',' expr ']' + { $$ = new_node(2); + $$->type = NODETYPE_RANGE; + $$->flags = RANGE_EXACT_UPPER | RANGE_EXACT_LOWER; + $$->pos = $5; + $$->expr[0] = $2; + $$->expr[1] = $4; } - | expr '+' expr - { $$ = new_node(2); - $$->type = NODETYPE_ADD; + | expr '+' expr + { $$ = new_node(2); + $$->type = NODETYPE_ADD; $$->flags |= ALLARGS_SCALAR; - $$->pos = $2; - $$->expr[0] = $1; - $$->expr[1] = $3; } + $$->pos = $2; + $$->expr[0] = $1; + $$->expr[1] = $3; } - | expr '-' expr - { $$ = new_node(2); - $$->type = NODETYPE_SUB; + | expr '-' expr + { $$ = new_node(2); + $$->type = NODETYPE_SUB; $$->flags |= ALLARGS_SCALAR; - $$->pos = $2; - $$->expr[0] = $1; - $$->expr[1] = $3; } + $$->pos = $2; + $$->expr[0] = $1; + $$->expr[1] = $3; } - | '-' expr %prec NEG - { $$ = new_node(2); - $$->type = NODETYPE_SUB; - $$->pos = $1; + | '-' expr %prec NEG + { $$ = new_node(2); + $$->type = NODETYPE_SUB; + $$->pos = $1; $$->flags |= ALLARGS_SCALAR; - $$->expr[0] = new_node(0); - $$->expr[0]->type = NODETYPE_REAL; - $$->expr[0]->real = 0.0; - $$->expr[1] = $2; } + $$->expr[0] = new_node(0); + $$->expr[0]->type = NODETYPE_REAL; + $$->expr[0]->real = 0.0; + $$->expr[1] = $2; } - | expr '*' expr - { $$ = new_node(2); - $$->pos = $2; - $$->type = NODETYPE_MUL; + | expr '*' expr + { $$ = new_node(2); + $$->pos = $2; + $$->type = NODETYPE_MUL; $$->flags |= ALLARGS_SCALAR; - $$->expr[0] = $1; - $$->expr[1] = $3; } + $$->expr[0] = $1; + $$->expr[1] = $3; } - | expr '/' expr - { $$ = new_node(2); - $$->pos = $2; - $$->type = NODETYPE_DIV; + | expr '/' expr + { $$ = new_node(2); + $$->pos = $2; + $$->type = NODETYPE_DIV; $$->flags |= ALLARGS_SCALAR; - $$->expr[0] = $1; - $$->expr[1] = $3; } + $$->expr[0] = $1; + $$->expr[1] = $3; } - | expr '^' expr - { $$ = new_node(2); - $$->pos = $2; - $$->type = NODETYPE_POW; + | expr '^' expr + { $$ = new_node(2); + $$->pos = $2; + $$->type = NODETYPE_POW; $$->flags |= ALLARGS_SCALAR; - $$->expr[0] = $1; - $$->expr[1] = $3; } + $$->expr[0] = $1; + $$->expr[1] = $3; } - | expr LT expr - { $$ = new_node(2); - $$->type = NODETYPE_LT; + | expr LT expr + { $$ = new_node(2); + $$->type = NODETYPE_LT; $$->flags |= ALLARGS_SCALAR; - $$->pos = $2; - $$->expr[0] = $1; - $$->expr[1] = $3; } + $$->pos = $2; + $$->expr[0] = $1; + $$->expr[1] = $3; } - | expr LE expr - { $$ = new_node(2); - $$->type = NODETYPE_LE; + | expr LE expr + { $$ = new_node(2); + $$->type = NODETYPE_LE; $$->flags |= ALLARGS_SCALAR; - $$->pos = $2; - $$->expr[0] = $1; - $$->expr[1] = $3; } + $$->pos = $2; + $$->expr[0] = $1; + $$->expr[1] = $3; } - | expr GT expr - { $$ = new_node(2); - $$->type = NODETYPE_GT; + | expr GT expr + { $$ = new_node(2); + $$->type = NODETYPE_GT; $$->flags |= ALLARGS_SCALAR; - $$->pos = $2; - $$->expr[0] = $1; - $$->expr[1] = $3; } + $$->pos = $2; + $$->expr[0] = $1; + $$->expr[1] = $3; } - | expr GE expr - { $$ = new_node(2); - $$->type = NODETYPE_GE; + | expr GE expr + { $$ = new_node(2); + $$->type = NODETYPE_GE; $$->flags |= ALLARGS_SCALAR; - $$->pos = $2; - $$->expr[0] = $1; - $$->expr[1] = $3; } + $$->pos = $2; + $$->expr[0] = $1; + $$->expr[1] = $3; } - | expr EQ expr - { $$ = new_node(2); - $$->type = NODETYPE_EQ; + | expr EQ expr + { $$ = new_node(2); + $$->type = NODETYPE_EQ; $$->flags |= ALLARGS_SCALAR; - $$->pos = $2; - $$->expr[0] = $1; - $$->expr[1] = $3; } + $$->pos = $2; + $$->expr[0] = $1; + $$->expr[1] = $3; } - | expr NE expr - { $$ = new_node(2); - $$->type = NODETYPE_NE; + | expr NE expr + { $$ = new_node(2); + $$->type = NODETYPE_NE; $$->flags |= ALLARGS_SCALAR; - $$->pos = $2; - $$->expr[0] = $1; - $$->expr[1] = $3; } + $$->pos = $2; + $$->expr[0] = $1; + $$->expr[1] = $3; } - | expr AND expr - { $$ = new_node(2); - $$->type = NODETYPE_AND; + | expr AND expr + { $$ = new_node(2); + $$->type = NODETYPE_AND; $$->flags |= ALLARGS_SCALAR; - $$->pos = $2; - $$->expr[0] = $1; - $$->expr[1] = $3; } + $$->pos = $2; + $$->expr[0] = $1; + $$->expr[1] = $3; } - | expr OR expr - { $$ = new_node(2); - $$->type = NODETYPE_OR; + | expr OR expr + { $$ = new_node(2); + $$->type = NODETYPE_OR; $$->flags |= ALLARGS_SCALAR; - $$->pos = $2; - $$->expr[0] = $1; - $$->expr[1] = $3; } + $$->pos = $2; + $$->expr[0] = $1; + $$->expr[1] = $3; } - | expr '[' expr ']' - { $$ = new_node(2); - $$->type = NODETYPE_INDEX; - $$->pos = $4; - $$->expr[0] = $1; - $$->expr[1] = $3; } + | expr '[' expr ']' + { $$ = new_node(2); + $$->type = NODETYPE_INDEX; + $$->pos = $4; + $$->expr[0] = $1; + $$->expr[1] = $3; } - | LET letexpr - { $$ = $2; } + | LET letexpr + { $$ = $2; } - | NOT expr - { $$ = new_node(1); - $$->pos = $1; - $$->type = NODETYPE_NOT; + | NOT expr + { $$ = new_node(1); + $$->pos = $1; + $$->type = NODETYPE_NOT; $$->flags |= ALLARGS_SCALAR; - $$->expr[0] = $2; } + $$->expr[0] = $2; } - | SUM expr - { $$ = new_node(1); - $$->pos = $1; - $$->type = NODETYPE_SUM; - $$->expr[0] = $2; } + | SUM expr + { $$ = new_node(1); + $$->pos = $1; + $$->type = NODETYPE_SUM; + $$->expr[0] = $2; } - | AVG expr - { $$ = new_node(1); - $$->pos = $1; - $$->type = NODETYPE_AVG; - $$->expr[0] = $2; } + | AVG expr + { $$ = new_node(1); + $$->pos = $1; + $$->type = NODETYPE_AVG; + $$->expr[0] = $2; } - | LEN expr - { $$ = new_node(1); - $$->pos = $1; - $$->type = NODETYPE_LEN; - $$->expr[0] = $2; } + | LEN expr + { $$ = new_node(1); + $$->pos = $1; + $$->type = NODETYPE_LEN; + $$->expr[0] = $2; } - | MAX expr - { $$ = new_node(1); - $$->pos = $1; - $$->type = NODETYPE_MAX; - $$->expr[0] = $2; } + | MAX expr + { $$ = new_node(1); + $$->pos = $1; + $$->type = NODETYPE_MAX; + $$->expr[0] = $2; } - | MIN expr - { $$ = new_node(1); - $$->pos = $1; - $$->type = NODETYPE_MIN; - $$->expr[0] = $2; } + | MIN expr + { $$ = new_node(1); + $$->pos = $1; + $$->type = NODETYPE_MIN; + $$->expr[0] = $2; } - | ISNAN expr - { $$ = new_node(1); - $$->pos = $1; - $$->type = NODETYPE_ISNAN; + | ISNAN expr + { $$ = new_node(1); + $$->pos = $1; + $$->type = NODETYPE_ISNAN; $$->flags |= ALLARGS_SCALAR; - $$->expr[0] = $2; } + $$->expr[0] = $2; } - | SQRT expr - { $$ = new_node(1); - $$->pos = $1; - $$->type = NODETYPE_SQRT; + | SQRT expr + { $$ = new_node(1); + $$->pos = $1; + $$->type = NODETYPE_SQRT; $$->flags |= ALLARGS_SCALAR; - $$->expr[0] = $2; } + $$->expr[0] = $2; } - | ABS expr - { $$ = new_node(1); - $$->pos = $1; - $$->type = NODETYPE_ABS; + | ABS expr + { $$ = new_node(1); + $$->pos = $1; + $$->type = NODETYPE_ABS; $$->flags |= ALLARGS_SCALAR; - $$->expr[0] = $2; } + $$->expr[0] = $2; } - | EXP expr - { $$ = new_node(1); - $$->pos = $1; - $$->type = NODETYPE_EXP; + | EXP expr + { $$ = new_node(1); + $$->pos = $1; + $$->type = NODETYPE_EXP; $$->flags |= ALLARGS_SCALAR; - $$->expr[0] = $2; } + $$->expr[0] = $2; } - | LOG expr - { $$ = new_node(1); - $$->pos = $1; - $$->type = NODETYPE_LOG; + | LOG expr + { $$ = new_node(1); + $$->pos = $1; + $$->type = NODETYPE_LOG; $$->flags |= ALLARGS_SCALAR; - $$->expr[0] = $2; } + $$->expr[0] = $2; } - | SIN expr - { $$ = new_node(1); - $$->pos = $1; - $$->type = NODETYPE_SIN; + | SIN expr + { $$ = new_node(1); + $$->pos = $1; + $$->type = NODETYPE_SIN; $$->flags |= ALLARGS_SCALAR; - $$->expr[0] = $2; } + $$->expr[0] = $2; } - | COS expr - { $$ = new_node(1); - $$->pos = $1; - $$->type = NODETYPE_COS; + | COS expr + { $$ = new_node(1); + $$->pos = $1; + $$->type = NODETYPE_COS; $$->flags |= ALLARGS_SCALAR; - $$->expr[0] = $2; } + $$->expr[0] = $2; } - | CLAMP '(' expr ',' expr ',' expr ')' - { $$ = new_node(3); - $$->pos = $1; - $$->type = NODETYPE_CLAMP; + | CLAMP '(' expr ',' expr ',' expr ')' + { $$ = new_node(3); + $$->pos = $1; + $$->type = NODETYPE_CLAMP; $$->flags |= ALLARGS_SCALAR; - $$->expr[0] = $3; - $$->expr[1] = $5; - $$->expr[2] = $7; } + $$->expr[0] = $3; + $$->expr[1] = $5; + $$->expr[2] = $7; } - | SEGMENT '(' expr ',' expr ',' expr ')' - { $$ = new_node(3); - $$->pos = $1; - $$->type = NODETYPE_SEGMENT; + | SEGMENT '(' expr ',' expr ',' expr ')' + { $$ = new_node(3); + $$->pos = $1; + $$->type = NODETYPE_SEGMENT; $$->flags |= ALLARGS_SCALAR; - $$->expr[0] = $3; - $$->expr[1] = $5; - $$->expr[2] = $7; } + $$->expr[0] = $3; + $$->expr[1] = $5; + $$->expr[2] = $7; } - | IDENT - { $$ = new_node(0); - $$->type = NODETYPE_IDENT; - $$->pos = -1; - $$->ident = $1; } - - | REAL - { $$ = new_node(0); - $$->pos = -1; - $$->type = NODETYPE_REAL; - $$->real = $1; } - - ; + | IDENT + { $$ = new_node(0); + $$->type = NODETYPE_IDENT; + $$->pos = -1; + $$->ident = $1; } + + | REAL + { $$ = new_node(0); + $$->pos = -1; + $$->type = NODETYPE_REAL; + $$->real = $1; } + + ; - -letexpr : IDENT '=' expr ',' letexpr - { $$ = new_node(2); - $$->type = NODETYPE_LET; - $$->pos = $2; - $$->ident = $1; - $$->expr[0] = $3; - $$->expr[1] = $5; } - | IDENT '=' expr IN expr - { $$ = new_node(2); - $$->pos = $2; - $$->type = NODETYPE_LET; - $$->ident = $1; - $$->expr[0] = $3; - $$->expr[1] = $5; } - ; + +letexpr : IDENT '=' expr ',' letexpr + { $$ = new_node(2); + $$->type = NODETYPE_LET; + $$->pos = $2; + $$->ident = $1; + $$->expr[0] = $3; + $$->expr[1] = $5; } + | IDENT '=' expr IN expr + { $$ = new_node(2); + $$->pos = $2; + $$->type = NODETYPE_LET; + $$->ident = $1; + $$->expr[0] = $3; + $$->expr[1] = $5; } + ; -vector : expr - { $$ = new_node(1); - $$->pos = $1->pos; - $$->type = NODETYPE_VEC1; - $$->expr[0] = $1; } - | vector ',' expr - { $$ = new_node(2); - $$->pos = $2; - $$->type = NODETYPE_VEC2; - $$->expr[0] = $1; - $$->expr[1] = $3; } - ; +vector : expr + { $$ = new_node(1); + $$->pos = $1->pos; + $$->type = NODETYPE_VEC1; + $$->expr[0] = $1; } + | vector ',' expr + { $$ = new_node(2); + $$->pos = $2; + $$->type = NODETYPE_VEC2; + $$->expr[0] = $1; + $$->expr[1] = $3; } + ; %% @@ -369,9 +369,9 @@ void yyerror(msg) - const char *msg; + const char *msg; { - extern int lexpos; + extern int lexpos; - show_error(lexpos, msg); + show_error(lexpos, msg); }
--- a/progs/minccalc/lex.c +++ b/progs/minccalc/lex.c @@ -1,7 +1,7 @@ /* A lexical scanner generated by flex */ /* Scanner skeleton version: - * $Header: /private-cvsroot/minc/progs/minccalc/lex.c,v 1.3 2001-04-26 19:12:38 neelin Exp $ + * $Header: /private-cvsroot/minc/progs/minccalc/lex.c,v 1.4 2001-04-26 20:11:21 neelin Exp $ */ #define FLEX_SCANNER @@ -789,19 +789,19 @@ YY_RULE_SETUP #line 38 "lex.l" { - setpos(); - yylval.ident = new_ident(yytext); - return IDENT; - } + setpos(); + yylval.ident = new_ident(yytext); + return IDENT; + } YY_BREAK case 28: YY_RULE_SETUP #line 43 "lex.l" { - setpos(); - sscanf(yytext, "%f", &yylval.real); - return REAL; - } + setpos(); + sscanf(yytext, "%f", &yylval.real); + return REAL; + } YY_BREAK case 29: YY_RULE_SETUP @@ -1710,13 +1710,13 @@ static YY_BUFFER_STATE lex_state; void lex_init(const char *s){ - lex_state = yy_scan_string(s); + lex_state = yy_scan_string(s); } void lex_finalize(){ - yy_delete_buffer(lex_state); + yy_delete_buffer(lex_state); } int yywrap(){ - return 1; + return 1; }
--- a/progs/minccalc/lex.l +++ b/progs/minccalc/lex.l @@ -9,44 +9,44 @@ %% -avg setpos(); return AVG; -sum setpos(); return SUM; -let setpos(); return LET; -len setpos(); return LEN; -isnan setpos(); return ISNAN; -sqrt setpos(); return SQRT; -abs setpos(); return ABS; -max setpos(); return MAX; -min setpos(); return MIN; -exp setpos(); return EXP; -log setpos(); return LOG; -sin setpos(); return SIN; -cos setpos(); return COS; -clamp setpos(); return CLAMP; -segment setpos(); return SEGMENT; -in setpos(); return IN; -to setpos(); return TO; -\< setpos(); return LT; -\<= setpos(); return LE; -\> setpos(); return GT; -\>= setpos(); return GE; +avg setpos(); return AVG; +sum setpos(); return SUM; +let setpos(); return LET; +len setpos(); return LEN; +isnan setpos(); return ISNAN; +sqrt setpos(); return SQRT; +abs setpos(); return ABS; +max setpos(); return MAX; +min setpos(); return MIN; +exp setpos(); return EXP; +log setpos(); return LOG; +sin setpos(); return SIN; +cos setpos(); return COS; +clamp setpos(); return CLAMP; +segment setpos(); return SEGMENT; +in setpos(); return IN; +to setpos(); return TO; +\< setpos(); return LT; +\<= setpos(); return LE; +\> setpos(); return GT; +\>= setpos(); return GE; == setpos(); return EQ; -\!= setpos(); return NE; -\! setpos(); return NOT; -&& setpos(); return AND; -\|\| setpos(); return OR; -[a-zA-Z][_a-zA-Z0-9]* { - setpos(); - yylval.ident = new_ident(yytext); - return IDENT; - } +\!= setpos(); return NE; +\! setpos(); return NOT; +&& setpos(); return AND; +\|\| setpos(); return OR; +[a-zA-Z][_a-zA-Z0-9]* { + setpos(); + yylval.ident = new_ident(yytext); + return IDENT; + } [0-9]+(\.[0-9]*)?([eE][-+]?[0-9]+)? { - setpos(); - sscanf(yytext, "%f", &yylval.real); - return REAL; - } -[ \t\n\f]+ setpos(); -. setpos(); return yytext[0]; + setpos(); + sscanf(yytext, "%f", &yylval.real); + return REAL; + } +[ \t\n\f]+ setpos(); +. setpos(); return yytext[0]; %% @@ -54,13 +54,13 @@ static YY_BUFFER_STATE lex_state; void lex_init(const char *s){ - lex_state = yy_scan_string(s); + lex_state = yy_scan_string(s); } void lex_finalize(){ - yy_delete_buffer(lex_state); + yy_delete_buffer(lex_state); } int yywrap(){ - return 1; + return 1; }