Commit ecd248ed authored by Robert Bradshaw's avatar Robert Bradshaw

more bootstrap tweaks

parent 99327e65
......@@ -7,6 +7,7 @@
raw_prefixes = "rR"
string_prefixes = "cCuUbB"
IDENT = 'IDENT'
def make_lexicon():
from Cython.Plex import \
......@@ -82,7 +83,7 @@ def make_lexicon():
comment = Str("#") + Rep(AnyBut("\n"))
return Lexicon([
(name, 'IDENT'),
(name, IDENT),
(intliteral, 'INT'),
(fltconst, 'FLOAT'),
(imagconst, 'IMAG'),
......
......@@ -756,7 +756,8 @@ class CVarDefNode(StatNode):
entry = dest_scope.declare_cfunction(name, type, declarator.pos,
cname = cname, visibility = self.visibility, in_pxd = self.in_pxd,
api = self.api)
entry.pxd_locals = self.pxd_locals
if entry is not None:
entry.pxd_locals = self.pxd_locals
else:
if self.in_pxd and self.visibility != 'extern':
error(self.pos,
......
......@@ -11,11 +11,14 @@ import stat
import sys
from time import time
import cython
cython.declare(EncodedString=object, string_prefixes=object, raw_prefixes=object, IDENT=object)
from Cython import Plex, Utils
from Cython.Plex.Scanners import Scanner
from Cython.Plex.Errors import UnrecognizedInput
from Errors import CompileError, error
from Lexicon import string_prefixes, raw_prefixes, make_lexicon
from Lexicon import string_prefixes, raw_prefixes, make_lexicon, IDENT
from StringEncoding import EncodedString
......@@ -168,6 +171,7 @@ def build_resword_dict():
d[word] = 1
return d
cython.declare(resword_dict=object)
resword_dict = build_resword_dict()
#------------------------------------------------------------------
......@@ -407,7 +411,7 @@ class PyrexScanner(Scanner):
sy, systring = self.read()
except UnrecognizedInput:
self.error("Unrecognized character")
if sy == 'IDENT':
if sy == IDENT:
if systring in resword_dict:
sy = systring
else:
......@@ -447,7 +451,7 @@ class PyrexScanner(Scanner):
self.expected(what, message)
def expect_keyword(self, what, message = None):
if self.sy == 'IDENT' and self.systring == what:
if self.sy == IDENT and self.systring == what:
self.next()
else:
self.expected(what, message)
......
import cython
cdef class Scanner:
cdef public lexicon
cdef public stream
cdef public name
......@@ -20,12 +21,13 @@ cdef class Scanner:
cdef public bint trace
cdef public cur_char
cdef public input_state
cdef public level # int?
cdef public level
cpdef next_char(self):
cdef:
long input_state
cpdef read(self)
cpdef run_machine_inlined(self):
cdef:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment