27Oct00
Procedural Macros for Java
Bachrach and Playford
User Defined Constraints
•
Based on class
–
Whose name is constraintName +
“SyntaxConstraint”
–
Loaded on demand using standard Java class
loading mechanism
–
That implements the SyntaxConstraint protocol
•
String getName()
•
boolean isAdmissable(SequenceFragment frags)
Canonical instance created and used for querying
Can also be a GrammarConstraint which packages up tokens of frags as a lexer and then calls nonterminal entry point of parser