import parser_nodes
redef class Token
- readable writable attr _text: String
- readable attr _filename: String
- readable attr _line: Int
- readable attr _pos: Int
+ readable writable var _text: String
+ readable var _filename: String
+ readable var _line: Int
+ readable var _pos: Int
- meth parser_index: Int is abstract
+ fun parser_index: Int is abstract
- redef meth to_s: String do
+ redef fun to_s: String do
return "'{_text}'"
end
end
redef class TEol
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 0
end
end
redef class TComment
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 1
end
end
redef class TKwpackage
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 2
end
end
redef class TKwimport
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 3
end
end
redef class TKwclass
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 4
end
end
redef class TKwabstract
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 5
end
end
redef class TKwinterface
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 6
end
end
redef class TKwuniversal
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 7
end
end
redef class TKwspecial
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 8
end
end
redef class TKwend
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 9
end
end
redef class TKwmeth
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 10
end
end
redef class TKwtype
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 11
end
end
redef class TKwattr
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 12
end
end
redef class TKwinit
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 13
end
end
redef class TKwredef
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 14
end
end
redef class TKwis
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 15
end
end
redef class TKwdo
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 16
end
end
redef class TKwreadable
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 17
end
end
redef class TKwwritable
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 18
end
end
redef class TKwvar
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 19
end
end
redef class TKwintern
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 20
end
end
redef class TKwextern
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 21
end
end
redef class TKwprotected
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 22
end
end
redef class TKwprivate
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 23
end
end
redef class TKwintrude
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 24
end
end
redef class TKwif
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 25
end
end
redef class TKwthen
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 26
end
end
redef class TKwelse
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 27
end
end
redef class TKwwhile
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 28
end
end
redef class TKwfor
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 29
end
end
redef class TKwin
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 30
end
end
redef class TKwand
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 31
end
end
redef class TKwor
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 32
end
end
redef class TKwnot
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 33
end
end
redef class TKwreturn
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 34
end
end
redef class TKwcontinue
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 35
end
end
redef class TKwbreak
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 36
end
end
redef class TKwabort
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 37
end
end
redef class TKwassert
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 38
end
end
redef class TKwnew
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 39
end
end
redef class TKwisa
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 40
end
end
redef class TKwonce
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 41
end
end
redef class TKwsuper
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 42
end
end
redef class TKwself
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 43
end
end
redef class TKwtrue
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 44
end
end
redef class TKwfalse
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 45
end
end
redef class TKwnull
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 46
end
end
redef class TKwas
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 47
end
end
redef class TKwwith
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 48
end
end
redef class TKwnullable
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 49
end
end
redef class TKwisset
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 50
end
end
redef class TOpar
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 51
end
end
redef class TCpar
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 52
end
end
redef class TObra
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 53
end
end
redef class TCbra
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 54
end
end
redef class TComma
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 55
end
end
redef class TColumn
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 56
end
end
redef class TQuad
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 57
end
end
redef class TAssign
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 58
end
end
redef class TPluseq
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 59
end
end
redef class TMinuseq
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 60
end
end
redef class TDotdotdot
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 61
end
end
redef class TDotdot
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 62
end
end
redef class TDot
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 63
end
end
redef class TPlus
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 64
end
end
redef class TMinus
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 65
end
end
redef class TStar
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 66
end
end
redef class TSlash
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 67
end
end
redef class TPercent
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 68
end
end
redef class TEq
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 69
end
end
redef class TNe
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 70
end
end
redef class TLt
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 71
end
end
redef class TLe
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 72
end
end
redef class TGt
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 73
end
end
redef class TGe
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 74
end
end
redef class TStarship
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 75
end
end
redef class TClassid
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 76
end
end
redef class TId
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 77
end
end
redef class TAttrid
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 78
end
end
redef class TNumber
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 79
end
end
redef class TFloat
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 80
end
end
redef class TChar
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 81
end
end
redef class TString
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 82
end
end
redef class TStartString
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 83
end
end
redef class TMidString
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 84
end
end
redef class TEndString
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 85
end
redef class EOF
- redef meth parser_index: Int
+ redef fun parser_index: Int
do
return 86
end
end
redef class PError
- readable writable attr _message: String
+ readable writable var _message: String
init init_error(fname: String, line: Int, pos: Int, message: String)
do
# It is better user with the Parser
class Lexer
# Last peeked token
- attr _token: nullable Token
+ var _token: nullable Token
# Lexer current state
- attr _state: Int = 0
+ var _state: Int = 0
# Name of the stream (as given to tokens)
- readable attr _filename: String
+ readable var _filename: String
# Input stream where character are read
- attr _stream: IStream
+ var _stream: IStream
# Pushback buffer to store unread character
- attr _stream_buf: Buffer
+ var _stream_buf: Buffer
# Number of character stored in the pushback buffer
- attr _stream_pos: Int
+ var _stream_pos: Int
# Current line number in the input stream
- attr _line: Int = 0
+ var _line: Int = 0
# Current column in the input stream
- attr _pos: Int = 0
+ var _pos: Int = 0
# Was the last character a cariage-return?
- attr _cr: Bool = false
+ var _cr: Bool = false
# If the end of stream?
- attr _eof: Bool = false
+ var _eof: Bool = false
# Current working text read from the input stream
- attr _text: Buffer
+ var _text: Buffer
# Constante state values
- private meth state_initial: Int do return 0 end
+ private fun state_initial: Int do return 0 end
# Create a new lexer for a stream (and a name)
init(stream: IStream, fname: String)
end
# Give the next token (but do not consume it)
- meth peek: Token
+ fun peek: Token
do
while _token == null do
_token = get_token
end
# Give and consume the next token
- meth next: Token
+ fun next: Token
do
var result = _token
while result == null do
end
# Get a token, or null if it is discarded
- private meth get_token: nullable Token
+ private fun get_token: nullable Token
do
var dfa_state = 0
# Read the next character.
# The character is read from the stream of from the pushback buffer.
- private meth get_char: Int
+ private fun get_char: Int
do
if _eof then
return -1
# Unread some characters.
# Unread characters are stored in the pushback buffer.
- private meth push_back(accept_length: Int)
+ private fun push_back(accept_length: Int)
do
var length = _text.length
var i = length - 1
end
end
- attr _goto_table: Array[Array[Array[Array[Int]]]]
- private meth build_goto_table
+ var _goto_table: Array[Array[Array[Array[Int]]]]
+ private fun build_goto_table
do
_goto_table = once [
[
]
end
- private meth nil_array: Array[Array[Int]]
+ private fun nil_array: Array[Array[Int]]
do
return once new Array[Array[Int]]
end
- attr _accept_table: Array[Array[Int]]
- private meth build_accept_table do
+ var _accept_table: Array[Array[Int]]
+ private fun build_accept_table do
_accept_table = once [
[
-1 , 0 , 1 , 1 , 0 , -1 , -1 , -1 , 69 , -1 , 52 , 53 , 67 , 65 , 56 , 66 , 64 , 68 , 80 , 57 , 72 , 59 , 74 , 77 , 54 , 55 , -1 , 78 , 78 , 78 , 78 , 78 , 78 , 78 , 78 , 78 , 78 , 78 , 78 , 78 , 78 , 78 , 78 , 78 , 78 , -1 , 1 , 71 , -1 , 83 , -1 , 84 , -1 , 2 , 2 , -1 , 82 , 60 , 61 , 63 , 81 , -1 , 58 , 73 , 70 , 75 , 77 , 77 , 77 , 77 , 79 , 78 , 78 , 78 , 78 , 78 , 78 , 48 , 78 , 78 , 78 , 78 , 17 , 78 , 78 , 78 , 78 , 78 , 78 , 26 , 78 , 31 , 16 , 78 , 78 , 78 , 78 , 78 , 33 , 78 , 78 , 78 , 78 , 78 , 78 , 78 , 78 , 78 , 78 , 78 , 78 , 78 , 78 , -1 , 86 , -1 , 85 , -1 , 2 , 62 , 76 , 79 , 79 , 79 , 79 , 78 , 78 , 32 , 78 , 78 , 78 , 78 , 78 , 78 , 10 , 78 , 78 , 30 , 11 , 78 , 78 , 78 , 41 , 78 , 78 , 40 , 34 , 78 , 78 , 78 , 78 , 78 , 78 , 78 , 78 , 78 , 78 , 78 , 78 , 78 , 78 , 78 , 20 , 78 , 78 , 78 , -1 , 78 , 78 , 78 , 13 , 78 , 78 , 78 , 28 , 78 , 78 , 78 , 14 , 78 , 78 , 78 , 11 , 47 , 42 , 78 , 78 , 78 , 78 , 78 , 78 , 44 , 78 , 78 , 27 , 45 , 12 , 78 , 78 , 49 , 78 , 38 , 78 , 78 , 37 , 5 , 78 , 78 , 46 , 78 , 78 , 78 , 51 , 78 , 78 , 78 , 78 , 78 , 15 , 78 , 78 , 43 , 78 , 29 , 78 , 78 , 39 , 78 , 22 , 4 , 78 , 21 , 78 , 78 , 78 , 78 , 78 , 78 , 35 , 78 , 78 , 78 , 78 , 78 , 78 , 25 , 78 , 3 , 24 , 78 , 78 , 9 , 78 , 78 , 6 , 36 , 78 , 50 , 78 , 18 , 78 , 19 , 7 , 23 , 8