Package org.openjdk.asmtools.jcoder
Class Scanner
- java.lang.Object
-
- org.openjdk.asmtools.jcoder.Scanner
-
public class Scanner extends java.lang.ObjectA Scanner for Jcoder tokens. Errors are reported to the environment object.The scanner keeps track of the current token, the value of the current token (if any), and the start position of the current token.
The scan() method advances the scanner to the next token in the input.
The match() method is used to quickly match opening brackets (ie: '(', '{', or '[') with their closing counter part. This is useful during error recovery.
The compiler treats either "\n", "\r" or "\r\n" as the end of a line.
-
-
Field Summary
Fields Modifier and Type Field Description protected intchThe current characterprotected java.lang.StringdocCommentprotected SourceFileenvWhere errors are reportedstatic intEOFEnd of inputprotected SourceFileinInput streamprotected intindexMacroprotected intintSizeprotected intintValuestatic intLBRACEprotected org.openjdk.asmtools.jcoder.ByteBufferlongStringValueprotected longlongValueprotected java.lang.Stringmacroprotected intposThe position of the current tokenprotected intprevChThe current characterprotected intprevPosThe position of the previous tokenprotected intsignprotected java.lang.StringstringValueprotected JcodTokens.TokentokenCurrent token
-
Constructor Summary
Constructors Modifier Constructor Description protectedScanner(SourceFile sf)for use in jcfront.protectedScanner(SourceFile sf, java.util.HashMap<java.lang.String,java.lang.String> macros)Create a scanner to scan an input stream.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidmatch(JcodTokens.Token open, JcodTokens.Token close)Scan to a matching '}', ']' or ')'.protected intscan()Scan the next token.protected intscanMacro()Scan the next token.protected voidskipTill(int sym)protected intxscan()
-
-
-
Field Detail
-
EOF
public static final int EOF
End of input- See Also:
- Constant Field Values
-
LBRACE
public static final int LBRACE
- See Also:
- Constant Field Values
-
env
protected SourceFile env
Where errors are reported
-
in
protected SourceFile in
Input stream
-
ch
protected int ch
The current character
-
prevCh
protected int prevCh
The current character
-
macro
protected java.lang.String macro
-
indexMacro
protected int indexMacro
-
token
protected JcodTokens.Token token
Current token
-
pos
protected int pos
The position of the current token
-
prevPos
protected int prevPos
The position of the previous token
-
longValue
protected long longValue
-
intValue
protected int intValue
-
intSize
protected int intSize
-
stringValue
protected java.lang.String stringValue
-
longStringValue
protected org.openjdk.asmtools.jcoder.ByteBuffer longStringValue
-
sign
protected int sign
-
docComment
protected java.lang.String docComment
-
-
Constructor Detail
-
Scanner
protected Scanner(SourceFile sf, java.util.HashMap<java.lang.String,java.lang.String> macros) throws java.io.IOException
Create a scanner to scan an input stream.- Throws:
java.io.IOException
-
Scanner
protected Scanner(SourceFile sf) throws java.io.IOException
for use in jcfront.- Throws:
java.io.IOException
-
-
Method Detail
-
skipTill
protected void skipTill(int sym) throws java.io.IOException- Throws:
java.io.IOException
-
xscan
protected int xscan() throws java.io.IOException- Throws:
java.io.IOException
-
match
protected void match(JcodTokens.Token open, JcodTokens.Token close) throws java.io.IOException
Scan to a matching '}', ']' or ')'. The current token must be a '{', '[' or '(';- Throws:
java.io.IOException
-
scan
protected int scan() throws java.io.IOExceptionScan the next token.- Returns:
- the position of the previous token.
- Throws:
java.io.IOException
-
scanMacro
protected int scanMacro() throws java.io.IOExceptionScan the next token.- Returns:
- the position of the previous token.
- Throws:
java.io.IOException
-
-