{ "name": "OpenEdge ABL", "scopeName": "source.abl", "fileTypes": [ "w", "p", "i" ], "uuid": "075bb86e-03ea-4fea-bac0-e11b9dc73e03", "patterns": [ { "name": "comment.block.source.abl", "begin": "/\\*", "end": "\\*/(?![^/]*?\\*/)" }, { "match": "('(?:'|.)*?')", "name": "string.single.source.abl" }, { "name": "string.double.source.abl", "match": "\\\"\\\"[a-zA-Z0-9_\\.\\-]+\\\"\\\"" }, { "name": "string.double.complex.abl", "begin": "(\\\"(?!\\\"[a-zA-Z]+)|\\\"\\\"[a-zA-Z]+)", "end": "\\\"(?!\\\")", "patterns": [ { "name": "constant.character.escape.abl", "match": "(~(x\\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)|\\\"\\\")" } ] }, { "name": "constant.numeric.source.abl", "match": "(?|,|\\.))" }, { "name": "keyword.option.source.abl", "match": "(?i)(\\b(return|function|return(s)?|forward|input|output|like|new|no-undo|no-box|no-labels|(share|no|exclusive)-lock|no-error|format|colon|label|init(ial)?|side-labels|width|primary|use-index)\\b|@)" }, { "name": "keyword.statement.source.abl", "match": "(?i)\\b(disp(lay)?|for|do|repeat|delete|create|update|empty|assign|import( unformatted)?|input\\s+(from|close)|with|skip)\\b" }, { "name": "keyword.type.source.abl", "match": "(?i)\\b(as|for(?!\\s+(each|first|last)))\\b" }, { "match": "(?i)\\b(like)\\s+([a-zA-Z0-9_\\.-]+),", "captures": { "1": { "name": "keyword.type.source.abl" }, "2": { "name": "storage.type.source.abl" } } }, { "name": "keyword.control.source.abl", "match": "(?i)(\\b(if|avail(able)?|down|where|else( if)?|each|first|last|while|find( first|last)?|then( do( transaction)?)?|next|page|quit)\\b|(?