Package org.jruby.ext.ripper
Class RubyLexer
java.lang.Object
org.jruby.lexer.LexingCommon
org.jruby.ext.ripper.RubyLexer
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsFields inherited from class org.jruby.lexer.LexingCommon
__end__seen, AMPERSAND, AMPERSAND_AMPERSAND, AMPERSAND_DOT, AND_KEYWORD, ASCII8BIT_ENCODING, BACKSLASH, BACKTICK, BANG, BANG_EQ, BANG_TILDE, BEGIN_DOC_MARKER, braceNest, CALL, CARET, cmdArgumentState, CODING, COLON, COLON_COLON, COMMA, commandStart, conditionState, DOLLAR_BANG, DOLLAR_DOT, DOLLAR_UNDERSCORE, DOT, DOT_DOT, DOT_DOT_DOT, end, END_DOC_MARKER, END_MARKER, EOF, eofp, EQ, EQ_EQ, EQ_EQ_EQ, EQ_GT, EQ_TILDE, EXPR_ARG, EXPR_ARG_ANY, EXPR_BEG, EXPR_BEG_ANY, EXPR_CLASS, EXPR_CMDARG, EXPR_DOT, EXPR_END, EXPR_END_ANY, EXPR_ENDARG, EXPR_ENDFN, EXPR_FITEM, EXPR_FNAME, EXPR_LABEL, EXPR_LABELED, EXPR_MID, EXPR_VALUE, GT, GT_EQ, GT_GT, has_shebang, heredoc_end, heredoc_indent, heredoc_line_indent, KWNOREST, last_cr_line, last_state, LBRACKET, LBRACKET_RBRACKET, LBRACKET_RBRACKET_EQ, LCURLY, lex_lastline, lex_nextline, lex_p, lex_pbeg, lex_pend, lex_state, lexb, line_count, line_offset, LT, LT_EQ, LT_EQ_RT, LT_LT, MINUS, MINUS_AT, MINUS_GT, NIL, OR, OR_KEYWORD, OR_OR, parenNest, PERCENT, PLUS, PLUS_AT, Q, QQ, QUESTION, RBRACKET, RCURLY, RPAREN, ruby_sourceline, SEMICOLON, SLASH, src, STAR, STAR_STAR, start, str_dquote, str_dsym, str_dword, STR_FUNC_ESCAPE, STR_FUNC_EXPAND, STR_FUNC_LABEL, STR_FUNC_LIST, STR_FUNC_QWORDS, STR_FUNC_REGEXP, STR_FUNC_SYMBOL, STR_FUNC_TERM, str_label, str_regexp, str_squote, str_ssym, str_sword, str_xquote, SUFFIX_ALL, SUFFIX_I, SUFFIX_R, TAB_WIDTH, TILDE, token, tokenSeen, tokline, tokp, USASCII_ENCODING, UTF8_ENCODING, yaccValue -
Constructor Summary
ConstructorsConstructorDescriptionRubyLexer(RipperParserBase parser, LexerSource src) RubyLexer(RipperParserBase parser, LexerSource src, IRubyWarnings _warnings) -
Method Summary
Modifier and TypeMethodDescriptionvoidaddDelayedToken(int tok, int end) protected voidambiguousOperator(String op, String syn) voidcompile_error(String message) voiddispatchDelayedToken(int token) voidvoiddispatchIgnoredScanEvent(int token) voiddispatchScanEvent(int token) protected voidflush_string_content(org.jcodings.Encoding encoding) getIdent()static RubyLexer.KeywordgetKeyword(String str) booleanbooleanHas lexing started yet?voidheredoc_restore(HeredocTerm here) id()booleanprotected voidmismatchedRegexpEncodingError(org.jcodings.Encoding optionEncoding, org.jcodings.Encoding encoding) intnextc()intprotected booleanonMagicComment(String name, ByteList value) voidparse_error(String message) protected RegexpOptionsprotected voidprotected voidset_yylval_name(ByteList name) protected voidprotected voidset_yylval_val(ByteList name) protected voidsetCompileOptionFlag(String name, ByteList value) protected voidsetEncoding(ByteList name) voidsetParser(RipperParserBase parserSupport) Parse must pass its support object for some check at bottom of yylex().voidsetStrTerm(StrTerm strterm) protected voidsetTokenInfo(String name, ByteList value) protected intsrc_line()inttokenize_ident(int result) voidvoidvoidMethods inherited from class org.jruby.lexer.LexingCommon
checkRegexpFragment, checkRegexpSyntax, column, comment_at_top, compile_error_pos, createAsEncodedString, createTokenByteList, createTokenByteList, createTokenString, createTokenString, dedent_string, flush, getBraceNest, getCmdArgumentState, getConditionState, getCurrentArg, getCurrentLine, getEncoding, getFile, getHeredocIndent, getHeredocLineIndent, getLeftParenBegin, getLexContext, getLineOffset, getParenNest, getRubySourceline, getState, getTokenCR, incrementParenNest, IS_AFTER_OPERATOR, IS_ARG, IS_BEG, IS_END, IS_LABEL_POSSIBLE, IS_LABEL_SUFFIX, IS_lex_state, IS_lex_state_all, IS_SPCARG, isASCII, isASCII, isEndSeen, isGlobalCharPunct, isHexChar, isIdentifierChar, isLambdaBeginning, isLookingAtEOL, isNext_identchar, isOctChar, isSpace, ISSPACE, lex_goto_eol, lineno, magicCommentEncoding, magicCommentMarker, newtok, numberLiteralSuffix, optionsEncodingChar, p, parser_magic_comment, parser_prepare, parseRegexpFlags, peek, peek, peekVariableName, precise_mbclen, printState, pushback, readEscape, readUTF8EscapeIntoBuffer, readUTFEscape, readUTFEscapeRegexpLiteral, reset, resetStacks, scanHex, scanHexLiteral, scanOct, set_file_encoding, setBraceNest, setCurrentArg, setCurrentEncoding, setEncoding, setHeredocIndent, setHeredocLineIndent, setLeftParenBegin, setLexContext, setRegexpEncoding, setRubySourceline, setSource, setState, setValue, strncmp, tokAdd, tokadd_ident, tokadd_mbchar, tokadd_mbchar, tokaddmbc, tokCopy, token, tokHex, update_heredoc_indent, updateStartPosition, updateTokenPosition, validateFormalIdentifier, validateFormalIdentifier, value, warn_balanced, was_bol, whole_match_p
-
Field Details
-
delayed
-
-
Constructor Details
-
RubyLexer
-
RubyLexer
-
-
Method Details
-
ambiguousOperator
- Specified by:
ambiguousOperatorin classLexingCommon
-
onMagicComment
- Overrides:
onMagicCommentin classLexingCommon
-
src_line
protected int src_line() -
isVerbose
public boolean isVerbose() -
warn
-
warning
-
warning
-
getKeyword
-
hasStarted
public boolean hasStarted()Has lexing started yet? -
flush_string_content
protected void flush_string_content(org.jcodings.Encoding encoding) -
addDelayedToken
public void addDelayedToken(int tok, int end) -
nextc
public int nextc()- Specified by:
nextcin classLexingCommon
-
dispatchHeredocEnd
public void dispatchHeredocEnd() -
compile_error
- Specified by:
compile_errorin classLexingCommon
-
parse_error
- Specified by:
parse_errorin classLexingCommon
-
set_yylval_id
- Overrides:
set_yylval_idin classLexingCommon
-
id
- Overrides:
idin classLexingCommon
-
set_yylval_noname
protected void set_yylval_noname() -
set_yylval_name
- Overrides:
set_yylval_namein classLexingCommon
-
set_yylval_val
-
tokenize_ident
public int tokenize_ident(int result) - Specified by:
tokenize_identin classLexingCommon
-
heredoc_restore
-
nextToken
- Throws:
IOException
-
getIdent
-
getRuntime
-
setParser
Parse must pass its support object for some check at bottom of yylex(). Ruby does it this way as well (i.e. a little parsing logic in the lexer).- Parameters:
parserSupport-
-
setCompileOptionFlag
- Specified by:
setCompileOptionFlagin classLexingCommon
-
parseRegexpFlags
- Specified by:
parseRegexpFlagsin classLexingCommon- Throws:
IOException
-
mismatchedRegexpEncodingError
protected void mismatchedRegexpEncodingError(org.jcodings.Encoding optionEncoding, org.jcodings.Encoding encoding) - Specified by:
mismatchedRegexpEncodingErrorin classLexingCommon
-
setTokenInfo
- Specified by:
setTokenInfoin classLexingCommon
-
setEncoding
- Specified by:
setEncodingin classLexingCommon
-
getStrTerm
-
setStrTerm
-
createStr
-
tokenByteList
-
hasScanEvent
public boolean hasScanEvent() -
dispatchDelayedToken
public void dispatchDelayedToken(int token) -
dispatchIgnoredScanEvent
public void dispatchIgnoredScanEvent(int token) -
dispatchScanEvent
public void dispatchScanEvent(int token)
-