{ "name": "faust", "scopeName": "source.faust", "patterns": [ { "name": "comment.block.faust", "begin": "/\\*", "end": "\\*/", "captures": { "0": { "name": "punctuation.definition.comment.faust" } } }, { "name": "comment.line.double-slash.faust", "match": "(//).*$\\n?", "captures": { "1": { "name": "punctuation.definition.comment.faust" } } }, { "name": "constant.numeric.faust", "match": "(\\.\\d+([Ee][-+]\\d+)?i?)\\b" }, { "name": "constant.numeric.faust", "match": "\\b\\d+\\.\\d*(([Ee][-+]\\d+)?i?\\b)?" }, { "name": "constant.numeric.faust", "match": "\\b((0x[0-9a-fA-F]+)|(0[0-7]+i?)|(\\d+([Ee]\\d+)?i?)|(\\d+[Ee][-+]\\d+i?))\\b" }, { "name": "constant.symbol.faust", "match": "\\b(mem|prefix|int|float|rdtable|rwtable|select2|select3|ffunction|fconstant|fvariable|button|checkbox|vslider|hslider|nentry|vgroup|hgroup|tgroup|vbargraph|hbargraph|attach|acos|asin|atan|atan2|cos|sin|tan|exp|log|log10|pow|sqrt|abs|min|max|fmod|remainder|floor|ceil|rint)\\b" }, { "name": "keyword.control.faust", "match": "\\b(import|component|declare|library|environment|with|letrec|process|seq|par|sum|prod|inputs|outputs)\\b" }, { "name": "keyword.algebra.faust", "match": "(,|:\u003e|\u003c:|:|~)" }, { "name": "constant.numeric.faust", "match": "(;|=)" }, { "include": "#string_escaped_char" }, { "include": "#strings" }, { "include": "#operators" } ], "repository": { "operators": { "patterns": [ { "name": "keyword.operator.faust", "match": "(\\+|\u0026|==|!=|\\(|\\)|\\-|\\||\\-=|\\|=|\\|\\||\u003c|\u003c=|\\[|\\]|\\*|\\^|\\*=|\\^=|\u003c\\-|\u003e|\u003e=|\\{|\\}|/|\u003c\u003c|/=|\u003c\u003c=|\\+\\+|=|:=|,|;|%|\u003e\u003e|%=|\u003e\u003e=|\\-\\-|!|\\.\\.\\.|\\.|:|\u0026\\^|\u0026\\^=)" } ] }, "printf_verbs": { "patterns": [ { "name": "constant.escape.format-verb.faust", "match": "%(\\[\\d+\\])?([\\+#\\-0\\x20]{,2}((\\d+|\\*)?(\\.?(\\d+|\\*|(\\[\\d+\\])\\*?)?(\\[\\d+\\])?)?))?[vT%tbcdoqxXUbeEfFgGsp]" } ] }, "string_escaped_char": { "patterns": [ { "name": "constant.character.escape.faust", "match": "\\\\([0-7]{3}|[abfnrtv\\\\'\"]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})" }, { "name": "invalid.illegal.unknown-escape.faust", "match": "\\\\[^0-7xuUabfnrtv\\'\"]" } ] }, "strings": { "patterns": [ { "name": "string.quoted.double.faust", "begin": "\"", "end": "\"", "patterns": [ { "include": "#string_escaped_char" }, { "include": "#printf_verbs" } ], "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.faust" } }, "endCaptures": { "0": { "name": "punctuation.definition.string.end.faust" } } } ] } } }