parent
0d085f4b4d
commit
dd784fb483
|
@ -1,16 +1,13 @@
|
||||||
import code, string, StringIO, sys, traceback
|
import color, mode2
|
||||||
import color, completer, method, mode2
|
|
||||||
from lex2 import Grammar, PatternRule
|
from lex2 import Grammar, PatternRule
|
||||||
from point2 import Point
|
|
||||||
|
|
||||||
class ConsoleGrammar(Grammar):
|
class ConsoleGrammar(Grammar):
|
||||||
rules = [
|
rules = [
|
||||||
PatternRule(name=r'mesg', pattern=r'^[A-Za-z].*$'),
|
PatternRule(name=r'mesg', pattern=r'^[A-Za-z].*$'),
|
||||||
PatternRule(name=r'input', pattern=r'^>>>.*$'),
|
PatternRule(name=r'input', pattern=r'^>>>.*$'),
|
||||||
PatternRule(name=r'input2', pattern=r'^-->.*$'),
|
PatternRule(name=r'input', pattern=r'^-->.*$'),
|
||||||
PatternRule(name=r'output', pattern=r'^ .*$'),
|
PatternRule(name=r'output', pattern=r'^ .*$'),
|
||||||
]
|
]
|
||||||
|
|
||||||
class Console(mode2.Fundamental):
|
class Console(mode2.Fundamental):
|
||||||
grammar = ConsoleGrammar()
|
grammar = ConsoleGrammar()
|
||||||
def __init__(self, w):
|
def __init__(self, w):
|
||||||
|
@ -18,7 +15,6 @@ class Console(mode2.Fundamental):
|
||||||
self.colors = {
|
self.colors = {
|
||||||
'mesg': color.build('blue', 'default'),
|
'mesg': color.build('blue', 'default'),
|
||||||
'input': color.build('cyan', 'default'),
|
'input': color.build('cyan', 'default'),
|
||||||
'input2': color.build('cyan', 'default'),
|
|
||||||
'output': color.build('default', 'default'),
|
'output': color.build('default', 'default'),
|
||||||
}
|
}
|
||||||
def name(self):
|
def name(self):
|
||||||
|
|
51
tab_sql.py
51
tab_sql.py
|
@ -1,51 +0,0 @@
|
||||||
import tab
|
|
||||||
|
|
||||||
class SQLTabber(tab.TokenStackTabber):
|
|
||||||
close_tags = {')': '('}
|
|
||||||
|
|
||||||
def error(self, s):
|
|
||||||
self.mode.window.application.set_error(s)
|
|
||||||
self.errors = True
|
|
||||||
|
|
||||||
def base_indentation_level(self, y):
|
|
||||||
return y == 0
|
|
||||||
|
|
||||||
def stack_append_const(self, c):
|
|
||||||
if self.tab_stack[-1][0] != c:
|
|
||||||
self.stack_append((c, self.tab_stack[-1][1] + 4))
|
|
||||||
def stack_pop_const(self, c):
|
|
||||||
if self.tab_stack[-1][0] in c_args:
|
|
||||||
self.stack_pop()
|
|
||||||
def stack_pop_all_const(self, *c_args):
|
|
||||||
while self.tab_stack[-1][0] in c_args:
|
|
||||||
self.stack_pop()
|
|
||||||
|
|
||||||
def handle_token(self, prev_token, token, next_token, y=None):
|
|
||||||
buffer = self.mode.window.buffer
|
|
||||||
name = token.name
|
|
||||||
s = token.string
|
|
||||||
|
|
||||||
if name == 'delimiter':
|
|
||||||
if s == '(':
|
|
||||||
if next_token is None:
|
|
||||||
self.stack_append((s, self.tab_stack[-1][1] + 4))
|
|
||||||
else:
|
|
||||||
p = buffer.get_offset_point(next_token.start)
|
|
||||||
self.stack_append((s, p.x))
|
|
||||||
elif s == ')':
|
|
||||||
if self.tab_stack[-1][0] == self.close_tags[s]:
|
|
||||||
self.stack_pop()
|
|
||||||
if prev_token is None:
|
|
||||||
self.line_depth = self.tab_stack[-1][1]
|
|
||||||
elif self.errors is False:
|
|
||||||
self.error("tag mismatch, line %d: expected %r, got %r" %
|
|
||||||
(self.y, self.tab_stack[-1][0], s))
|
|
||||||
elif s == ',':
|
|
||||||
pass
|
|
||||||
elif s == ';':
|
|
||||||
pass
|
|
||||||
elif name == 'string':
|
|
||||||
if token.start > self.start_offset:
|
|
||||||
self.stack_append(('string', -1))
|
|
||||||
if token.end <= self.end_offset:
|
|
||||||
self.stack_pop_all_const("string")
|
|
Loading…
Reference in New Issue