|
||||||||||
| 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.Exceptionpublic 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.Exceptionprotected 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 | |||||||||