else:
return None
-def p_string_literal(s):
+def p_string_literal(s, kind_override=None):
# A single string or char literal.
# Returns (kind, value) where kind in ('b', 'c', 'u')
# s.sy == 'BEGIN_STRING'
if Future.unicode_literals in s.context.future_directives:
if kind == '':
kind = 'u'
+ if kind_override is not None and kind_override in 'ub':
+ kind = kind_override
if kind == 'u':
chars = StringEncoding.UnicodeLiteralBuilder()
else:
ctx = ctx(cdef_flag = 1, visibility = 'extern')
if s.systring == "namespace":
s.next()
- ctx.namespace = p_string_literal(s)[1]
+ ctx.namespace = p_string_literal(s, kind_override='u')[1]
if p_nogil(s):
ctx.nogil = 1
body = p_suite(s, ctx)