Skip to content

Commit d362e50

Browse files
fix: lexing of annotations with namespace
1 parent e7eed12 commit d362e50

File tree

3 files changed

+42
-1
lines changed

3 files changed

+42
-1
lines changed

src/openqasm_pygments/qasm3.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ def _defcalgrammar_callback(self, match):
8080
"annotation",
8181
),
8282
(
83-
r"^([ \t]*)(@\w+(\.\w+)*)([ \t]*)",
83+
r"^([ \t]*)(@\w+(?:\.\w+)*)([ \t]*)",
8484
bygroups(token.Whitespace, token.Name.Decorator, token.Whitespace),
8585
"annotation",
8686
),

tests/examples/qasm3/annotations.qasm

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
// Test lexing of annotations with namespaces
2+
OPENQASM 3.1;
3+
@annotation
4+
@annotation value
5+
@annotation.long.namespace
6+
@annotation.long.namespace value
7+
@annotation.long.namespace
8+
@annotation.long.namespace value
9+
h q;
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
'// Test lexing of annotations with namespaces' Token.Comment.Single
2+
'\n' Token.Text.Whitespace
3+
'OPENQASM' Token.Comment.Preproc
4+
' ' Token.Text.Whitespace
5+
'3.1' Token.Literal
6+
';' Token.Punctuation
7+
'\n' Token.Text.Whitespace
8+
'@annotation' Token.Name.Decorator
9+
'\n' Token.Text.Whitespace
10+
'@annotation' Token.Name.Decorator
11+
' ' Token.Text.Whitespace
12+
'value' Token.Text
13+
'\n' Token.Text.Whitespace
14+
'@annotation.long.namespace' Token.Name.Decorator
15+
'\n' Token.Text.Whitespace
16+
'@annotation.long.namespace' Token.Name.Decorator
17+
' ' Token.Text.Whitespace
18+
'value' Token.Text
19+
'\n' Token.Text.Whitespace
20+
' ' Token.Text.Whitespace
21+
'@annotation.long.namespace' Token.Name.Decorator
22+
'\n' Token.Text.Whitespace
23+
' ' Token.Text.Whitespace
24+
'@annotation.long.namespace' Token.Name.Decorator
25+
' ' Token.Text.Whitespace
26+
'value' Token.Text
27+
'\n' Token.Text.Whitespace
28+
'h' Token.Name.Function
29+
' ' Token.Text.Whitespace
30+
'q' Token.Name
31+
';' Token.Punctuation
32+
'\n' Token.Text.Whitespace

0 commit comments

Comments
 (0)