66
|
1 <lexer>
|
|
2 <config>
|
|
3 <name>GraphQL</name>
|
|
4 <alias>graphql</alias>
|
|
5 <alias>graphqls</alias>
|
|
6 <alias>gql</alias>
|
|
7 <filename>*.graphql</filename>
|
|
8 <filename>*.graphqls</filename>
|
|
9 </config>
|
|
10 <rules>
|
|
11 <state name="root">
|
|
12 <rule pattern="(query|mutation|subscription|fragment|scalar|implements|interface|union|enum|input|type)">
|
|
13 <token type="KeywordDeclaration"/>
|
|
14 <push state="type"/>
|
|
15 </rule>
|
|
16 <rule pattern="(on|extend|schema|directive|\.\.\.)">
|
|
17 <token type="KeywordDeclaration"/>
|
|
18 </rule>
|
|
19 <rule pattern="(QUERY|MUTATION|SUBSCRIPTION|FIELD|FRAGMENT_DEFINITION|FRAGMENT_SPREAD|INLINE_FRAGMENT|SCHEMA|SCALAR|OBJECT|FIELD_DEFINITION|ARGUMENT_DEFINITION|INTERFACE|UNION|ENUM|ENUM_VALUE|INPUT_OBJECT|INPUT_FIELD_DEFINITION)\b">
|
|
20 <token type="KeywordConstant"/>
|
|
21 </rule>
|
|
22 <rule pattern="[^\W\d]\w*">
|
|
23 <token type="NameProperty"/>
|
|
24 </rule>
|
|
25 <rule pattern="\@\w+">
|
|
26 <token type="NameDecorator"/>
|
|
27 </rule>
|
|
28 <rule pattern=":">
|
|
29 <token type="Punctuation"/>
|
|
30 <push state="type"/>
|
|
31 </rule>
|
|
32 <rule pattern="[\(\)\{\}\[\],!\|=]">
|
|
33 <token type="Punctuation"/>
|
|
34 </rule>
|
|
35 <rule pattern="\$\w+">
|
|
36 <token type="NameVariable"/>
|
|
37 </rule>
|
|
38 <rule pattern="\d+i">
|
|
39 <token type="LiteralNumber"/>
|
|
40 </rule>
|
|
41 <rule pattern="\d+\.\d*([Ee][-+]\d+)?i">
|
|
42 <token type="LiteralNumber"/>
|
|
43 </rule>
|
|
44 <rule pattern="\.\d+([Ee][-+]\d+)?i">
|
|
45 <token type="LiteralNumber"/>
|
|
46 </rule>
|
|
47 <rule pattern="\d+[Ee][-+]\d+i">
|
|
48 <token type="LiteralNumber"/>
|
|
49 </rule>
|
|
50 <rule pattern="\d+(\.\d+[eE][+\-]?\d+|\.\d*|[eE][+\-]?\d+)">
|
|
51 <token type="LiteralNumberFloat"/>
|
|
52 </rule>
|
|
53 <rule pattern="\.\d+([eE][+\-]?\d+)?">
|
|
54 <token type="LiteralNumberFloat"/>
|
|
55 </rule>
|
|
56 <rule pattern="(0|[1-9][0-9]*)">
|
|
57 <token type="LiteralNumberInteger"/>
|
|
58 </rule>
|
|
59 <rule pattern=""""[\x00-\x7F]*?"""">
|
|
60 <token type="LiteralString"/>
|
|
61 </rule>
|
|
62 <rule pattern=""(\\["\\abfnrtv]|\\x[0-9a-fA-F]{2}|\\[0-7]{1,3}|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}|[^\\])"">
|
|
63 <token type="LiteralStringChar"/>
|
|
64 </rule>
|
|
65 <rule pattern=""(\\\\|\\"|[^"])*"">
|
|
66 <token type="LiteralString"/>
|
|
67 </rule>
|
|
68 <rule pattern=""(true|false|null)*"">
|
|
69 <token type="Literal"/>
|
|
70 </rule>
|
|
71 <rule pattern="[\r\n\s]+">
|
|
72 <token type="TextWhitespace"/>
|
|
73 </rule>
|
|
74 <rule pattern="#[^\r\n]*">
|
|
75 <token type="Comment"/>
|
|
76 </rule>
|
|
77 </state>
|
|
78 <state name="type">
|
|
79 <rule pattern="[^\W\d]\w*">
|
|
80 <token type="NameClass"/>
|
|
81 <pop depth="1"/>
|
|
82 </rule>
|
|
83 <rule>
|
|
84 <include state="root"/>
|
|
85 </rule>
|
|
86 </state>
|
|
87 </rules>
|
|
88 </lexer> |