Statement ParseStatement(string str)
        {
            var p = new Parser(Current, new StringReader(str));

            var stmt = p.Parse() as Sequence;

            if (stmt.First.Kind == StatementKind.Nop)
                return stmt.Second;

            return stmt;
        }
        public void TestBlockToString()
        {
            var str = " { a=3; } ";

            var generated = "{\r\n    a = 3;\r\n}\r\n";

            var p = new Parser(LibraryContext.Current, new StringReader(str));

            var e = p.Parse();

            Assert.AreEqual(generated, e.ToString());

            var minified = "{a=3;}";

            Assert.AreEqual(minified, e.ToString(GmlFormatter.Minifier));
        }
        Expression ParseExpression(string str)
        {
            var p = new Parser(Current, new StringReader(str));

            return p.ParseExpression();
        }
        Value ParseExpression(string e)
        {
            var p = new Parser(Current, new StringReader(e));

            return p.ParseExpression().Eval();
        }