📄 simpleexpressionnode.java
字号:
class SimpleExpressionNode extends EvaluatableNode
{
EvaluatableNode vSimpleExpressionNode;
Value vSimpleExpressionValue;
static SimpleExpressionNode parserSimpleExpression(Environment env,Scanner s) throws ParserException, ScannerException
{
String tmpExpressionType;
EvaluatableNode tmpSimpleExpressionNode;
Token t= s.followingToken();
if(LiteralNode.mIsLiteral(s))
tmpSimpleExpressionNode= LiteralNode.parserLiteral(env,s);
else if(BracketedExpressionNode.mIsBracketedExpression(s))
tmpSimpleExpressionNode= BracketedExpressionNode.parserBracketedExpression(env,s);
else if(t.isSimple()&&((SimpleToken)t).isMessageSend()) // MessageSend .
tmpSimpleExpressionNode= MessageSendNode.parseMessageSend(env,s);
else if(PrimitiveMessageNode.mIsPrimitiveMessage(s)) //PrimitiveMessage
tmpSimpleExpressionNode= PrimitiveMessageNode.parsePrimitiveMessage(env,s);
else if(t.isBracket()&&((BracketToken)t).isLeftBracket()) //Identifier Arguments->Identifier ([Expression])
tmpSimpleExpressionNode= UserMessageNode.parserUserMessage(env,s);
else tmpSimpleExpressionNode= IdentifierNode.parserIndentifier(env,s);
return new SimpleExpressionNode(tmpSimpleExpressionNode);
}
SimpleExpressionNode()
{
vSimpleExpressionNode= null;
}
SimpleExpressionNode(EvaluatableNode aSimpleExpressionNode)
{
vSimpleExpressionNode= aSimpleExpressionNode;
}
String format(int indent)
{
return vSimpleExpressionNode.format(indent);
}
Value evaluate(Environment env) throws InterpreterException
{
return vSimpleExpressionNode.evaluate(env);
}
boolean typeCheck(Environment env) throws InterpreterException
{
if(vSimpleExpressionNode.typeCheck(env))
{
vSimpleExpressionValue= vSimpleExpressionNode.evaluate(env);
return true;
}
ProgramNode.mTypeCheckError(this.format(4));
return false;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -