parent
143fe24447
commit
0a6fd6837c
|
@ -7,6 +7,13 @@ from mode.python import StringGrammar2
|
||||||
from mode.pipe import Pipe
|
from mode.pipe import Pipe
|
||||||
from method.shell import Interact
|
from method.shell import Interact
|
||||||
|
|
||||||
|
class CodeGrammar(Grammar):
|
||||||
|
rules = [
|
||||||
|
PatternRule('word', r'[^ ]+'),
|
||||||
|
PatternRule('spaces', r' +'),
|
||||||
|
PatternRule('eol', r' +'),
|
||||||
|
]
|
||||||
|
|
||||||
class DataGrammar(Grammar): rules = [PatternRule('data', r'[^)]+')]
|
class DataGrammar(Grammar): rules = [PatternRule('data', r'[^)]+')]
|
||||||
class LineGrammar(Grammar): rules = [PatternRule('data', r'.+')]
|
class LineGrammar(Grammar): rules = [PatternRule('data', r'.+')]
|
||||||
class StringGrammar3(Grammar): rules = [PatternRule('data', r'[^)]+')]
|
class StringGrammar3(Grammar): rules = [PatternRule('data', r'[^)]+')]
|
||||||
|
@ -40,6 +47,7 @@ class ForthGrammar(Grammar):
|
||||||
NocasePatternRule('builtin', r'(?:constant|2constant|fconstant|variable|2variable|fvariable|create|user|to|defer|is|does>|immediate|compile-only|compile|restrict|interpret|postpone|execute|literal|create-interpret/compile|interpretation>|<interpretation|compilation>|<compilation|\]|lastxt|comp\'|postpone|find-name|name>int|name\?int|name>comp|name>string|state|c;|cvariable|,|2,|f,|c,|\[(?:ifdef|ifundef|then|endif|then|else|\?do|do|loop|\+loop|next|begin|until|again|while|repeat|comp\'|\'|compile)\])(?= |\n|$)'),
|
NocasePatternRule('builtin', r'(?:constant|2constant|fconstant|variable|2variable|fvariable|create|user|to|defer|is|does>|immediate|compile-only|compile|restrict|interpret|postpone|execute|literal|create-interpret/compile|interpretation>|<interpretation|compilation>|<compilation|\]|lastxt|comp\'|postpone|find-name|name>int|name\?int|name>comp|name>string|state|c;|cvariable|,|2,|f,|c,|\[(?:ifdef|ifundef|then|endif|then|else|\?do|do|loop|\+loop|next|begin|until|again|while|repeat|comp\'|\'|compile)\])(?= |\n|$)'),
|
||||||
|
|
||||||
# assembly (*)
|
# assembly (*)
|
||||||
|
NocaseRegionRule('code', 'code', CodeGrammar, 'end-code'),
|
||||||
NocasePatternRule('builtin', r'(?:assembler|code|end-code|;code|flush-icache|c,)(?= |\n|$)'),
|
NocasePatternRule('builtin', r'(?:assembler|code|end-code|;code|flush-icache|c,)(?= |\n|$)'),
|
||||||
|
|
||||||
# xyz
|
# xyz
|
||||||
|
@ -50,7 +58,7 @@ class ForthGrammar(Grammar):
|
||||||
NocasePatternRule('number', r'[&#]?-?[0-9]+\.?(?= |$)'),
|
NocasePatternRule('number', r'[&#]?-?[0-9]+\.?(?= |$)'),
|
||||||
NocasePatternRule('number', r"(?:0x|\$)[0-9a-f]+\.?(?= |$)"),
|
NocasePatternRule('number', r"(?:0x|\$)[0-9a-f]+\.?(?= |$)"),
|
||||||
NocasePatternRule('number', r'[+-]?[0-9]+\.?e?[+-][0-9]+(?= |$)'),
|
NocasePatternRule('number', r'[+-]?[0-9]+\.?e?[+-][0-9]+(?= |$)'),
|
||||||
PatternRule('forth_word', r'[^ ]+'),
|
PatternRule('forth.word', r'[^ ]+'),
|
||||||
PatternRule('spaces', r' +'),
|
PatternRule('spaces', r' +'),
|
||||||
PatternRule('eol', r'\n'),
|
PatternRule('eol', r'\n'),
|
||||||
]
|
]
|
||||||
|
@ -115,7 +123,8 @@ class Forth(Fundamental):
|
||||||
actions = [GforthStart, GforthLoadFile]
|
actions = [GforthStart, GforthLoadFile]
|
||||||
tabbercls = ForthTabber
|
tabbercls = ForthTabber
|
||||||
colors = {
|
colors = {
|
||||||
'forth_word': ('yellow', 'default', 'bold'),
|
'forth.word': ('yellow', 'default', 'bold'),
|
||||||
|
'forth.code': ('green', 'default', 'bold'),
|
||||||
}
|
}
|
||||||
|
|
||||||
def install(*args):
|
def install(*args):
|
||||||
|
|
Loading…
Reference in New Issue