|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--fri.patterns.interpreter.parsergenerator.builder.SerializedObject | +--fri.patterns.interpreter.parsergenerator.builder.SerializedParser
This class is definitely the shortest way to construct a Parser (with Lexer) for a Syntax. It uses all serialization utils in this package to quickly build a parsing environment. This factory accepts a syntax where parser and lexer rules were mixed.
Example (syntax input from a file):
File ebnfFile = new File("MySyntax.syntax"); Parser parser = new SerializedParser().get(ebnfFile);or (syntax input from a Reader, must pass a filename):
Reader ebnfReader = new InputStreamReader(MySyntaxSemantic.class.getResourceAsStream("MySyntax.syntax")); Parser parser = new SerializedParser().get(ebnfReader, "MySyntax");
Field Summary | |
static java.lang.String |
PARSERFILE_SUFFIX
The suffix for serialized Parser files. |
protected boolean |
PRODUCTION
|
Constructor Summary | |
SerializedParser()
Create a Parser factory that caches built Lexers. |
|
SerializedParser(boolean production)
Create a Parser factory that caches built Lexers. |
Method Summary | |
static java.lang.String |
baseNameFromSyntax(java.lang.Object syntaxInput)
When syntaxInput is a File, the name of the serialization file is created from its basename (without any extension), else "Unknown" is assumed as basename. |
protected java.lang.String |
ensureDirectory(java.lang.String fileName)
Creates the directory of passed filename if it does not exist. |
Parser |
get(java.lang.Class parserType,
java.lang.Object syntaxInput)
Builds the Parser from scratch if not found its parts in filesystem, else loads all serialized parts. |
Parser |
get(java.lang.Class parserType,
java.lang.Object syntaxInput,
java.lang.String baseName)
Builds the parsing environment from scratch if not found its parts in filesystem, else loads all serialized parts. |
Parser |
get(java.lang.Object syntaxInput)
Builds the Parser from scratch if not found its parts in filesystem, else loads all serialized parts. |
Parser |
get(java.lang.Object syntaxInput,
java.lang.String baseName)
Builds the Parser from scratch if not found its parts in filesystem, else loads all serialized parts. |
static void |
main(java.lang.String[] args)
Test main. |
protected java.lang.String |
makeFilePath(java.lang.String fileName)
Puts the file into ".friware/parsers" directory in "user.home". |
protected SerializedLexer |
newSerializedLexer()
To be overridden when a modified SerializedLexer is needed. |
protected java.lang.Object |
read(java.lang.String fileName)
Deserializes an object from filesystem. |
static Syntax |
toSyntax(java.lang.Object syntaxInput)
Converts a File, InputStream, Reader, String, StringBuffer, List of Lists or String[][] to a Syntax. |
protected boolean |
write(java.lang.String fileName,
java.lang.Object o)
Serializes an object to filesystem. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
public static final java.lang.String PARSERFILE_SUFFIX
protected boolean PRODUCTION
Constructor Detail |
public SerializedParser()
public SerializedParser(boolean production)
Method Detail |
public Parser get(java.lang.Object syntaxInput) throws java.lang.Exception
syntaxInput
- the mixed lexer/parser syntax as File, InputStream, List of Lists, String [][] or Syntax.
java.lang.Exception
public Parser get(java.lang.Object syntaxInput, java.lang.String baseName) throws java.lang.Exception
syntaxInput
- the mixed lexer/parser syntax as File, InputStream, List of Lists, String [][] or Syntax.baseName
- basename for serialization, can be null
java.lang.Exception
public Parser get(java.lang.Class parserType, java.lang.Object syntaxInput) throws java.lang.Exception
parserType
- the class of ParserTables to create for the syntax (LALRParserTables.class is default).syntaxInput
- the mixed lexer/parser syntax as File, InputStream, List of Lists, String [][] or Syntax.
java.lang.Exception
public Parser get(java.lang.Class parserType, java.lang.Object syntaxInput, java.lang.String baseName) throws java.lang.Exception
parserType
- the class of ParserTables to create for the syntax (LALRParserTables.class is default).syntaxInput
- the mixed lexer/parser syntax as File, InputStream, List of Lists, String [][] or Syntax.baseName
- basename for serialization, can be null
java.lang.Exception
protected SerializedLexer newSerializedLexer() throws java.lang.Exception
java.lang.Exception
public static void main(java.lang.String[] args)
protected java.lang.Object read(java.lang.String fileName)
protected boolean write(java.lang.String fileName, java.lang.Object o)
public static java.lang.String baseNameFromSyntax(java.lang.Object syntaxInput)
public static Syntax toSyntax(java.lang.Object syntaxInput) throws java.lang.Exception
java.lang.Exception
protected java.lang.String makeFilePath(java.lang.String fileName)
protected java.lang.String ensureDirectory(java.lang.String fileName)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |