Example #1
0
        internal OutputStatement GenOutputStatement(Program program, Expression expr)
        {
            program.Require(GlobalFunction.PRNT);
            var os = new OutputStatement()
            {
                Value = expr
            };

            return(os);
        }
Example #2
0
        internal OutputStatement GenOutputStatement(Program program, Variable v)
        {
            program.Require(GlobalFunction.PRNT);
            var os = new OutputStatement()
            {
                Value = GenVariableInvocationExpression(program, v, _options.MaxExpressionDepth)
            };

            return(os);
        }
Example #3
0
        public static Expression Analyze(AnalysisContext analysisContext, OutputStatement node)
        {
            List<Expression> expressionsToWrite = new List<Expression>();

            foreach (var expr in node.ExpressionsToWrite)
            {
                Expression expressionToWrite = ExpressionAnalyzer.Analyze(analysisContext, expr);
                Expression writeToOutputExpression = analysisContext.CreateWriteToOutputExpression(expressionToWrite);
                expressionsToWrite.Add(writeToOutputExpression);
            }

            DebugAssert.IsGreater(0, expressionsToWrite.Count, "number of output expressions should have been > 0");
            return Expression.Block(expressionsToWrite);
        }
Example #4
0
 public override void BeforeVisit(OutputStatement node)
 {
     base.AfterVisit(node);
     _result = OutputStatementAnalyzer.Analyze(_analysisContext, node);
 }