summaryrefslogtreecommitdiff
path: root/src/parser.y
diff options
context:
space:
mode:
Diffstat (limited to 'src/parser.y')
-rw-r--r--src/parser.y31
1 files changed, 8 insertions, 23 deletions
diff --git a/src/parser.y b/src/parser.y
index 2f4379a..58ca695 100644
--- a/src/parser.y
+++ b/src/parser.y
@@ -295,19 +295,13 @@ single_module_instantiation:
expr:
TOK_TRUE {
- $$ = new Expression();
- $$->type = "C";
- $$->const_value = new Value(true);
+ $$ = new Expression(Value(true));
} |
TOK_FALSE {
- $$ = new Expression();
- $$->type = "C";
- $$->const_value = new Value(false);
+ $$ = new Expression(Value(false));
} |
TOK_UNDEF {
- $$ = new Expression();
- $$->type = "C";
- $$->const_value = new Value();
+ $$ = new Expression(Value::undefined);
} |
TOK_ID {
$$ = new Expression();
@@ -323,20 +317,14 @@ expr:
free($3);
} |
TOK_STRING {
- $$ = new Expression();
- $$->type = "C";
- $$->const_value = new Value(std::string($1));
- free($1);
+ $$ = new Expression(Value(std::string($1)));
+ free($1);
} |
TOK_NUMBER {
- $$ = new Expression();
- $$->type = "C";
- $$->const_value = new Value($1);
+ $$ = new Expression(Value($1));
} |
'[' expr ':' expr ']' {
- Expression *e_one = new Expression();
- e_one->type = "C";
- e_one->const_value = new Value(1.0);
+ Expression *e_one = new Expression(Value(1.0));
$$ = new Expression();
$$->type = "R";
$$->children.push_back($2);
@@ -351,10 +339,7 @@ expr:
$$->children.push_back($6);
} |
'[' optional_commas ']' {
- $$ = new Expression();
- $$->type = "C";
- $$->const_value = new Value();
- $$->const_value->type = Value::VECTOR;
+ $$ = new Expression(Value(Value::VectorType()));
} |
'[' vector_expr optional_commas ']' {
$$ = $2;
contact: Jan Huwald // Impressum