Hi Carl: If its not in the UserManual, http://www.ccs.neu.edu/research/demeter/DemeterJava/UserManual/ then it is in the CHANGES file: http://www.ccs.neu.edu/research/demeter/DemeterJava/use/latest-demjava/CHANGES is a good rule to follow. Josh Marshall is this week putting the terminal documentation into the User Manual. From the CHANGES file: Two new terminal classes are available, Line and Word, which represents a line (everthing up to the next newline) and a word (everything up to the next whitespace), respectively. Where it appears in the class dictionary grammar, the rest of the current line or word will be read verbatim and put into the Line or Word object (which can be converted toString() just like Ident and Text). Note that a Word is different from an Ident in that it may contain any non-whitespace character, rather than just alphanumerics. Caveat: don't use Line or Word at a choice point in the grammar (i.e., anywhere you can put a lookahead specification); because these overlap with other tokens, they use separate lexical states, which are not taken into account when lookahead is done. In particular, you can't use them by themselves in a repetition class, for example Words ~ { Word }. etc. > How can we define new terminal types to the parser Unfortunately this is not possible unless you maintain your own grammar.jj file (see the 1997 Motorola project). >I need to match an IBM internal part number which is of the form: 75H2134 Our recommendation for this is to write some script which produces "75H2134" or use your grammar.jj file. -- Karl ======================================== Hello, Is there documentation as to what the various terminal types will match in an input sentence? String I understand to be anything between quotes "..." Integer and other numbers should be clear. But Ident and Word are not explained. I need to match an IBM internal part number which is of the form: 75H2134 Ident doesn't seem to work, I assume because there are numbers or atleast leading numbers. Word, which I should thing is anything between whitespace works but only if I precede it with a piece of syntax. Is there an explaination of the terminal types? Especially, Ident, Word, Line... How can we define new terminal types to the parser, so that if we define a Terminal class outside of Demeter/java and import that package, the parsers for it will be created properly? Know this would probably entail writing JavaCC input but in the general case, I need to pass my JavaCC code through Demeter/Java in the the parsegen generated file. Is this possible? Thanks, Carl Carl R. Putscher putscher@us.ibm.com