@GwtIncompatible(value="java.io")
public abstract class JsFileLineParser
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
(package private) static class |
JsFileLineParser.ParseException
Thrown by base classes to signify a problem parsing a line.
|
Modifier and Type | Field and Description |
---|---|
(package private) ErrorManager |
errorManager
Handles error messages.
|
(package private) java.lang.String |
filePath
Path of the file currently being parsed.
|
(package private) int |
lineNum
The line number of the line currently being parsed.
|
static DiagnosticType |
PARSE_ERROR |
(package private) static DiagnosticType |
PARSE_WARNING |
(package private) boolean |
parseSucceeded
Did our parse succeed.
|
(package private) boolean |
shortcutMode |
private static Pattern |
STRING_LITERAL_PATTERN
Pattern for matching JavaScript string literals.
|
private Matcher |
valueMatcher
Matcher used in the parsing string literals.
|
Constructor and Description |
---|
JsFileLineParser(ErrorManager errorManager)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
private static void |
check(boolean condition,
java.lang.String message) |
boolean |
didParseSucceed() |
(package private) void |
doParse(java.lang.String filePath,
java.io.Reader fileContents)
Performs the line-by-line parsing of the given fileContents.
|
(package private) java.lang.String |
parseJsString(java.lang.String jsStringLiteral)
Parses a JS string literal.
|
(package private) java.util.List<java.lang.String> |
parseJsStringArray(java.lang.String input)
Parses a JavaScript array of string literals.
|
(package private) java.util.Map<java.lang.String,java.lang.String> |
parseJsStringMap(java.lang.String input)
Parses a JavaScript map of string literals.
|
(package private) abstract boolean |
parseLine(java.lang.String line)
Called for each line of the file being parsed.
|
void |
setShortcutMode(boolean mode)
In shortcut mode, the file line parser can stop reading early if
it thinks it found enough information.
|
static final DiagnosticType PARSE_WARNING
public static final DiagnosticType PARSE_ERROR
boolean shortcutMode
private static final Pattern STRING_LITERAL_PATTERN
private Matcher valueMatcher
java.lang.String filePath
int lineNum
ErrorManager errorManager
boolean parseSucceeded
public JsFileLineParser(ErrorManager errorManager)
errorManager
- Parse error handler.public void setShortcutMode(boolean mode)
public boolean didParseSucceed()
void doParse(java.lang.String filePath, java.io.Reader fileContents)
filePath
- The path to the file being parsed. Used for reporting parse
exceptions.fileContents
- A reader for the contents of the file.abstract boolean parseLine(java.lang.String line) throws JsFileLineParser.ParseException
line
- The line to parse.JsFileLineParser.ParseException
- Should be thrown to signify a problem with the line.java.lang.String parseJsString(java.lang.String jsStringLiteral) throws JsFileLineParser.ParseException
jsStringLiteral
- The literal. Must look like "asdf" or 'asdf'JsFileLineParser.ParseException
- Thrown if there is a string literal that cannot be
parsed.java.util.List<java.lang.String> parseJsStringArray(java.lang.String input) throws JsFileLineParser.ParseException
input
- A string containing a JavaScript array of string literals.JsFileLineParser.ParseException
- Thrown if there is a syntax error with the input.java.util.Map<java.lang.String,java.lang.String> parseJsStringMap(java.lang.String input) throws JsFileLineParser.ParseException
input
- A string containing a JavaScript map of string literals.JsFileLineParser.ParseException
- Thrown if there is a syntax error with the input.private static void check(boolean condition, java.lang.String message) throws JsFileLineParser.ParseException
JsFileLineParser.ParseException