Esempio n. 1
0
        static int Main(string[] args)
        {
            if (args.Length == 0)
            {
                Console.WriteLine("Please enter a numeric argument.");
                return(1);
            }

            var lexer = new LexerManager(args[0]);

            return(0);
        }
Esempio n. 2
0
        /// <summary>
        ///		Inicializa el analizador léxico
        /// </summary>
        private LexerManager GetLexer()
        {
            LexerManager manager = new LexerManager();

            // Crea las reglas
            manager.Rules.Add(new RuleDelimited(RuleString, "\"", "\"", false, false, false, false)
            {
                MustTrim = false
            }
                              );                                                                              // ... cadenas
            manager.Rules.Add(new RuleDelimited(RuleComment, "/*", "*/", false, false, false, false));        // ... comentario
            manager.Rules.Add(new RuleDelimited(RuleComment, "--", string.Empty, true, false, false, false)); // ... comentario hasta final de línea
            manager.Rules.Add(new RuleDelimited(RuleSql, "<%", "%>", false, false, false, false));            // ... sentencias SQL
            manager.Rules.Add(new RulePattern(RuleNumber, "9", "9."));                                        // ... definición de números
            manager.Rules.Add(new RuleWordFixed(RuleReservedWord, new string[]
            {
                "if",
                "else",
                "declare",
                "set",
                "int",
                "string",
                "date",
                "float",
                "for",
                "to",
                "step",
                "while",
                "do",
                "sub",
                "call",
                "return"
            }
                                                ));
            manager.Rules.Add(new RulePattern(RuleVariable, "A", "A9_"));                     // ... definición de variables
            manager.Rules.Add(new RuleWordFixed(RuleSeparator,
                                                new string[] {
                "(", ")",
                "+", "-", "*", "/", "%",
                "<", ">", ">=", "<=", "==", "!=",
                "||", "&&", "!",
                "=", ",",
                "{", "}",
                ";"
            }
                                                )
                              );
            // Devuelve el manager
            return(manager);
        }
Esempio n. 3
0
        static int Main(string[] args)
        {
            if (args.Length == 0)
            {
                Console.WriteLine("Please enter a numeric argument.");

                return(1);
            }

            ILexer lexer = new LexerManager(args[0]);
            var    s     = new Analizer.SyntacticalAnalizer(lexer);

            s.Run();

            return(0);
        }