[antlr-interest] Rookie attempt at ANTLR 3 (using the current ANTLRWorks under Window XP)

Foolish Ewe foolishewe at hotmail.com
Wed Oct 25 13:30:29 PDT 2006


Hi Folks:

I'm trying ANTLR 3 today, using ANTLRworks (so far it seems like Bovet and 
Parr have some
reallly neat stuff in there).

I'm trying to compile the attached grammar in the tool and am getting a 
message:

Cannot generate the grammar because grammar TestGrammar : no start rule (no 
rule can
obviously be followed by EOF).

This will probably out me to my coauthors and students, but I'm not a big 
fan of the words
obviously/easily or their variants :-).

What does this message mean, how can I better convey to ANTLR that startRule 
is the start rule?

Thanks:

Bill M.
// Test hoisting and use of predicates to allow us to use "undelimited 
strings"
grammar TestGrammar;

// I'm not using tokens in this langauge yet.
//tokens = { }

@members {
	public static void main(String[] args) throws Exception {
		TestGrammarLexer lex = new TestGrammmarLexer(new 
ANTLRFileStream(args[0]));
		CommonTokenStream tokens = new CommonTokenStream(lex);

		SimpleCalc parser = new SimpleCalc(tokens);
		try {
			parser.startRule();
		} catch (RecognitionException e)  {
			e.printStackTrace();
		}
	}

	// see if we need to use this sort of flag or if parser based checks are 
enough
	// public boolean recognizeKeyWords = true; // should we recognize 
keywords?

	// is a token input.LT(i)'s lexeme at least minLength characters long and a 
key word prefix match?
	public boolean kwpm(int i, String pattern, int minlength){
		booleean result = false;
		String lexeme = input.LT(i).getText().toLower(); // Poor man's case 
insensitivity :-)
		if (lexeme.length() < minLength){ // lexeme too short?
			result = false;
		} else if (lexeme.length() > pattern.length()){ // lexeme too long?
			result = false;
		} else { // now we have to check the content
			result = pattern.startsWith(lexeme); // is the lexeme a prefix of the 
pattern?
		}
		return result;

_________________________________________________________________
Use your PC to make calls at very low rates 
https://voiceoam.pcs.v2s.live.com/partnerredirect.aspx



More information about the antlr-interest mailing list