2010-07-12 107 views

回答

1

简单的递归算法可以将前缀顺序表达式转换为语法树。

GetNextPrefixExpression(tokenStream) 
    nextToken = tokenStream.GetNextToken() 
    if nextToken.IsValue() 
     return new Value(nextToken) 
    else if nextToken.IsUnaryOperator() 
     return new UnaryOperator(nextToken, GetNextPrefixExpression(tokenStream)) 
    else if nextToken.IsBinaryOperator() 
     return new BinaryOperator(nextToken, GetNextPrefixExpression(tokenStream), GetNextPrefixExpression(tokenStream)) 
    else if nextToken.IsTrinaryOperator() 
     return new TrinaryOperator(nextToken, GetNextPrefixExpression(tokenStream), GetNextPrefixExpression(tokenStream), GetNextPrefixExpression(tokenStream))