2010-07-12 87 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))