<lexer> <config> <name>Turtle</name> <alias>turtle</alias> <filename>*.ttl</filename> <mime_type>text/turtle</mime_type> <mime_type>application/x-turtle</mime_type> <case_insensitive>true</case_insensitive> <not_multiline>true</not_multiline> </config> <rules> <state name="triple-double-quoted-string"> <rule pattern="""""> <token type="LiteralString"/> <push state="end-of-string"/> </rule> <rule pattern="[^\\]+"> <token type="LiteralString"/> </rule> <rule pattern="\\"> <token type="LiteralString"/> <push state="string-escape"/> </rule> </state> <state name="single-double-quoted-string"> <rule pattern="""> <token type="LiteralString"/> <push state="end-of-string"/> </rule> <rule pattern="[^"\\\n]+"> <token type="LiteralString"/> </rule> <rule pattern="\\"> <token type="LiteralString"/> <push state="string-escape"/> </rule> </state> <state name="triple-single-quoted-string"> <rule pattern="'''"> <token type="LiteralString"/> <push state="end-of-string"/> </rule> <rule pattern="[^\\]+"> <token type="LiteralString"/> </rule> <rule pattern="\\"> <token type="LiteralString"/> <push state="string-escape"/> </rule> </state> <state name="single-single-quoted-string"> <rule pattern="'"> <token type="LiteralString"/> <push state="end-of-string"/> </rule> <rule pattern="[^'\\\n]+"> <token type="LiteralString"/> </rule> <rule pattern="\\"> <token type="LiteralString"/> <push state="string-escape"/> </rule> </state> <state name="string-escape"> <rule pattern="."> <token type="LiteralString"/> <pop depth="1"/> </rule> </state> <state name="end-of-string"> <rule pattern="(@)([a-z]+(:?-[a-z0-9]+)*)"> <bygroups> <token type="Operator"/> <token type="GenericEmph"/> <token type="GenericEmph"/> </bygroups> <pop depth="2"/> </rule> <rule pattern="(\^\^)(<[^<>"{}|^`\\\x00-\x20]*>)"> <bygroups> <token type="Operator"/> <token type="GenericEmph"/> </bygroups> <pop depth="2"/> </rule> <rule pattern="(\^\^)((?:[a-z][\w-]*)?\:)([a-z][\w-]*)"> <bygroups> <token type="Operator"/> <token type="GenericEmph"/> <token type="GenericEmph"/> </bygroups> <pop depth="2"/> </rule> <rule> <pop depth="2"/> </rule> </state> <state name="root"> <rule pattern="\s+"> <token type="TextWhitespace"/> </rule> <rule pattern="(@base|BASE)(\s+)(<[^<>"{}|^`\\\x00-\x20]*>)(\s*)(\.?)"> <bygroups> <token type="Keyword"/> <token type="TextWhitespace"/> <token type="NameVariable"/> <token type="TextWhitespace"/> <token type="Punctuation"/> </bygroups> </rule> <rule pattern="(@prefix|PREFIX)(\s+)((?:[a-z][\w-]*)?\:)(\s+)(<[^<>"{}|^`\\\x00-\x20]*>)(\s*)(\.?)"> <bygroups> <token type="Keyword"/> <token type="TextWhitespace"/> <token type="NameNamespace"/> <token type="TextWhitespace"/> <token type="NameVariable"/> <token type="TextWhitespace"/> <token type="Punctuation"/> </bygroups> </rule> <rule pattern="(?<=\s)a(?=\s)"> <token type="KeywordType"/> </rule> <rule pattern="(<[^<>"{}|^`\\\x00-\x20]*>)"> <token type="NameVariable"/> </rule> <rule pattern="((?:[a-z][\w-]*)?\:)([a-z][\w-]*)"> <bygroups> <token type="NameNamespace"/> <token type="NameTag"/> </bygroups> </rule> <rule pattern="#[^\n]+"> <token type="Comment"/> </rule> <rule pattern="\b(true|false)\b"> <token type="Literal"/> </rule> <rule pattern="[+\-]?\d*\.\d+"> <token type="LiteralNumberFloat"/> </rule> <rule pattern="[+\-]?\d*(:?\.\d+)?E[+\-]?\d+"> <token type="LiteralNumberFloat"/> </rule> <rule pattern="[+\-]?\d+"> <token type="LiteralNumberInteger"/> </rule> <rule pattern="[\[\](){}.;,:^]"> <token type="Punctuation"/> </rule> <rule pattern="""""> <token type="LiteralString"/> <push state="triple-double-quoted-string"/> </rule> <rule pattern="""> <token type="LiteralString"/> <push state="single-double-quoted-string"/> </rule> <rule pattern="'''"> <token type="LiteralString"/> <push state="triple-single-quoted-string"/> </rule> <rule pattern="'"> <token type="LiteralString"/> <push state="single-single-quoted-string"/> </rule> </state> </rules> </lexer>