1from __future__ import absolute_import
2
3import cython
4
5from Cython.Plex.Actions cimport Action
6
7cdef class Scanner:
8
9    cdef public lexicon
10    cdef public stream
11    cdef public name
12    cdef public unicode buffer
13    cdef public Py_ssize_t buf_start_pos
14    cdef public Py_ssize_t next_pos
15    cdef public Py_ssize_t cur_pos
16    cdef public Py_ssize_t cur_line
17    cdef public Py_ssize_t cur_line_start
18    cdef public Py_ssize_t start_pos
19    cdef public Py_ssize_t start_line
20    cdef public Py_ssize_t start_col
21    cdef public text
22    cdef public initial_state # int?
23    cdef public state_name
24    cdef public list queue
25    cdef public bint trace
26    cdef public cur_char
27    cdef public long input_state
28
29    cdef public level
30
31    @cython.final
32    @cython.locals(input_state=long)
33    cdef next_char(self)
34    @cython.locals(action=Action)
35    cpdef tuple read(self)
36    @cython.final
37    cdef tuple scan_a_token(self)
38    ##cdef tuple position(self)  # used frequently by Parsing.py
39
40    @cython.final
41    @cython.locals(cur_pos=Py_ssize_t, cur_line=Py_ssize_t, cur_line_start=Py_ssize_t,
42                   input_state=long, next_pos=Py_ssize_t, state=dict,
43                   buf_start_pos=Py_ssize_t, buf_len=Py_ssize_t, buf_index=Py_ssize_t,
44                   trace=bint, discard=Py_ssize_t, data=unicode, buffer=unicode)
45    cdef run_machine_inlined(self)
46
47    @cython.final
48    cdef begin(self, state)
49    @cython.final
50    cdef produce(self, value, text = *)
51