text/x-forth
*.frt;*.fs
\
(*
*)
(?<![^\s])
(NEEDS|INCLUDE|IN|MARKER)\s+[^\s]*
(?![^\s])
(?<![^\s])
(REVISION)\s+[^\s]*\s*".*"
(?![^\s])
(?<![^\s])
(INCLUDED|INCLUDE-FILE)
(?![^\s])
(?<![^\s])
(POSTPONE|\[COMPILE\]|\[CHAR\]|\['\]|COMPILE|CHAR|[DFT]?VALUE|[2FT]?VARIABLE|[DS]?FVARIABLE|[T]?USER|[T]?CODE|[DZFT]?LOCAL|
[2FT]?CONSTANT|TCONSTANT-|TSUB|=\:|==\:|DEFER|HC\:|[VHTM]?\:)\s+[^\s]+
(?![^\s])
(?<![^\s])
([DFZ]?LOCALS)\|\s+[^\|]+[\|]
(?![^\s])
(?<![^\s])(S|[.]|EVAL|C|Z|,)"\s
"
(?<![^\s])(.~)\s
~
(?<![^\s])[.]\(\s
\)
(?<![^\s])(ABORT|\?ERROR)"\s
"
(?<![^\s])
([$][-+]?[A-F0-9.]+ |
[#][-+]?[0-9.]+ |
[%][-+]?[0-1.]+ |
[-+]?[0-9.]+ |
[-+]?[0-9]+[.]?[0-9]*[eE][0-9]* |
'[^\s]' |
[\^][A-Za-z] |
TRUE |
FALSE)
(?![^\s])
(?<![^\s])
(\[IF\]|\[ELSE\]|\[THEN\]|\[DEFINED\]|\[UNDEFINED\]|\?DEF|\?UNDEF|THROW|CASE|ENDCASE|OF|ENDOF|FOR|NEXT|
IF[,]?|ELSE[,]?|THEN[,]?|ENDIF[,]?|BEGIN[,]?|WHILE[,]?|REPEAT[,]?|UNTIL[,]?|AGAIN[,]?|DO|LOOP|\?DO|\+LOOP|LEAVE|\?LEAVE|UNLOOP|EXIT|\?EXIT|
PAR|ENDPAR|STARTP|ENDP)
(?![^\s])
(?<![^\s])
(PRIVATE|PRIVATES|DEPRIVE|FORGET|IMMEDIATE|ALSO|ONLY|FORTH|DEFINITIONS|HEADERLESS)
(?![^\s])
(?<![^\s])
(\:ABOUT|DOES>|FORGET>|CREATE|\:NONAME)
(?![^\s])
(?<![^\s])(\[)(?![^\s])
(?<![^\s])(\])(?![^\s])