public override void ExitWhile_statement(NewDecafParser.While_statementContext context) { Template selfTemplate = getNodeTemplate(context); selfTemplate.Add("expression", getNodeTemplate(context.expression()).Render()); selfTemplate.Add("code", getNodeTemplate(context.whileBlock()).Render()); }
public override void ExitParens_expression(NewDecafParser.Parens_expressionContext context) { Template selfTemplate = getNodeTemplate(context); selfTemplate.Add("code", getNodeTemplate(context.expression()).Render()); }
public override void ExitReturn_statement(NewDecafParser.Return_statementContext context) { Template selfTemplate = getNodeTemplate(context); if (!context.expression().IsEmpty()) selfTemplate.Add("expression", getNodeTemplate(context.expression()).Render()); }
public override void ExitIf_else_statement(NewDecafParser.If_else_statementContext context) { Template selfTemplate = getNodeTemplate(context); selfTemplate.Add("expression", getNodeTemplate(context.expression()).Render()); selfTemplate.Add("ifcode", getNodeTemplate(context.ifBlock()).Render()); selfTemplate.Add("elseCode", getNodeTemplate(context.elseBlock()).Render()); }
public override void ExitAssign_statement(NewDecafParser.Assign_statementContext context) { Template selfTemplate = getNodeTemplate(context); selfTemplate.Add("expression", getNodeTemplate(context.expression()).Render()); selfTemplate.Add("local", context.Id()); }
public override void EnterWhile_statement(NewDecafParser.While_statementContext context) { Template selfTemplate = stg.GetInstanceOf("While"); string BTrue = LabelNameGenerator.getLabelName(); string BFalse = LabelNameGenerator.getLabelName(); string LBegin = LabelNameGenerator.getLabelName(); selfTemplate.Add("LTrue", BTrue); selfTemplate.Add("LFalse", BFalse); selfTemplate.Add("LBegin", LBegin); setNodeTemplate(context, selfTemplate); setNodeTrueLabel(context.expression(), BTrue); setNodeFalseLabel(context.expression(), BFalse); }
public override void EnterParens_expression(NewDecafParser.Parens_expressionContext context) { Template selfTemplate = stg.GetInstanceOf("Expression"); setNodeTemplate(context, selfTemplate); setNodeTrueLabel(context.expression(), getNodeTrueLabel(context)); setNodeFalseLabel(context.expression(), getNodeFalseLabel(context)); }
public override void EnterIf_else_statement(NewDecafParser.If_else_statementContext context) { Template selfTemplate = stg.GetInstanceOf("IfElse"); string BTrue = LabelNameGenerator.getLabelName(); string BFalse = LabelNameGenerator.getLabelName(); string IfEnd = LabelNameGenerator.getLabelName(); selfTemplate.Add("LTrue", BTrue); selfTemplate.Add("LFalse", BFalse); selfTemplate.Add("LEnd", IfEnd); setNodeTemplate(context, selfTemplate); setNodeTrueLabel(context.expression(), BTrue); setNodeFalseLabel(context.expression(), BFalse); }