parent
9bf99db87b
commit
b07e1f81a6
@ -659,7 +659,12 @@ class LexerTokenStream(TokenStream):
|
||||
tokbuf.append(tok)
|
||||
|
||||
if tok.type == "NEWLINE":
|
||||
break
|
||||
# detect/remove line continuations
|
||||
if len(tokbuf) > 2 and tokbuf[-2].type == "\\":
|
||||
tokbuf.pop()
|
||||
tokbuf.pop()
|
||||
else:
|
||||
break
|
||||
|
||||
# detect/combine user defined literals
|
||||
if tok.type in udl_start:
|
||||
|
@ -116,17 +116,14 @@ def test_enum_w_multiline_expr() -> None:
|
||||
Token(value="<<"),
|
||||
Token(value="24"),
|
||||
Token(value="|"),
|
||||
Token(value="\\"),
|
||||
Token(value="'A'"),
|
||||
Token(value="<<"),
|
||||
Token(value="16"),
|
||||
Token(value="|"),
|
||||
Token(value="\\"),
|
||||
Token(value="'S'"),
|
||||
Token(value="<<"),
|
||||
Token(value="8"),
|
||||
Token(value="|"),
|
||||
Token(value="\\"),
|
||||
Token(value="'H'"),
|
||||
Token(value=")"),
|
||||
]
|
||||
|
@ -267,3 +267,30 @@ def test_user_defined_literal() -> None:
|
||||
]
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
#
|
||||
# Line continuation
|
||||
#
|
||||
|
||||
|
||||
def test_line_continuation() -> None:
|
||||
content = """
|
||||
static int \
|
||||
variable;
|
||||
"""
|
||||
data = parse_string(content, cleandoc=True)
|
||||
|
||||
assert data == ParsedData(
|
||||
namespace=NamespaceScope(
|
||||
variables=[
|
||||
Variable(
|
||||
name=PQName(segments=[NameSpecifier(name="variable")]),
|
||||
type=Type(
|
||||
typename=PQName(segments=[FundamentalSpecifier(name="int")])
|
||||
),
|
||||
static=True,
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
|
Loading…
x
Reference in New Issue
Block a user