public void Foo()
        {
            var parser = new MuteScriptParser();
            var lexer = new MuteGrammarLexer(new Antlr4.Runtime.AntlrInputStream("{ 123 . 456 }"));
            var muteParser = new MuteGrammarParser(new Antlr4.Runtime.UnbufferedTokenStream(lexer));

            var result = parser.VisitStatementBlock(muteParser.statementBlock());
        }
        public void ConstInteger_ReturnsConstIntegerExpression()
        {
            var parser = new MuteScriptParser();
            var lexer = new MuteGrammarLexer(new Antlr4.Runtime.AntlrInputStream("123"));
            var muteParser = new MuteGrammarParser(new Antlr4.Runtime.UnbufferedTokenStream(lexer));

            var result = (ConstIntegerExpression)parser.VisitConstExpression(muteParser.constExpression());
            Assert.That(result?.ToString(), Is.EqualTo("123"));
        }
        public void ConstExpression_ReturnsTerminal(string input, Type expectedType)
        {
            var parser = new MuteScriptParser();
            var lexer = new MuteGrammarLexer(new Antlr4.Runtime.AntlrInputStream(input));
            var muteParser = new MuteGrammarParser(new Antlr4.Runtime.UnbufferedTokenStream(lexer));

            var result = parser.VisitConstExpression(muteParser.constExpression());

            Assert.That(result, Is.TypeOf(expectedType));
            Assert.That(result?.ToString(), Is.EqualTo(input));
        }
 private static Module ParseModule(string code)
 {
     var parser = new MuteScriptParser();
     return  (Module)parser.Parse(code);
 }
        private static Method ParseMethod(string code)
        {
            var parser = new MuteScriptParser();
            var lexer = new MuteGrammarLexer(new Antlr4.Runtime.AntlrInputStream(code));
            var muteParser = new MuteGrammarParser(new Antlr4.Runtime.UnbufferedTokenStream(lexer));

            return (Method)parser.VisitClassMember(muteParser.classMember());
        }
 private static Expression ParseExpression(string code)
 {
     var parser = new MuteScriptParser();
     var lexer = new MuteGrammarLexer(new Antlr4.Runtime.AntlrInputStream(code));
     var muteParser = new MuteGrammarParser(new Antlr4.Runtime.UnbufferedTokenStream(lexer));
     var exp = muteParser.expression();
     return (Expression)parser.VisitExpression(exp);
 }
        private static Class ParseClass(string code)
        {
            var parser = new MuteScriptParser();
            var lexer = new MuteGrammarLexer(new Antlr4.Runtime.AntlrInputStream(code));
            var muteParser = new MuteGrammarParser(new Antlr4.Runtime.UnbufferedTokenStream(lexer));

            return (Class)parser.VisitTypeDefinitionStatement(muteParser.typeDefinitionStatement());
        }
        public void TestFoo()
        {
            const string input = @"
            module foo

            public class bar
            {
            public meth(const arg : int) : bool => abc <- 100
            }
            ";

            var parser = new MuteScriptParser();
            var lexer = new MuteGrammarLexer(new Antlr4.Runtime.AntlrInputStream(input));
            var muteParser = new MuteGrammarParser(new Antlr4.Runtime.UnbufferedTokenStream(lexer));

            var cmp = parser.VisitCompileUnit(muteParser.compileUnit());
            Console.WriteLine(cmp.ToString());
        }