|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.jruby.lexer.yacc.RubyYaccLexer
public class RubyYaccLexer
This is a port of the MRI lexer to Java it is compatible to Ruby 1.8.1.
Nested Class Summary | |
---|---|
static class |
RubyYaccLexer.Keyword
|
static class |
RubyYaccLexer.LexState
|
Field Summary | |
---|---|
static org.jcodings.Encoding |
ASCII8BIT_ENCODING
|
boolean |
commandStart
|
static org.jcodings.Encoding |
USASCII_ENCODING
|
static org.jcodings.Encoding |
UTF8_ENCODING
|
Constructor Summary | |
---|---|
RubyYaccLexer()
|
|
RubyYaccLexer(boolean isOneEight)
|
Method Summary | |
---|---|
boolean |
advance()
How the parser advances to the next token. |
StrNode |
createStrNode(ISourcePosition position,
org.jruby.util.ByteList buffer,
int flags)
|
StackState |
getCmdArgumentState()
|
StackState |
getConditionState()
|
java.lang.String |
getCurrentLine()
|
org.jcodings.Encoding |
getEncoding()
|
static RubyYaccLexer.Keyword |
getKeyword(java.lang.String str)
|
int |
getLeftParenBegin()
|
ISourcePosition |
getPosition()
|
ISourcePosition |
getPosition(ISourcePosition startPosition)
Get position information for Token/Node that follows node represented by startPosition and current lexer location. |
StrTerm |
getStrTerm()
|
java.lang.StringBuilder |
getTokenBuffer()
|
protected void |
handleFileEncodingComment(org.jruby.util.ByteList encodingLine)
|
int |
incrementParenNest()
|
boolean |
isIdentifierChar(int c)
This is a valid character for an identifier? |
protected boolean |
isMultiByteChar(int c)
Is this a multibyte character from a multibyte encoding? |
boolean |
isOneEight()
|
int |
nextToken()
|
protected boolean |
parseMagicComment(org.jruby.util.ByteList magicLine)
|
protected int |
readComment()
Read a comment up to end of line. |
int |
readEscape()
|
int |
readUTFEscape(org.jruby.util.ByteList buffer,
boolean stringLiteral,
boolean symbolLiteral)
|
void |
readUTFEscapeRegexpLiteral(org.jruby.util.ByteList buffer)
|
void |
reset()
|
void |
resetStacks()
|
void |
setEncoding(org.jcodings.Encoding encoding)
|
void |
setLeftParenBegin(int value)
|
void |
setParserSupport(ParserSupport parserSupport)
Parse must pass its support object for some check at bottom of yylex(). |
void |
setSource(LexerSource source)
Allow the parser to set the source for its lexer. |
void |
setState(RubyYaccLexer.LexState state)
|
void |
setStrTerm(StrTerm strterm)
|
void |
setValue(java.lang.Object yaccValue)
|
void |
setWarnings(IRubyWarnings warnings)
|
int |
token()
Last token read from the lexer at the end of a call to yylex() |
int |
tokenAddMBC(int codepoint,
org.jruby.util.ByteList buffer)
|
void |
tokenAddMBCFromSrc(int c,
org.jruby.util.ByteList buffer)
|
java.lang.Object |
value()
Value of last token (if it is a token which has a value). |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final org.jcodings.Encoding UTF8_ENCODING
public static final org.jcodings.Encoding USASCII_ENCODING
public static final org.jcodings.Encoding ASCII8BIT_ENCODING
public boolean commandStart
Constructor Detail |
---|
public RubyYaccLexer()
public RubyYaccLexer(boolean isOneEight)
Method Detail |
---|
public org.jcodings.Encoding getEncoding()
public static RubyYaccLexer.Keyword getKeyword(java.lang.String str)
public int incrementParenNest()
public int getLeftParenBegin()
public void setLeftParenBegin(int value)
public final void reset()
public boolean advance() throws java.io.IOException
java.io.IOException
public int nextToken() throws java.io.IOException
java.io.IOException
public int token()
public java.lang.StringBuilder getTokenBuffer()
public java.lang.Object value()
public ISourcePosition getPosition(ISourcePosition startPosition)
startPosition
- previous node/tokeninclusive
- include previous node into position information of current node
public ISourcePosition getPosition()
public java.lang.String getCurrentLine()
public void setParserSupport(ParserSupport parserSupport)
parserSupport
- public void setEncoding(org.jcodings.Encoding encoding)
public void setSource(LexerSource source)
source
- where the lexer gets raw datapublic StrTerm getStrTerm()
public void setStrTerm(StrTerm strterm)
public void resetStacks()
public void setWarnings(IRubyWarnings warnings)
public void setState(RubyYaccLexer.LexState state)
public StackState getCmdArgumentState()
public boolean isOneEight()
public StackState getConditionState()
public void setValue(java.lang.Object yaccValue)
public boolean isIdentifierChar(int c)
c
- is character to be compared
protected boolean isMultiByteChar(int c)
c
-
public StrNode createStrNode(ISourcePosition position, org.jruby.util.ByteList buffer, int flags)
protected boolean parseMagicComment(org.jruby.util.ByteList magicLine) throws java.io.IOException
java.io.IOException
protected void handleFileEncodingComment(org.jruby.util.ByteList encodingLine) throws java.io.IOException
java.io.IOException
protected int readComment() throws java.io.IOException
java.io.IOException
public void readUTFEscapeRegexpLiteral(org.jruby.util.ByteList buffer) throws java.io.IOException
java.io.IOException
public int tokenAddMBC(int codepoint, org.jruby.util.ByteList buffer)
public void tokenAddMBCFromSrc(int c, org.jruby.util.ByteList buffer) throws java.io.IOException
java.io.IOException
public int readUTFEscape(org.jruby.util.ByteList buffer, boolean stringLiteral, boolean symbolLiteral) throws java.io.IOException
java.io.IOException
public int readEscape() throws java.io.IOException
java.io.IOException
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |