public object VisitIfStatementAST([NotNull] IfStatementASTContext context) { Visit(context.condition()); int jumpIfFalsePosition = LineCount; AddLine("JUMP_IF_FALSE"); Visit(context.statement(0)); if (context.ELSE() != null) { int jumpAbsolutePosition = LineCount; AddLine("JUMP_ABSOLUTE"); SetLineOnRealIndexOf(jumpIfFalsePosition, $"JUMP_IF_FALSE {LineCount}"); Visit(context.statement(1)); SetLineOnRealIndexOf(jumpAbsolutePosition, $"JUMP_ABSOLUTE {LineCount}"); } else { SetLineOnRealIndexOf(jumpIfFalsePosition, $"JUMP_IF_FALSE {LineCount}"); } return(null); }
public object VisitIfStatementAST([NotNull] IfStatementASTContext context) { if (context.condition() != null) { Visit(context.condition()); } var returnedTypes = new List <Pair <string, IToken> >(); context.statement().ToList().ForEach(statement => { var list = Visit(statement) as List <Pair <string, IToken> >; if (list != null) { returnedTypes.AddRange(list); } }); return(returnedTypes); }