}
else if (BEEV::parserInterface->letMgr.isLetDeclared(str)) // a let.
{
- nptr= BEEV::parserInterface->LookupOrCreateSymbol(str);
- nptr = BEEV::parserInterface->letMgr.ResolveID(nptr);
+ nptr = BEEV::parserInterface->letMgr.resolveLet(str);
found = true;
}
// Check valuesize to see if it's a prop var. I don't like doing
// type determination in the lexer, but it's easier than rewriting
// the whole grammar to eliminate the term/formula distinction.
- smt2lval.node = BEEV::parserInterface->newNode(BEEV::parserInterface->letMgr.ResolveID(nptr));
+ smt2lval.node = BEEV::parserInterface->newNode(nptr);
if ((smt2lval.node)->GetType() == BEEV::BOOLEAN_TYPE)
return FORMID_TOK;
else
}
| FORMID_TOK
{
- $$ = parserInterface->newNode(parserInterface->letMgr.ResolveID(*$1));
+ $$ = parserInterface->newNode(*$1);
parserInterface->deleteNode($1);
}
| LPAREN_TOK EQ_TOK an_term an_term RPAREN_TOK
let: LPAREN_TOK STRING_TOK an_formula RPAREN_TOK
{
- ASTNode s = BEEV::parserInterface->LookupOrCreateSymbol($2->c_str());
-
- //set the valuewidth of the identifier
- s.SetValueWidth($3->GetValueWidth());
- s.SetIndexWidth($3->GetIndexWidth());
-
//populate the hashtable from LET-var -->
//LET-exprs and then process them:
//
//
//2. Ensure that LET variables are not
//2. defined more than once
- parserInterface->letMgr.LetExprMgr(s,*$3);
-
- delete $2;
+ parserInterface->letMgr.LetExprMgr(*$2,*$3);
+ delete $2;
parserInterface->deleteNode( $3);
}
| LPAREN_TOK STRING_TOK an_term RPAREN_TOK
{
- ASTNode s = BEEV::parserInterface->LookupOrCreateSymbol($2->c_str());
-
- //set the valuewidth of the identifier
- s.SetValueWidth($3->GetValueWidth());
- s.SetIndexWidth($3->GetIndexWidth());
-
//populate the hashtable from LET-var -->
//LET-exprs and then process them:
//
//
//2. Ensure that LET variables are not
//2. defined more than once
- parserInterface->letMgr.LetExprMgr(s,*$3);
-
- delete $2;
+ parserInterface->letMgr.LetExprMgr(*$2,*$3);
+ delete $2;
parserInterface->deleteNode( $3);
}
an_term:
TERMID_TOK
{
- $$ = parserInterface->newNode(parserInterface->letMgr.ResolveID(*$1));
+ $$ = parserInterface->newNode((*$1));
parserInterface->deleteNode( $1);
}
| LPAREN_TOK an_term RPAREN_TOK