Example #1
0
        public IStatementContext AddStatement(StatementSyntax statement)
        {
            if (statement is ExpressionStatementSyntax exp)
            {
                subexpressions.Add(exp.Expression);
            }
            else
            {
                var returnType = ScriptDataType.Void;

                var annotations = statement.GetAnnotations(ScriptGenAnnotations.TypeAnnotationKind);

                if (annotations.Any())
                {
                    returnType = (ScriptDataType)int.Parse(annotations.First().Data);
                }

                subexpressions.Add(SyntaxUtil.CreateImmediatelyInvokedFunction(returnType, new[] { statement }));
            }

            return(this);
        }