{
    "case_insensitive": true,
    "lexemes": "\\.?\\w+",
    "keywords": "abstract add and array as asc aspect assembly async begin break block by case class concat const copy constructor continue create default delegate desc distinct div do downto dynamic each else empty end ensure enum equals event except exit extension external false final finalize finalizer finally flags for forward from function future global group has if implementation implements implies in index inherited inline interface into invariants is iterator join locked locking loop matching method mod module namespace nested new nil not notify nullable of old on operator or order out override parallel params partial pinned private procedure property protected public queryable raise read readonly record reintroduce remove repeat require result reverse sealed select self sequence set shl shr skip static step soft take then to true try tuple type union unit unsafe until uses using var virtual raises volatile where while with write xor yield await mapped deprecated stdcall cdecl pascal register safecall overload library platform reference packed strict published autoreleasepool selector strong weak unretained",
    "illegal": "(\"|\\$[G-Zg-z]|\\\/\\*|<\/|=>|->)",
    "contains": [
        {
            "className": "comment",
            "begin": "{",
            "end": "}",
            "contains": [
                {
                    "begin": "\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\b"
                },
                {
                    "className": "doctag",
                    "begin": "(?:TODO|FIXME|NOTE|BUG|XXX):",
                    "relevance": 0
                }
            ],
            "relevance": 0
        },
        {
            "className": "comment",
            "begin": "\\(\\*",
            "end": "\\*\\)",
            "contains": [
                {
                    "$ref": "#contains.0.contains.0"
                },
                {
                    "className": "doctag",
                    "begin": "(?:TODO|FIXME|NOTE|BUG|XXX):",
                    "relevance": 0
                }
            ],
            "relevance": 10
        },
        {
            "className": "comment",
            "begin": "\/\/",
            "end": "$",
            "contains": [
                {
                    "$ref": "#contains.0.contains.0"
                },
                {
                    "className": "doctag",
                    "begin": "(?:TODO|FIXME|NOTE|BUG|XXX):",
                    "relevance": 0
                }
            ]
        },
        {
            "className": "string",
            "begin": "'",
            "end": "'",
            "contains": [
                {
                    "begin": "''"
                }
            ]
        },
        {
            "className": "string",
            "begin": "(#\\d+)+"
        },
        {
            "className": "number",
            "begin": "\\b\\d+(\\.\\d+)?",
            "relevance": 0
        },
        {
            "className": "function",
            "beginKeywords": "function constructor destructor procedure method",
            "end": "[:;]",
            "keywords": "function constructor|10 destructor|10 procedure|10 method|10",
            "contains": [
                {
                    "className": "title",
                    "begin": "[a-zA-Z]\\w*",
                    "relevance": 0
                },
                {
                    "className": "params",
                    "begin": "\\(",
                    "end": "\\)",
                    "keywords": "abstract add and array as asc aspect assembly async begin break block by case class concat const copy constructor continue create default delegate desc distinct div do downto dynamic each else empty end ensure enum equals event except exit extension external false final finalize finalizer finally flags for forward from function future global group has if implementation implements implies in index inherited inline interface into invariants is iterator join locked locking loop matching method mod module namespace nested new nil not notify nullable of old on operator or order out override parallel params partial pinned private procedure property protected public queryable raise read readonly record reintroduce remove repeat require result reverse sealed select self sequence set shl shr skip static step soft take then to true try tuple type union unit unsafe until uses using var virtual raises volatile where while with write xor yield await mapped deprecated stdcall cdecl pascal register safecall overload library platform reference packed strict published autoreleasepool selector strong weak unretained",
                    "contains": [
                        {
                            "$ref": "#contains.3"
                        },
                        {
                            "$ref": "#contains.4"
                        }
                    ]
                },
                {
                    "$ref": "#contains.0"
                },
                {
                    "$ref": "#contains.1"
                }
            ]
        },
        {
            "className": "class",
            "begin": "=\\bclass\\b",
            "end": "end;",
            "keywords": "abstract add and array as asc aspect assembly async begin break block by case class concat const copy constructor continue create default delegate desc distinct div do downto dynamic each else empty end ensure enum equals event except exit extension external false final finalize finalizer finally flags for forward from function future global group has if implementation implements implies in index inherited inline interface into invariants is iterator join locked locking loop matching method mod module namespace nested new nil not notify nullable of old on operator or order out override parallel params partial pinned private procedure property protected public queryable raise read readonly record reintroduce remove repeat require result reverse sealed select self sequence set shl shr skip static step soft take then to true try tuple type union unit unsafe until uses using var virtual raises volatile where while with write xor yield await mapped deprecated stdcall cdecl pascal register safecall overload library platform reference packed strict published autoreleasepool selector strong weak unretained",
            "contains": [
                {
                    "$ref": "#contains.3"
                },
                {
                    "$ref": "#contains.4"
                },
                {
                    "$ref": "#contains.0"
                },
                {
                    "$ref": "#contains.1"
                },
                {
                    "$ref": "#contains.2"
                },
                {
                    "$ref": "#contains.6"
                }
            ]
        }
    ]
}
