Exemplo n.º 1
0
        public static ExecutionResult Execute(TestCaseSourceFile[] files)
        {
            foreach (var scriptFile in files)
            {
                var tokens = Lexer.Tokenize(scriptFile);

                var syntaxTree = LLParser.Parse(tokens);

                Evaluator.Eval(syntaxTree);
            }

            return(new ExecutionResult());
        }
Exemplo n.º 2
0
        public IEnumerable <FXmlElement> Deserialize(Stream stream)
        {
            errors = null;

            List <string> lines = new List <string>();

            using (StreamReader reader = new StreamReader(stream))
            {
                while (!reader.EndOfStream)
                {
                    lines.Add(reader.ReadLine());
                }
            }

            Preprocessor preprocessor = new Preprocessor();
            string       code         = preprocessor.FixString(lines);

            TokenParser tokenParser = new TokenParser();
            bool        result      = tokenParser.Parse(code);

            if (!result)
            {
                errors = new List <Error>();
                errors.Add(tokenParser.Error);
                return(null);
            }

            LLParser llParser = new LLParser();

            result = llParser.Parse(tokenParser.Tokens);
            if (!result)
            {
                errors = new List <Error>();
                errors.AddRange(llParser.Errors);
                return(null);
            }

            return(llParser.FXmlElements);
        }