Class GrammarExporter


  • public class GrammarExporter
    extends java.lang.Object
    The 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.String ATTRIBUTE
      The field name for attributes (in the usual namespace).
      static java.lang.String ATTRIBUTE_NS
      The "usual" namespace for attributes.
      static java.lang.String ATTRIBUTE_PREFIX
      The prefix for attributes items in the exported grammar.
      static java.lang.String ATTRIBUTE_VALUE
      The field name for attribute values.
      static java.lang.String CHARACTER_CHAR
      The field name for characters.
      static java.lang.String CHARACTER_SET_PREFIX
      The prefix for character set items in the exported grammar.
      static java.lang.String CHARACTER_SET_RANGE
      The field name for character set ranges.
      static java.lang.String CHARACTER_STRING
      The field name for strings.
      static java.lang.String CHARACTER_UCLASS
      The field name for character sets defined by Unicode classes.
      static java.lang.String COMPILED_GRAMMAR_VERSION
      The version of the compiled grammar
      static java.lang.String METADATA_NAME
      The field name for metadata names.
      static java.lang.String METADATA_PREFIX
      The prefix for metadata items in the exported grammar.
      static java.lang.String METADATA_VALUE
      The field name for metadata values.
      static java.lang.String OPTION
      The field name for options.
      static java.lang.String OPTION_PREFIX
      The prefix for option items in the exported grammar.
      static java.lang.String OTHER_ATTRIBUTE
      The field name for attributes (in another namespace).
      static java.lang.String RULE
      The field name for rules.
      static java.lang.String RULE_PREFIX
      The prefix for rule items in the exported grammar.
      static java.lang.String SYMBOL_NONTERMINAL
      The field name for nonterminal symbols.
      static java.lang.String SYMBOL_PREFIX
      The prefix for symobl items in the exported grammar.
      static java.lang.String SYMBOL_TERMINAL
      The field name for terminal symbols.
      static java.lang.String TOKEN_CHARACTER
      The field name for characters.
      static java.lang.String TOKEN_CHARACTER_SET_EXCLUSIVE
      The field name for (exclusive) character sets.
      static java.lang.String TOKEN_CHARACTER_SET_INCLUSIVE
      The field name for (inclusive) character sets.
      static java.lang.String TOKEN_EOF
      The field name for the EOF token.
      static java.lang.String TOKEN_EPSILON
      The field name for the epsilon token.
      static java.lang.String TOKEN_PREFIX
      The prefix for token items in the exported grammar.
      static java.lang.String TOKEN_REGEX
      The field name for regular expression tokens.
      static java.lang.String TOKEN_STRING
      The field name for string tokens.
      static java.lang.String TOKEN_UNDEFINED
      The field name for the undefined token.
      static java.lang.String VERSION
      The 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
      void export()
      Perform the export.
      void export​(java.lang.String code)
      Export a code.
      void export​(java.lang.String code, java.lang.String data)
      Export a code and data.
      void export​(java.lang.String code, java.lang.String data1, java.lang.String data2)
      Export a code and two data items.
      void export​(java.lang.String code, java.util.List<java.lang.String> data)
      Export a code and a list of items.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 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.