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