aspose file tools*
The moose likes Java in General and the fly likes How to determine the value type in compiler when evaluate the syntax tree?  Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Java in General
Bookmark "How to determine the value type in compiler when evaluate the syntax tree?  " Watch "How to determine the value type in compiler when evaluate the syntax tree?  " New topic
Author

How to determine the value type in compiler when evaluate the syntax tree?

fei peng
Ranch Hand

Joined: Sep 15, 2003
Posts: 40
hi,every one
I post this topic in "Java in General (advanced)" also,but no result,so I post it here,
I'm writing a interpreter of a expression language by javacc,javacc works well ,it parses it ,and genrate a right syntax tree.but when I evaluate this tree,a problem appeared:
I was forced not to distinguish the different form of the value types of the identifiers in expression,and there is no type define statements,just one expression, but there is two types of value,the numric and the string(string type is only used as function argumnet),for example: in expression "a*b","a" should be numeric,but in "sum(a)" ,"a" should be string,in tree node ,they all are identifiers,how can I resolve this?
The EBNF of the language is following(just focus on the production 9-12,identifiers act as function name at the same time):
1.)formalu->logicExpression
2.)logicExpression->AndExpression {|| AndExpression}
3.)AndExpression->EqualityExpression {&& EqualityExpression}
4.)EqualityExpression->RelationalExpression {(==|!=) RelationalExpression}
5.)RelationalExpression->AdditiveExpression {(>|<|>=|<=) AdditiveExpression}
6.)AdditiveExpression->MultiplicativeExpression {(+|-) MultiplicativeExpression}
7.)MultiplicativeExpression->UnaryExpression {(*|/|%) UnaryExpression}
8.)UnaryExpression->[(+|-)]literal
9.)literal-><INTEGER_LITERAL>|<FLOATING_POINT_LITERAL>|<COLUMNNAME>|<IDENTIFIER> [arguments]|(formalu)
10.)arguments->([argumentList])
11.)argumentList->argument {,argument}
12.)argument->{argumentList}|formula
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: How to determine the value type in compiler when evaluate the syntax tree?
 
Similar Threads
How to determine the value type in compiler when evaluate the syntax tree?
Configure EL function in tag library descriptor?
doubt in value for rtexprvalue element in tld
MS Exchange web service: If the 'nillable' attribute is false in the schema, the 'xsi:nil' attribute
calling a java Script file into the Jsp