{
  "languageName": "mumu",
  "patterns": [
    {
      "name": "string",
      "matchStyle": "regex",
      "regex": "\"([^\"\\\\]|\\\\.)*\"",
      "className": "af-string"
    },
    {
      "name": "number",
      "matchStyle": "regex",
      "regex": "\\b-?(?:0x[0-9A-Fa-f]+|\\d+(?:\\.\\d+)?(?:[eE][+\\-]?\\d+)?)\\b",
      "className": "af-number"
    },
    {
      "name": "placeholder",
      "matchStyle": "regex",
      "regex": "\\b_\\b",
      "className": "af-placeholder"
    },
    {
      "name": "arrow-operator",
      "matchStyle": "regex",
      "regex": "=>",
      "className": "af-operator"
    },
    {
      "name": "comment-line",
      "matchStyle": "regex",
      "regex": "//.*$",
      "className": "af-comment"
    },
    {
      "name": "comment-block",
      "matchStyle": "regex",
      "regex": "/\\*[\\s\\S]*?\\*/",
      "className": "af-comment",
      "multiLine": true
    },
    {
      "name": "builtin-words",
      "matchStyle": "words",
      "words": [
        "fn","extend","describe","it","expect_equal","expect_not_equal","test:expect_error",
        "test:run","test:all","test:list",
        "map","filter","reduce","keys","prop","append","nth","range","assoc","apply","each",
        "matrix:add","matrix:subtract","matrix:multiply","matrix:transpose",
        "flow:trans","flow:slice","flow:compose","flow:throttle","flow:to_array",
        "event:timeout","event:interval","event:stop",
        "sys:command","sys:timestamp_ms","sys:timestamp_micro",
        "string:lower","string:upper","string:length","string:concat","string:to_string",
        "math:abs","math:acos","math:acosh","math:asin","math:asinh","math:atan","math:atan2",
        "math:atanh","math:cbrt","math:ceil","math:clz32","math:cos","math:cosh",
        "math:exp","math:expm1","math:floor","math:fround","math:imul",
        "math:log","math:log2","math:log10","math:log1p","math:max","math:min","math:pow",
        "math:round","math:sign","math:sin","math:sinh","math:sqrt","math:tan","math:tanh",
        "math:plus","math:subtract","math:multiply","math:divide",
        "file:read","file:write","file_contents_equal","file_contents_not_equal",
        "process:info","process:check_tasks",
        "net:ping","net:stop","net:fetch",
        "ink","sput","slog","type"
      ],
      "className": "af-builtin"
    },
    {
      "name": "keyword-fn",
      "matchStyle": "words",
      "words": ["fn"],
      "className": "af-keyword"
    }
  ]
}
