parentheses parser preparation

This commit is contained in:
David Halter
2012-03-03 01:47:32 +01:00
parent 626e6ad83e
commit 08acc2a2f0
3 changed files with 15 additions and 5 deletions

View File

@@ -227,7 +227,7 @@ print 'global names:'
names = cmpl.parser.top.get_names() names = cmpl.parser.top.get_names()
print [n.names for n in names] print [n.names for n in names]
print 'global names:' print 'func names:'
names = cmpl.parser.top.subscopes[0].get_names() names = cmpl.parser.top.subscopes[0].get_names()
print [n.names for n in names] print [n.names for n in names]

View File

@@ -531,10 +531,17 @@ class PyFuzzyParser(object):
name = '' name = ''
names = [] names = []
level = 1 level = 1
while True: while True:
self._parse_statement()
while True:
break
token_type, tok, indent = self.next() token_type, tok, indent = self.next()
if tok in (')', ',') and level == 1: if tok in (')', ',') and level == 1:
if '=' not in name: if '=' in name:
pass
else:
name = name.replace(' ', '') name = name.replace(' ', '')
names.append(name.strip()) names.append(name.strip())
name = '' name = ''
@@ -641,7 +648,7 @@ class PyFuzzyParser(object):
assign += tok assign += tok
return "%s" % assign return "%s" % assign
def _parse_statement(self, pre_used_token=None): def _parse_statement(self, pre_used_token=None, add_break=None):
""" """
Parses statements like: Parses statements like:
@@ -665,7 +672,10 @@ class PyFuzzyParser(object):
else: else:
token_type, tok, indent = self.next() token_type, tok, indent = self.next()
is_break_token = lambda tok: tok in ['\n', ':', ';'] breaks = ['\n', ':', ';']
if add_break:
breaks += add_break
is_break_token = lambda tok: tok in breaks
while not is_break_token(tok): while not is_break_token(tok):
set_string = '' set_string = ''

View File

@@ -38,7 +38,7 @@ class A():
def test(self): def test(self):
return A() return A()
class init: class init:
def __init__(self, a): def __init__(self, a, b=3, c = A()):
self.a = a self.a = a
a = A() a = A()