%{ package main import "fmt" %} %union { sval S ival I fval F cval C any interface{} vector []interface{} } %token STRING QUOTED %token INTEGER %token FLOAT %token COMPLEX %token QUOTE DOT RAVEL SLASH BACKSLASH LBRACE RBRACE LBRACKET RBRACKET %token PLUS MINUS %token DIAMOND EACH NEG LESS LESSEQ EQ MOREEQ MORE NEQ OR AND TIMES DIV %token GRADEDOWN GRADEUP ROTH TRANSPOSE ROTV LOG NOR NAND FACTORIAL INVERSE %token ROLL OMEGA EPSILON RHO NOT TAKE DROP IOTA PI EXP ASSIGN BRANCH %token QUOTEQUAD ZILDE %token ALPHA CEILING FLOOR DEL DELTA JOT QUAD EXECUTE FORMAT %token ENCLOSE DISCLOSE DECODE ENCODE MAGNITUDE SCAN REDUCE %type value %type vector %% line : /* empty */ | vector { fmt.Println($1) } vector : value { $$ = append($$, $1) } | vector value { $$ = append($1, $2) } value : STRING { $$ = $1 } | QUOTED { $$ = $1 } | INTEGER { $$ = $1 } | FLOAT { $$ = $1 } | COMPLEX { $$ = $1 } %%