Esempio n. 1
0
        private void GenWhile(AegisWhile aegisWhile)
        {
            if (aegisWhile.Exp.GetType() == typeof(ComposExpr))
            {
                WriteNew("while ");

                Write(TranslateExpr(aegisWhile.Exp));

                WriteLine("");
            }
            else
            {
                WriteNew("while (");

                Write(TranslateExpr(aegisWhile.Exp));

                WriteLine(")");
            }
            WriteNewLine("{0}", "{");
            tabLevel++;

            GenBlock(aegisWhile.Items);

            tabLevel--;
            WriteNewLine("{0}", "}");
        }
Esempio n. 2
0
        private AegisWhile MatchWhile()
        {
            Match(TokenType.While);

            Expr exp = MatchExpr();

            MatchNewline();

            var ai = new AegisWhile();

            ai.Exp = exp;
            PushNode(ai);
            curNode.Items = MatchWhileBlock().Items;
            ai            = (AegisWhile)PopNode();

            Match(TokenType.EndWhile);
            Match(TokenType.NewLine);

            return(ai);
        }