AjScript.Interpreter.Parser.ParseCommand C# (CSharp) Метод

ParseCommand() публичный Метод

public ParseCommand ( ) : ICommand
Результат ICommand
        public ICommand ParseCommand()
        {
            Token token = this.lexer.NextToken();

            if (token == null)
                return null;

            if (token.TokenType == TokenType.Name)
            {
                if (token.Value == "if")
                    return this.ParseIfCommand();

                if (token.Value == "while")
                    return this.ParseWhileCommand();

                if (token.Value == "for")
                    return this.ParseForCommand();

                if (token.Value == "return")
                    return this.ParseReturnCommand();

                if (token.Value == "var")
                    return this.ParseVarCommand();

                if (token.Value == "delete")
                    return this.ParseDeleteCommand();
            }

            if (token.TokenType == TokenType.Delimiter && token.Value == "{")
                return this.ParseCompositeCommand();

            this.lexer.PushToken(token);

            ICommand command = this.ParseSimpleCommand();

            if (command == null)
                throw new ParserException(string.Format("Unexpected '{0}'", token.Value));

            this.Parse(TokenType.Delimiter, ";");

            return command;
        }

Usage Example

Пример #1
0
        static void Main(string[] args)
        {
            IContext context = new Context();
            Parser parser = new Parser(System.Console.In);
            context.DefineVariable("write");
            context.SetValue("write", new WriteFunction());
            context.DefineVariable("writeln");
            context.SetValue("writeln", new WriteLineFunction());
            context.DefineVariable("Object");
            context.SetValue("Object", new ObjectFunction(context));

            Console.WriteLine("AjScript 0.1 (JavaScript-like Interpreter in C#)");

            for (ICommand cmd = parser.ParseCommand(); cmd != null; cmd = parser.ParseCommand())
                cmd.Execute(context);
        }
All Usage Examples Of AjScript.Interpreter.Parser::ParseCommand