home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 3 / TheARMClub_PDCD3.iso / hensa / texted / stronged_2 / !StrongED / Defaults / Modes / Forth < prev    next >
Text File  |  1996-12-02  |  5KB  |  158 lines

  1. #       Mode file for StrongED 4
  2. #
  3. #       Forthmacs environment editor
  4. #       Hanno Schwalm, schwalm@bre.winnet.de
  5. #       Org: Schwalm Forthware
  6.  
  7. # Note: the next lines should be included in the !StrongED.modewhen file
  8. # Forth
  9. # fff,**.!Forthmacs.**
  10.  
  11. # Forthmacs - as all Forths - uses ONLY and ALL whitespaces as 'word-limiting'
  12. # characters. ALL other characters belong to a word.
  13. # So I would prefer the ID_ lines to be defined like {'~\x00-\x20\x7F\xa0'}+
  14. # but Icouldn't find out, how to do it and if it's possible.
  15. Search
  16.         _MarkWord       {'~\x00-\x20\x7F\xa0'}+
  17. End
  18.  
  19. ID_FirstChar    A-Za-z_0-9.:,;\-\_#'\+*~\?\/&%$§"!^°@|[](){}ß<>
  20. ID_Middle       A-Za-z_0-9.:,;\-\_#'\+*~\?\/&%$§"!^°@|[](){}ß<>
  21.  
  22.  
  23. # These seem to be used for defining quote-meanings, there is no real
  24. # use in Forth.
  25. SyntaxOptions
  26.         SingleQuote     No
  27.         DoubleQuote     No
  28.         QuoteQuote      No
  29.         SplitString     No
  30.         HexPrefix       $
  31.         BinPrefix       %
  32. End
  33.  
  34. # There a 4 Forth comment types available.
  35. # 1-2 The words (s and ( both start comments. These comments can be multiline
  36. # and end at the next available ) character. This character can be anywhere
  37. # in the same file and can be found in ANY character combination
  38. # 3 The word \ begins a comment the comment ends at the end-of-line
  39. # 4 fexit begins a comment, the comment ends at the end-of-file. This is used
  40. # very rarely, so no need to implement.
  41. # So far, Multiline comments 1-2 are not accepted, but this is also almost
  42. # never used in practice
  43. SyntaxComment 1
  44.         Type            Multiline
  45.         StartWith       (
  46.         EndWith         )
  47. End
  48. SyntaxComment 2
  49.         Type            Multiline
  50.         StartWith       (s
  51.         EndWith         )
  52. End
  53.  
  54. # The first four syntax groups define commoon Forth keywords
  55.  
  56. # control words
  57. SyntaxWords Group1 EndNonID case
  58.         do ?do loop +loop leave ?leave if else then ?exit exit unnest
  59.         begin until again repeat while
  60.         of case endof endcase 
  61. End
  62.  
  63. # defining words
  64. SyntaxWords Group2 EndNonID case
  65.         : constant variable create code label nuser auser tuser
  66.         user value locals| 2variable 2constant defer vocabulary
  67.         pointer buffer: field struct task: action: action-name
  68.         mlabel syscall: alias libcall: environment:
  69. End
  70.  
  71. # conditional compilation words
  72. SyntaxWords Group3 EndNonID case
  73.         needs \needs [ifdef] [else] [then] [ifndef] [if]
  74.         headers headerless headerless0
  75. End
  76.  
  77. # others
  78. SyntaxWords Group4 EndNonID case
  79.         does> ; ;code end-code c; code[ ]code next return immediate
  80.         decimal hex
  81. End
  82.  
  83. # all other groups are defined to allow the above comment types.
  84. # So the coloring should be like this:
  85. # Text -    black on white
  86. # Carret -  red on red
  87. # block -   black on grey
  88. # mark -    white on red
  89. # control - red on white
  90. # id -      black on white
  91. # strings - black on white
  92. #   strings can't be safely defined as the syntax varies very much
  93. # comm -    light grey on white
  94. # numbers - black on white
  95. #   numbers can be in any number base so ...
  96. # punct. -  black on white . no use in Forth
  97. # 1 -       lightblue on white
  98. # 2 -       green on white
  99. # 3 -       red on white
  100. # 4 -       orange on white
  101. # 5 -       black on white, this defines non-comment \ combinations
  102. # 6 -       grey on white - comment
  103. # 7 -       black on white, non-comment ( combinations
  104. # 8 -       black on white, non comment (s combinations
  105.  
  106. SyntaxWords Group5 EndofID case
  107.         \a \b \c \d \e \f \g \h \i \j \k \l \m
  108.         \n \o \p \q \r \s \t \u \v \w \x \y \z
  109.         \A \B \C \D \E \F \G \H \I \J \K \L \M
  110.         \N \O \P \Q \R \S \T \U \V \W \X \Y \Z
  111.         \1 \2 \3 \4 \5 \6 \7 \8 \9 \0 \= \+ \- \_
  112.         \? \! \" \$ \% \* \/ \~ \# \' \( \) \[ \]
  113.         \{ \} \< \> \| \; \: \. \,
  114. End
  115.  
  116. SyntaxWords Group6 EndofLine
  117.         \
  118. End
  119.  
  120. SyntaxWords Group7 EndofID case
  121.         (a (b (c (d (e (f (g (h (i (j (k (l (m
  122.         (n (o (p (q (r (t (u (v (w (x (y (z
  123.         (A (B (C (D (E (F (G (H (I (J (K (L (M
  124.         (N (O (P (Q (R (S (T (U (V (W (X (Y (Z
  125.         (1 (2 (3 (4 (5 (6 (7 (8 (9 (0 (= (+ (- (_
  126.         (? (! (" ($ (% (* (/ (~ (# (' (( () ([ (]
  127.         ({ (} (< (> (| (; (: (. (,
  128. End
  129. SyntaxWords Group8 EndofID case
  130.         (sa (sb (sc (sd (se (sf (sg (sh (si (sj (sk (sl (sm
  131.         (sn (so (sp (sq (sr (st (su (sv (sw (sx (sy (sz
  132.         (sA (sB (sC (sD (sE (sF (sG (sH (sI (sJ (sK (sL (sM
  133.         (sN (sO (sP (sQ (sR (sS (sT (sU (sV (sW (sX (sY (sZ
  134.         (s1 (s2 (s3 (s4 (s5 (s6 (s7 (s8 (s9 (s0 (s= (s+ (s- (s_
  135.         (s? (s! (s" (s$ (s% (s* (s/ (s~ (s# (s' (s(s (s) (s[ (s]
  136.         (s{ (s} (s< (s> (s| (s; (s: (s. (s,
  137. End
  138.  
  139. Functions
  140.         Key     ^H
  141.         Menu    Help Search
  142.         Icon    sm!Help
  143.         Help    Online help about word under cursor
  144.         Select  SetTmp() Run ("Forthmacs:bin.search") DClick ("Forthmacs:docs.html.targetfile")
  145.  
  146.         Key     ^⇧H
  147.         Menu    Load *.fth
  148.         Icon    save
  149.         Help    Click to load the source file under cursor.
  150.         Select  SetTmp() LoadOne ("Forthmacs:<tmp$word>")
  151.  
  152.         Key     F10
  153.         Menu    Save & fload      F10
  154.         Icon    Run
  155.         Select  SaveRun ("Forthmacs:bin.run.forth <Tmp$Path>.<Tmp$Leaf>")
  156.         Help    Click to save file and fload it.
  157. End
  158.