From a4fffe38580f3c6db0dd2f5f67471446d1126755 Mon Sep 17 00:00:00 2001 From: LV-426 Date: Tue, 31 Mar 2015 15:32:47 +0300 Subject: p_label_set_container: remove, use p_node.label_set & p_rel.type properties --- src/server/neo4j_cypher_parser.py | 48 ++++++++++++++++++++++----------------- 1 file changed, 27 insertions(+), 21 deletions(-) (limited to 'src/server') diff --git a/src/server/neo4j_cypher_parser.py b/src/server/neo4j_cypher_parser.py index 92c4762a..4a72c80a 100644 --- a/src/server/neo4j_cypher_parser.py +++ b/src/server/neo4j_cypher_parser.py @@ -424,30 +424,12 @@ class e_kv_pair(pt_abs_composite_node): # key value pair def str__tok_sibling_delim(self, sib_a=None, sib_b=None): return ': ' -class p_label_set_container(): - @property - def label_set(self): - sub_exp_set = self.sub_exp_set_by_type(e_label_set) - if 0 == len (sub_exp_set): - return None - assert 1 == len(sub_exp_set) - return sub_exp_set.pop() - def spawn_label_set(self): - """ - spawn label set adjacent to e_ident - """ - id_sub_exp_set = self.sub_exp_set_by_type(e_ident) - assert None == self.label_set, 'label set already present' - assert 1 == len(id_sub_exp_set), 'label set already present' - e_id = id_sub_exp_set.pop() - lbl_set = e_id.spawn_sibling__adjacent(e_label_set) - return lbl_set -class p_node(pt_abs_composite_node, p_label_set_container): # node pattern: '(...)' +class p_node(pt_abs_composite_node): # node pattern: '(...)' """ node pattern """ @@ -467,7 +449,28 @@ class p_node(pt_abs_composite_node, p_label_set_container): # node pattern: '(. @classmethod def rgx(self, g_name): return '\((?P<%s>[^\(\)]*?)\)' % (g_name) -class p_rel(pt_abs_composite_node, p_label_set_container): # rel pattern: '[...]' + @property + def label_set(self): + sub_exp_set = self.sub_exp_set_by_type(e_label_set) + if 0 == len (sub_exp_set): + return None + assert 1 == len(sub_exp_set) + return sub_exp_set.pop() + + def spawn_label_set(self): + """ + spawn label set adjacent to e_ident + """ + + assert not self.label_set, 'label set already present' + assert len(self.sub_exp_set) > 0 + assert e_ident == self.sub_exp_set[0].__class__ + + e_id = self.sub_exp_set[0] + lbl_set = e_id.spawn_sibling__adjacent(e_label_set) + return lbl_set + +class p_rel(pt_abs_composite_node): # rel pattern: '[...]' """ relationship pattern """ @@ -490,7 +493,10 @@ class p_rel(pt_abs_composite_node, p_label_set_container): # rel pattern: '[... return ']-' @property - def type(self): # the single element equivalent of node label sets + def type(self): + """ + The single element equivalent of node label sets + """ val_sub_n_set = self.sub_exp_set_by_type(e_value) assert len(val_sub_n_set) >= 1 -- cgit v1.3.1