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); }
/// <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); }
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); }