<lexer> <config> <name>GraphQL</name> <alias>graphql</alias> <alias>graphqls</alias> <alias>gql</alias> <filename>*.graphql</filename> <filename>*.graphqls</filename> </config> <rules> <state name="root"> <rule pattern="(query|mutation|subscription|fragment|scalar|implements|interface|union|enum|input|type)"> <token type="KeywordDeclaration"/> <push state="type"/> </rule> <rule pattern="(on|extend|schema|directive|\.\.\.)"> <token type="KeywordDeclaration"/> </rule> <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"> <token type="KeywordConstant"/> </rule> <rule pattern="[^\W\d]\w*"> <token type="NameProperty"/> </rule> <rule pattern="\@\w+"> <token type="NameDecorator"/> </rule> <rule pattern=":"> <token type="Punctuation"/> <push state="type"/> </rule> <rule pattern="[\(\)\{\}\[\],!\|=]"> <token type="Punctuation"/> </rule> <rule pattern="\$\w+"> <token type="NameVariable"/> </rule> <rule pattern="\d+i"> <token type="LiteralNumber"/> </rule> <rule pattern="\d+\.\d*([Ee][-+]\d+)?i"> <token type="LiteralNumber"/> </rule> <rule pattern="\.\d+([Ee][-+]\d+)?i"> <token type="LiteralNumber"/> </rule> <rule pattern="\d+[Ee][-+]\d+i"> <token type="LiteralNumber"/> </rule> <rule pattern="\d+(\.\d+[eE][+\-]?\d+|\.\d*|[eE][+\-]?\d+)"> <token type="LiteralNumberFloat"/> </rule> <rule pattern="\.\d+([eE][+\-]?\d+)?"> <token type="LiteralNumberFloat"/> </rule> <rule pattern="(0|[1-9][0-9]*)"> <token type="LiteralNumberInteger"/> </rule> <rule pattern=""""[\x00-\x7F]*?""""> <token type="LiteralString"/> </rule> <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}|[^\\])""> <token type="LiteralStringChar"/> </rule> <rule pattern=""(\\\\|\\"|[^"])*""> <token type="LiteralString"/> </rule> <rule pattern=""(true|false|null)*""> <token type="Literal"/> </rule> <rule pattern="[\r\n\s]+"> <token type="TextWhitespace"/> </rule> <rule pattern="#[^\r\n]*"> <token type="Comment"/> </rule> </state> <state name="type"> <rule pattern="[^\W\d]\w*"> <token type="NameClass"/> <pop depth="1"/> </rule> <rule> <include state="root"/> </rule> </state> </rules> </lexer>