File tree Expand file tree Collapse file tree 1 file changed +67
-0
lines changed
Expand file tree Collapse file tree 1 file changed +67
-0
lines changed Original file line number Diff line number Diff line change 1+ # Note: testcases generated via `python -m cxxheaderparser.gentest`
2+
3+ from cxxheaderparser .simple import NamespaceScope , ParsedData , parse_string
4+ from cxxheaderparser .types import (
5+ Function ,
6+ FundamentalSpecifier ,
7+ NameSpecifier ,
8+ PQName ,
9+ TemplateDecl ,
10+ TemplateNonTypeParam ,
11+ Token ,
12+ Type ,
13+ Value ,
14+ )
15+
16+
17+ def test_requires_parenthesized_atoms () -> None :
18+ content = """
19+ template <int X>
20+ requires (X == 0) || (X == 1)
21+ int Fibonacci() { return X; }
22+ """
23+ data = parse_string (content , cleandoc = True )
24+
25+ assert data == ParsedData (
26+ namespace = NamespaceScope (
27+ functions = [
28+ Function (
29+ return_type = Type (
30+ typename = PQName (segments = [FundamentalSpecifier (name = "int" )])
31+ ),
32+ name = PQName (segments = [NameSpecifier (name = "Fibonacci" )]),
33+ parameters = [],
34+ has_body = True ,
35+ template = TemplateDecl (
36+ params = [
37+ TemplateNonTypeParam (
38+ type = Type (
39+ typename = PQName (
40+ segments = [FundamentalSpecifier (name = "int" )]
41+ )
42+ ),
43+ name = "X" ,
44+ )
45+ ],
46+ raw_requires_pre = Value (
47+ tokens = [
48+ Token (value = "(" ),
49+ Token (value = "X" ),
50+ Token (value = "=" ),
51+ Token (value = "=" ),
52+ Token (value = "0" ),
53+ Token (value = ")" ),
54+ Token (value = "||" ),
55+ Token (value = "(" ),
56+ Token (value = "X" ),
57+ Token (value = "=" ),
58+ Token (value = "=" ),
59+ Token (value = "1" ),
60+ Token (value = ")" ),
61+ ]
62+ ),
63+ ),
64+ )
65+ ]
66+ )
67+ )
You can’t perform that action at this time.
0 commit comments