1 package persistence.antlr; 2 3 8 9 import java.util.Hashtable ; 10 import java.util.Enumeration ; 11 import java.io.IOException ; 12 13 import persistence.antlr.collections.impl.BitSet; 14 import persistence.antlr.collections.impl.Vector; 15 16 17 18 class ParserGrammar extends Grammar { 19 20 21 ParserGrammar(String className_, Tool tool_, String superClass) { 22 super(className_, tool_, superClass); 23 } 24 25 26 public void generate() throws IOException { 27 generator.gen(this); 28 } 29 30 protected String getSuperClass() { 32 if (debuggingOutput) 34 return "debug.LLkDebuggingParser"; 35 return "LLkParser"; 36 } 37 38 43 public void processArguments(String [] args) { 44 for (int i = 0; i < args.length; i++) { 45 if (args[i].equals("-trace")) { 46 traceRules = true; 47 antlrTool.setArgOK(i); 48 } 49 else if (args[i].equals("-traceParser")) { 50 traceRules = true; 51 antlrTool.setArgOK(i); 52 } 53 else if (args[i].equals("-debug")) { 54 debuggingOutput = true; 55 antlrTool.setArgOK(i); 56 } 57 } 58 } 59 60 62 public boolean setOption(String key, Token value) { 63 String s = value.getText(); 64 if (key.equals("buildAST")) { 65 if (s.equals("true")) { 66 buildAST = true; 67 } 68 else if (s.equals("false")) { 69 buildAST = false; 70 } 71 else { 72 antlrTool.error("buildAST option must be true or false", getFilename(), value.getLine(), value.getColumn()); 73 } 74 return true; 75 } 76 if (key.equals("interactive")) { 77 if (s.equals("true")) { 78 interactive = true; 79 } 80 else if (s.equals("false")) { 81 interactive = false; 82 } 83 else { 84 antlrTool.error("interactive option must be true or false", getFilename(), value.getLine(), value.getColumn()); 85 } 86 return true; 87 } 88 if (key.equals("ASTLabelType")) { 89 super.setOption(key, value); 90 return true; 91 } 92 if (super.setOption(key, value)) { 93 return true; 94 } 95 antlrTool.error("Invalid option: " + key, getFilename(), value.getLine(), value.getColumn()); 96 return false; 97 } 98 } 99 | Popular Tags |