{"name":"Forth","scopeName":"source.forth","patterns":[{"name":"constant.language.forth","match":"(?i:(?\u003c=^|\\s)(TRUE|FALSE|BL|PI|CELL|C/L|R/O|W/O|R/W)(?=\\s))"},{"name":"constant.numeric.forth","match":"(?\u003c=^|\\s)([$#%]?[-+]?[0-9]+(\\.[0-9]*e(-?[0-9]+)|\\.?[0-9a-fA-F]*))(?=\\s)"},{"name":"constant.character.forth","match":"(?\u003c=^|\\s)(([\u0026^]\\S)|((\"|')\\S(\"|')))(?=\\s)"},{"name":"comment.line.double-dash.forth","match":"(?\u003c=^|\\s)(-- .*$)"},{"name":"comment.line.backslash.forth","match":"(?\u003c=^|\\s)(\\\\ .*$)"},{"name":"comment.line.backslash-g.forth","match":"(?\u003c=^|\\s)(\\\\[Gg] .*$)"},{"name":"comment.block.forth","begin":"(?\u003c=^|\\s)(\\(\\*)(?=\\s)","end":"(?\u003c=^|\\s)(\\*\\))(?=\\s)"},{"name":"comment.block.documentation.forth","begin":"\\b(?i:DOC)\\b","end":"\\b(?i:ENDDOC)\\b"},{"name":"comment.line.parentheses.forth","match":"(?\u003c=^|\\s)(\\.?\\( [^)]*\\))"},{"name":"string.quoted.double.forth","match":"(?i:((?\u003c=ABORT\" )|(?\u003c=BREAK\" )|(?\u003c=\\.\" )|(C\" )|(S\\\\?\" )))[^\"]+\""},{"name":"string.unquoted.forth","match":"(?i:((?\u003c=INCLUDE)|(?\u003c=NEEDS)|(?\u003c=REQUIRE)|(?\u003c=USE)))[ ]\\S+(?=\\s)"},{"name":"keyword.control.immediate.forth","match":"(?\u003c=^|\\s)\\[(?i:(\\?DO|\\+LOOP|AGAIN|BEGIN|DO|ELSE|ENDIF|FOR|IF|IFDEF|IFUNDEF|LOOP|NEXT|REPEAT|THEN|UNTIL|WHILE))\\](?=\\s)"},{"name":"keyword.other.immediate.forth","match":"(?\u003c=^|\\s)(?i:(COMPILE-ONLY|IMMEDIATE|IS|RESTRICT|TO|WHAT'S))(?=\\s)"},{"name":"keyword.control.compile-only.forth","match":"(?\u003c=^|\\s)(?i:(-DO|\\-LOOP|\\?DO|\\?LEAVE|\\+DO|\\+LOOP|ABORT\\\"|AGAIN|AHEAD|BEGIN|CASE|DO|ELSE|ENDCASE|ENDIF|ENDOF|ENDTRY\\-IFERROR|ENDTRY|FOR|IF|IFERROR|LEAVE|LOOP|NEXT|RECOVER|REPEAT|RESTORE|THEN|TRY|U\\-DO|U\\+DO|UNTIL|WHILE))(?=\\s)"},{"name":"keyword.other.compile-only.forth","match":"(?\u003c=^|\\s)(?i:(\\?DUP-0=-IF|\\?DUP-IF|\\)|\\['\\]|\\[CHAR\\]|\\[COMPILE\\]|\\[IS\\]|\\[TO\\]|\u003cCOMPILATION|\u003cINTERPRETATION|ASSERT\\(|ASSERT0\\(|ASSERT1\\(|ASSERT2\\(|ASSERT3\\(|COMPILATION\u003e|DEFERS|DOES\u003e|INTERPRETATION\u003e|OF|POSTPONE))(?=\\s)"},{"name":"keyword.other.non-immediate.forth","match":"(?\u003c=^|\\s)(?i:('|\u003cIS\u003e|\u003cTO\u003e|CHAR|END-STRUCT|INCLUDE[D]?|LOAD|NEEDS|REQUIRE[D]?|REVISION|SEE|STRUCT|THRU|USE))(?=\\s)"},{"name":"keyword.other.warning.forth","match":"(?\u003c=^|\\s)(?i:(~~|BREAK:|BREAK\"|DBG))(?=\\s)"},{"name":"variable.language.forth","match":"\\b(?i:I|J)\\b"},{"name":"storage.type.forth","match":"(?\u003c=^|\\s)(?i:(2CONSTANT|2VARIABLE|ALIAS|CONSTANT|CREATE-INTERPRET/COMPILE[:]?|CREATE|DEFER|FCONSTANT|FIELD|FVARIABLE|USER|VALUE|VARIABLE|VOCABULARY))(?=\\s)"}]}