Package org.nineml.coffeegrinder.parser
Class GrammarExporter
- java.lang.Object
-
- org.nineml.coffeegrinder.parser.GrammarExporter
-
public class GrammarExporter extends java.lang.ObjectThe grammar exporter exports a parser grammar in an essentially opaque format.The advantage of exported grammars is that they load very fast, no matter how complex the original grammar.
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringATTRIBUTEThe field name for attributes (in the usual namespace).static java.lang.StringATTRIBUTE_NSThe "usual" namespace for attributes.static java.lang.StringATTRIBUTE_PREFIXThe prefix for attributes items in the exported grammar.static java.lang.StringATTRIBUTE_VALUEThe field name for attribute values.static java.lang.StringCHARACTER_CHARThe field name for characters.static java.lang.StringCHARACTER_SET_PREFIXThe prefix for character set items in the exported grammar.static java.lang.StringCHARACTER_SET_RANGEThe field name for character set ranges.static java.lang.StringCHARACTER_STRINGThe field name for strings.static java.lang.StringCHARACTER_UCLASSThe field name for character sets defined by Unicode classes.static java.lang.StringCOMPILED_GRAMMAR_VERSIONThe version of the compiled grammarstatic java.lang.StringMETADATA_NAMEThe field name for metadata names.static java.lang.StringMETADATA_PREFIXThe prefix for metadata items in the exported grammar.static java.lang.StringMETADATA_VALUEThe field name for metadata values.static java.lang.StringOPTIONThe field name for options.static java.lang.StringOPTION_PREFIXThe prefix for option items in the exported grammar.static java.lang.StringOTHER_ATTRIBUTEThe field name for attributes (in another namespace).static java.lang.StringRULEThe field name for rules.static java.lang.StringRULE_PREFIXThe prefix for rule items in the exported grammar.static java.lang.StringSYMBOL_NONTERMINALThe field name for nonterminal symbols.static java.lang.StringSYMBOL_PREFIXThe prefix for symobl items in the exported grammar.static java.lang.StringSYMBOL_TERMINALThe field name for terminal symbols.static java.lang.StringTOKEN_CHARACTERThe field name for characters.static java.lang.StringTOKEN_CHARACTER_SET_EXCLUSIVEThe field name for (exclusive) character sets.static java.lang.StringTOKEN_CHARACTER_SET_INCLUSIVEThe field name for (inclusive) character sets.static java.lang.StringTOKEN_EOFThe field name for the EOF token.static java.lang.StringTOKEN_EPSILONThe field name for the epsilon token.static java.lang.StringTOKEN_PREFIXThe prefix for token items in the exported grammar.static java.lang.StringTOKEN_REGEXThe field name for regular expression tokens.static java.lang.StringTOKEN_STRINGThe field name for string tokens.static java.lang.StringTOKEN_UNDEFINEDThe field name for the undefined token.static java.lang.StringVERSIONThe version string
-
Constructor Summary
Constructors Constructor Description GrammarExporter(ParserGrammar grammar, java.io.OutputStream output)Create a grammar exporter.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidexport()Perform the export.voidexport(java.lang.String code)Export a code.voidexport(java.lang.String code, java.lang.String data)Export a code and data.voidexport(java.lang.String code, java.lang.String data1, java.lang.String data2)Export a code and two data items.voidexport(java.lang.String code, java.util.List<java.lang.String> data)Export a code and a list of items.
-
-
-
Field Detail
-
VERSION
public static final java.lang.String VERSION
The version string- See Also:
- Constant Field Values
-
COMPILED_GRAMMAR_VERSION
public static final java.lang.String COMPILED_GRAMMAR_VERSION
The version of the compiled grammar- See Also:
- Constant Field Values
-
METADATA_PREFIX
public static final java.lang.String METADATA_PREFIX
The prefix for metadata items in the exported grammar.- See Also:
- Constant Field Values
-
OPTION_PREFIX
public static final java.lang.String OPTION_PREFIX
The prefix for option items in the exported grammar.- See Also:
- Constant Field Values
-
RULE_PREFIX
public static final java.lang.String RULE_PREFIX
The prefix for rule items in the exported grammar.- See Also:
- Constant Field Values
-
SYMBOL_PREFIX
public static final java.lang.String SYMBOL_PREFIX
The prefix for symobl items in the exported grammar.- See Also:
- Constant Field Values
-
TOKEN_PREFIX
public static final java.lang.String TOKEN_PREFIX
The prefix for token items in the exported grammar.- See Also:
- Constant Field Values
-
CHARACTER_SET_PREFIX
public static final java.lang.String CHARACTER_SET_PREFIX
The prefix for character set items in the exported grammar.- See Also:
- Constant Field Values
-
ATTRIBUTE_PREFIX
public static final java.lang.String ATTRIBUTE_PREFIX
The prefix for attributes items in the exported grammar.- See Also:
- Constant Field Values
-
ATTRIBUTE
public static final java.lang.String ATTRIBUTE
The field name for attributes (in the usual namespace).- See Also:
- Constant Field Values
-
OTHER_ATTRIBUTE
public static final java.lang.String OTHER_ATTRIBUTE
The field name for attributes (in another namespace).- See Also:
- Constant Field Values
-
ATTRIBUTE_VALUE
public static final java.lang.String ATTRIBUTE_VALUE
The field name for attribute values.- See Also:
- Constant Field Values
-
CHARACTER_SET_RANGE
public static final java.lang.String CHARACTER_SET_RANGE
The field name for character set ranges.- See Also:
- Constant Field Values
-
CHARACTER_UCLASS
public static final java.lang.String CHARACTER_UCLASS
The field name for character sets defined by Unicode classes.- See Also:
- Constant Field Values
-
CHARACTER_CHAR
public static final java.lang.String CHARACTER_CHAR
The field name for characters.- See Also:
- Constant Field Values
-
CHARACTER_STRING
public static final java.lang.String CHARACTER_STRING
The field name for strings.- See Also:
- Constant Field Values
-
METADATA_NAME
public static final java.lang.String METADATA_NAME
The field name for metadata names.- See Also:
- Constant Field Values
-
METADATA_VALUE
public static final java.lang.String METADATA_VALUE
The field name for metadata values.- See Also:
- Constant Field Values
-
OPTION
public static final java.lang.String OPTION
The field name for options.- See Also:
- Constant Field Values
-
RULE
public static final java.lang.String RULE
The field name for rules.- See Also:
- Constant Field Values
-
SYMBOL_NONTERMINAL
public static final java.lang.String SYMBOL_NONTERMINAL
The field name for nonterminal symbols.- See Also:
- Constant Field Values
-
SYMBOL_TERMINAL
public static final java.lang.String SYMBOL_TERMINAL
The field name for terminal symbols.- See Also:
- Constant Field Values
-
TOKEN_CHARACTER
public static final java.lang.String TOKEN_CHARACTER
The field name for characters.- See Also:
- Constant Field Values
-
TOKEN_CHARACTER_SET_INCLUSIVE
public static final java.lang.String TOKEN_CHARACTER_SET_INCLUSIVE
The field name for (inclusive) character sets.- See Also:
- Constant Field Values
-
TOKEN_CHARACTER_SET_EXCLUSIVE
public static final java.lang.String TOKEN_CHARACTER_SET_EXCLUSIVE
The field name for (exclusive) character sets.- See Also:
- Constant Field Values
-
TOKEN_EOF
public static final java.lang.String TOKEN_EOF
The field name for the EOF token.- See Also:
- Constant Field Values
-
TOKEN_EPSILON
public static final java.lang.String TOKEN_EPSILON
The field name for the epsilon token.- See Also:
- Constant Field Values
-
TOKEN_REGEX
public static final java.lang.String TOKEN_REGEX
The field name for regular expression tokens.- See Also:
- Constant Field Values
-
TOKEN_STRING
public static final java.lang.String TOKEN_STRING
The field name for string tokens.- See Also:
- Constant Field Values
-
TOKEN_UNDEFINED
public static final java.lang.String TOKEN_UNDEFINED
The field name for the undefined token.- See Also:
- Constant Field Values
-
ATTRIBUTE_NS
public static final java.lang.String ATTRIBUTE_NS
The "usual" namespace for attributes.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
GrammarExporter
public GrammarExporter(ParserGrammar grammar, java.io.OutputStream output)
Create a grammar exporter.Exported grammars are written to the output stream in an essentially opaque format.
- Parameters:
grammar- The grammar to export.output- An output stream.
-
-
Method Detail
-
export
public void export()
Perform the export.
-
export
public void export(java.lang.String code)
Export a code.- Parameters:
code- the code.
-
export
public void export(java.lang.String code, java.lang.String data)Export a code and data.The export is ignored if data is null.
- Parameters:
code- the code.data- the data.
-
export
public void export(java.lang.String code, java.lang.String data1, java.lang.String data2)Export a code and two data items.The export is ignored if either data item is null.
- Parameters:
code- the code.data1- The first data item.data2- The second data item.
-
export
public void export(java.lang.String code, java.util.List<java.lang.String> data)Export a code and a list of items.- Parameters:
code- The code.data- The items.
-
-