PageRenderTime 43ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/jEdit/tags/jedit-4-3-pre5/modes/forth.xml

#
XML | 153 lines | 130 code | 19 blank | 4 comment | 0 complexity | 1652e5bdad7c0f7edd6536dbf104517c MD5 | raw file
Possible License(s): BSD-3-Clause, AGPL-1.0, Apache-2.0, LGPL-2.0, LGPL-3.0, GPL-2.0, CC-BY-SA-3.0, LGPL-2.1, GPL-3.0, MPL-2.0-no-copyleft-exception, IPL-1.0
  1. <?xml version="1.0"?>
  2. <!DOCTYPE MODE SYSTEM "xmode.dtd">
  3. <!-- RetroForth is one of the nicest Forth implementations, so we
  4. support that one. You can extend this to your own Forth's vocabulary
  5. easily. -->
  6. <MODE>
  7. <PROPS>
  8. <PROPERTY NAME="indentNextLines" VALUE="^:[^;]*"/>>
  9. <PROPERTY NAME="unindentNextLines" VALUE="^.*;$"/>
  10. <PROPERTY NAME="commentStart" VALUE="("/>
  11. <PROPERTY NAME="commentEnd" VALUE=")"/>
  12. <PROPERTY NAME="lineComment" VALUE="|"/>
  13. <PROPERTY NAME="noWordSep" VALUE="+-*=&gt;&lt;;.?/'()%,_|$"/>
  14. </PROPS>
  15. <RULES IGNORE_CASE="FALSE"
  16. NO_WORD_SEP="+-*=&gt;&lt;;.?/'&quot;()%,_$"
  17. HIGHLIGHT_DIGITS="TRUE"
  18. DIGIT_RE="|-?\d+([./]\d+)?">
  19. <EOL_SPAN TYPE="COMMENT1" AT_WORD_START="TRUE">| </EOL_SPAN>
  20. <MARK_FOLLOWING TYPE="DIGIT" AT_WORD_START="TRUE">$</MARK_FOLLOWING>
  21. <MARK_FOLLOWING TYPE="LITERAL3" AT_WORD_START="TRUE">'</MARK_FOLLOWING>
  22. <!-- parsing words -->
  23. <SEQ_REGEXP TYPE="MARKUP"
  24. HASH_CHAR=":"
  25. AT_WORD_START="TRUE">:\s+(\S+)</SEQ_REGEXP>
  26. <SPAN TYPE="COMMENT3" DELEGATE="STACK_EFFECT">
  27. <BEGIN>( </BEGIN>
  28. <END>)</END>
  29. </SPAN>
  30. <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE"
  31. AT_WORD_START="TRUE">
  32. <BEGIN>s"</BEGIN>
  33. <END>"</END>
  34. </SPAN>
  35. <SPAN TYPE="LITERAL2" NO_LINE_BREAK="TRUE"
  36. AT_WORD_START="TRUE">
  37. <BEGIN>."</BEGIN>
  38. <END>"</END>
  39. </SPAN>
  40. <SPAN TYPE="LITERAL3" NO_LINE_BREAK="TRUE"
  41. AT_WORD_START="TRUE">
  42. <BEGIN>f"</BEGIN>
  43. <END>"</END>
  44. </SPAN>
  45. <SPAN TYPE="LITERAL3" NO_LINE_BREAK="TRUE"
  46. AT_WORD_START="TRUE">
  47. <BEGIN>m"</BEGIN>
  48. <END>"</END>
  49. </SPAN>
  50. <SPAN TYPE="LITERAL4" NO_LINE_BREAK="TRUE"
  51. AT_WORD_START="TRUE">
  52. <BEGIN>"</BEGIN>
  53. <END>"</END>
  54. </SPAN>
  55. <KEYWORDS>
  56. <MARKUP>;</MARKUP>
  57. <MARKUP>;;</MARKUP>
  58. <MARKUP>0;</MARKUP>
  59. <KEYWORD1>swap</KEYWORD1>
  60. <KEYWORD1>drop</KEYWORD1>
  61. <KEYWORD1>dup</KEYWORD1>
  62. <KEYWORD1>nip</KEYWORD1>
  63. <KEYWORD1>over</KEYWORD1>
  64. <KEYWORD1>rot</KEYWORD1>
  65. <KEYWORD1>-rot</KEYWORD1>
  66. <KEYWORD1>2dup</KEYWORD1>
  67. <KEYWORD1>2drop</KEYWORD1>
  68. <KEYWORD1>2over</KEYWORD1>
  69. <KEYWORD1>2swap</KEYWORD1>
  70. <KEYWORD1>&gt;r</KEYWORD1>
  71. <KEYWORD1>r&gt;</KEYWORD1>
  72. <KEYWORD2>and</KEYWORD2>
  73. <KEYWORD2>or</KEYWORD2>
  74. <KEYWORD2>xor</KEYWORD2>
  75. <KEYWORD2>&gt;&gt;</KEYWORD2>
  76. <KEYWORD2>&lt;&lt;</KEYWORD2>
  77. <KEYWORD2>not</KEYWORD2>
  78. <KEYWORD2>+</KEYWORD2>
  79. <KEYWORD2>*</KEYWORD2>
  80. <KEYWORD2>negate</KEYWORD2>
  81. <KEYWORD2>-</KEYWORD2>
  82. <KEYWORD2>/</KEYWORD2>
  83. <KEYWORD2>mod</KEYWORD2>
  84. <KEYWORD2>/mod</KEYWORD2>
  85. <KEYWORD2>*/</KEYWORD2>
  86. <KEYWORD2>1+</KEYWORD2>
  87. <KEYWORD2>1-</KEYWORD2>
  88. <KEYWORD2>base</KEYWORD2>
  89. <KEYWORD2>hex</KEYWORD2>
  90. <KEYWORD2>decimal</KEYWORD2>
  91. <KEYWORD2>binary</KEYWORD2>
  92. <KEYWORD2>octal</KEYWORD2>
  93. <KEYWORD3>@</KEYWORD3>
  94. <KEYWORD3>!</KEYWORD3>
  95. <KEYWORD3>c@</KEYWORD3>
  96. <KEYWORD3>c!</KEYWORD3>
  97. <KEYWORD3>+!</KEYWORD3>
  98. <KEYWORD3>cell+</KEYWORD3>
  99. <KEYWORD3>cells</KEYWORD3>
  100. <KEYWORD3>char+</KEYWORD3>
  101. <KEYWORD3>chars</KEYWORD3>
  102. <KEYWORD4>[</KEYWORD4>
  103. <KEYWORD4>]</KEYWORD4>
  104. <KEYWORD4>create</KEYWORD4>
  105. <KEYWORD4>does&gt;</KEYWORD4>
  106. <KEYWORD4>variable</KEYWORD4>
  107. <KEYWORD4>variable,</KEYWORD4>
  108. <KEYWORD4>literal</KEYWORD4>
  109. <KEYWORD4>last</KEYWORD4>
  110. <KEYWORD4>1,</KEYWORD4>
  111. <KEYWORD4>2,</KEYWORD4>
  112. <KEYWORD4>3,</KEYWORD4>
  113. <KEYWORD4>,</KEYWORD4>
  114. <KEYWORD4>here</KEYWORD4>
  115. <KEYWORD4>allot</KEYWORD4>
  116. <KEYWORD4>parse</KEYWORD4>
  117. <KEYWORD4>find</KEYWORD4>
  118. <KEYWORD4>compile</KEYWORD4>
  119. <OPERATOR>if</OPERATOR>
  120. <OPERATOR>=if</OPERATOR>
  121. <OPERATOR>&lt;if</OPERATOR>
  122. <OPERATOR>&gt;if</OPERATOR>
  123. <OPERATOR>&lt;&gt;if</OPERATOR>
  124. <OPERATOR>then</OPERATOR>
  125. <OPERATOR>repeat</OPERATOR>
  126. <OPERATOR>until</OPERATOR>
  127. <OPERATOR>forth</OPERATOR>
  128. <OPERATOR>macro</OPERATOR>
  129. </KEYWORDS>
  130. </RULES>
  131. <RULES SET="STACK_EFFECT" DEFAULT="COMMENT4">
  132. <SEQ TYPE="COMMENT3">--</SEQ>
  133. </RULES>
  134. </MODE>