Exemplo n.º 1
0
        static void Run(string code)
        {
            List <CodeTokenizer.Token> tokens = null;
            StatementBlock             block  = null;

            try {
                tokens = CodeTokenizer.Tokenize(code, file);
                var tokensEnum = (IEnumerator <CodeTokenizer.Token>)tokens.GetEnumerator();
                block = TokenParser.Parse(ref tokensEnum, enviroment, CodePosition.GetExternal());
            } catch (WordScriptException ex) {
                Console.WriteLine(ex.Message);
            }
            if (tokens != null)
            {
                foreach (var token in tokens)
                {
                    Console.WriteLine(token.ToString());
                }
            }
            Console.WriteLine("");
            if (block != null)
            {
                foreach (var node in block.GetSyntaxNodes())
                {
                    Console.WriteLine(node.Debug());
                }

                var ret = block.Evaluate();

                Console.WriteLine(ret?.ToString() ?? "null");
            }
        }
Exemplo n.º 2
0
 protected Language(string displayName, List <string> fileExtensions, string langFileDescription,
                    CodeCleaner codeCleaner, CodeTokenizer codeTokenizer, TokenFilterChain tokenFilterChain, CodeParser codeParser,
                    ThreeTextController textController, ThreeStructureController threeStructureController)
 {
     DisplayName              = displayName;
     FileExtensions           = fileExtensions;
     LangFileDescription      = langFileDescription;
     CodeCleaner              = codeCleaner;
     CodeTokenizer            = codeTokenizer;
     TokenFilterChain         = tokenFilterChain;
     CodeParser               = codeParser;
     TextController           = textController;
     ThreeStructureController = threeStructureController;
 }
Exemplo n.º 3
0
        public void Tokenizing()
        {
            var tokens = CodeTokenizer.Tokenize("print IN add \"Hello\" \"world\" . .\n  mul 5 10 , string , add \" = 25\" , print .");

            Assert.AreEqual(tokens.Count, 18);
        }