cos top-level property

Mode cos
final

Implementation

final cos = Mode(
    refs: {},
    name: "Caché Object Script",
    case_insensitive: true,
    aliases: ["cls"],
    keywords:
        "property parameter class classmethod clientmethod extends as break catch close continue do d|0 else elseif for goto halt hang h|0 if job j|0 kill k|0 lock l|0 merge new open quit q|0 read r|0 return set s|0 tcommit throw trollback try tstart use view while write w|0 xecute x|0 zkill znspace zn ztrap zwrite zw zzdump zzwrite print zbreak zinsert zload zprint zremove zsave zzprint mv mvcall mvcrt mvdim mvprint zquit zsync ascii",
    contains: [
      Mode(
          className: "number",
          begin: "\\b(\\d+(\\.\\d*)?|\\.\\d+)",
          relevance: 0),
      Mode(className: "string", variants: [
        Mode(
            begin: "\"",
            end: "\"",
            contains: [Mode(begin: "\"\"", relevance: 0)])
      ]),
      C_LINE_COMMENT_MODE,
      C_BLOCK_COMMENT_MODE,
      Mode(className: "comment", begin: ";", end: "\$", relevance: 0),
      Mode(className: "built_in", begin: "(?:\\\$\\\$?|\\.\\.)\\^?[a-zA-Z]+"),
      Mode(className: "built_in", begin: "\\\$\\\$\\\$[a-zA-Z]+"),
      Mode(className: "built_in", begin: "%[a-z]+(?:\\.[a-z]+)*"),
      Mode(className: "symbol", begin: "\\^%?[a-zA-Z][\\w]*"),
      Mode(className: "keyword", begin: "##class|##super|#define|#dim"),
      Mode(
          begin: "&sql\\(",
          end: "\\)",
          excludeBegin: true,
          excludeEnd: true,
          subLanguage: ["sql"]),
      Mode(
          begin: "&(js|jscript|javascript)<",
          end: ">",
          excludeBegin: true,
          excludeEnd: true,
          subLanguage: ["javascript"]),
      Mode(begin: "&html<\\s*<", end: ">\\s*>", subLanguage: ["xml"])
    ]);