Beispiel #1
-1
        public static List<Error> Resolve(Statement st)
        {
            var errors = new List<Error>();

            if (st is Assignment)
            {
                var s = st as Assignment;
                errors.AddRange(AssignmentResolver.Resolve(s));
            }

            if (st is IfStatement)
            {
                var s = st as IfStatement;
                errors.AddRange(IfStatementResolver.Resolve(s));
            }

            if (st is WhileStatement)
            {
                var s = st as WhileStatement;
                errors.AddRange(WhileStatementResolver.Resolve(s));
            }

            if (st is ForStatement)
            {
                var s = st as ForStatement;
                errors.AddRange(ForStatementResolver.Resolve(s));
            }

            if (st is Invoke)
            {
                var s = st as Invoke;
                errors.AddRange(ProcInvokeResolver.Resolve(s));
            }

            if (st is Body)
            {
                var s = st as Body;
                foreach (Statement child in s.GetChildren())
                    errors.AddRange(Resolve(child));
            }

            return errors;
        }
Beispiel #2
-1
        private static void Emit(Statement st)
        {
            if (st is Assignment)
            {
                EmitAssignment(st as Assignment);
            }

            if (st is IfStatement)
            {
                EmitIfStatement(st as IfStatement);
            }

            if (st is WhileStatement)
            {
                EmitWhileStatement(st as WhileStatement);
            }

            if (st is ForStatement)
            {
                EmitForStatement(st as ForStatement);
            }

            if (st is Invoke)
            {
                EmitInvoke(st as Invoke);
            }

            if (st is Body)
            {
                var s = st as Body;
                foreach (Statement child in s.Statements)
                    EmitBody(s);
            }
        }
Beispiel #3
-1
 public void AddStatement(Statement st)
 {
     Statements.Add(st);
 }
Beispiel #4
-2
        private static void EmitStatement(MethodBuilder mb, Statement st)
        {
            if (st is Assignment)
            {
                EmitAssignment(mb, st as Assignment);
            }

            if (st is IfStatement)
            {
                EmitIfStatement(mb, st as IfStatement);
            }

            if (st is WhileStatement)
            {
                EmitWhileStatement(mb, st as WhileStatement);
            }

            if (st is ForStatement)
            {
                EmitForStatement(mb, st as ForStatement);
            }

            if (st is Invoke)
            {
                EmitInvoke(mb, st as Invoke);
            }

            if (st is Body)
            {
                var s = st as Body;
                foreach (Statement child in s.GetChildren())
                    EmitBody(mb, s);
            }
        }