示例#1
0
        public void Setup()
        {
            ICharStream  stream = CharStreams.fromString(TestCode);
            ITokenSource lexer  = new DazelLexer(stream);
            ITokenStream tokens = new CommonTokenStream(lexer);

            parseTree = new DazelParser(tokens)
            {
                BuildParseTree = true
            }.start();
        }
示例#2
0
        private IEnumerable <IParseTree> BuildParseTrees()
        {
            List <IParseTree> parseTrees = new List <IParseTree>();

            foreach (string file in files)
            {
                ICharStream  stream = fromFile ? CharStreams.fromPath(file) : CharStreams.fromString(file);
                ITokenSource lexer  = new DazelLexer(stream);
                ITokenStream tokens = new CommonTokenStream(lexer);
                DazelParser  parser = new DazelParser(tokens)
                {
                    BuildParseTree = true
                };
                parser.AddErrorListener(new DazelErrorListener());

                parseTrees.Add(parser.start());
            }

            return(parseTrees);
        }
示例#3
0
        public static AbstractSyntaxTree BuildAst(params string[] code)
        {
            List <IParseTree> parseTrees = new List <IParseTree>();

            DazelLogger.ThrowExceptions = true;

            foreach (string s in code)
            {
                ICharStream  stream = CharStreams.fromString(s);
                ITokenSource lexer  = new DazelLexer(stream);
                ITokenStream tokens = new CommonTokenStream(lexer);
                DazelParser  parser = new DazelParser(tokens)
                {
                    BuildParseTree = true
                };
                parser.AddErrorListener(new DazelErrorListener());

                parseTrees.Add(parser.start());
            }

            AbstractSyntaxTree ast = new AstBuilder().BuildAst(parseTrees);

            return(ast);
        }