def get_standard_type_defs(word): tuple_str = Forward() list_str = Forward() dict_str = Forward() cvt_tuple = lambda toks: tuple(toks.asList()) cvt_dict = lambda toks: dict(toks.asList()) list_item = ( none | boolean | real | integer | list_str | tuple_str | dict_str | quotedString.setParseAction(removeQuotes) | word ) list_item2 = list_item | Empty().setParseAction(lambda: [None]) tuple_str.inner = list_of(list_item) tuple_str.inner.setParseAction(cvt_tuple) tuple_str << (lparen + tuple_str.inner + rparen) list_str.inner = tuple_str.inner.copy() list_str.inner.setParseAction(lambda toks: list(toks)) list_str << (lbrack + list_str.inner + rbrack) dict_entry = Group(list_item + colon + list_item2) dict_str.inner = list_of(dict_entry) dict_str.inner.setParseAction(cvt_dict) dict_str << (lbrace + Optional(dict_str.inner) + rbrace) return {"tuple": tuple_str, "list": list_str, "dict": dict_str, "list_item": list_item}
def get_standard_type_defs(word): tuple_str = Forward() list_str = Forward() dict_str = Forward() cvt_tuple = lambda toks: tuple(toks.asList()) cvt_dict = lambda toks: dict(toks.asList()) list_item = (none | boolean | real | integer | list_str | tuple_str | dict_str | quotedString.setParseAction(removeQuotes) | word) list_item2 = list_item | Empty().setParseAction(lambda: [None]) tuple_str.inner = list_of(list_item) tuple_str.inner.setParseAction(cvt_tuple) tuple_str << (lparen + tuple_str.inner + rparen) list_str.inner = tuple_str.inner.copy() list_str.inner.setParseAction(lambda toks: list(toks)) list_str << (lbrack + list_str.inner + rbrack) dict_entry = Group(list_item + colon + list_item2) dict_str.inner = list_of(dict_entry) dict_str.inner.setParseAction(cvt_dict) dict_str << (lbrace + Optional(dict_str.inner) + rbrace) return { 'tuple': tuple_str, 'list': list_str, 'dict': dict_str, 'list_item': list_item }
def get_standard_type_defs(word=word_free): """ Return dict of the pyparsing base lexical elements. The compound types (tuple, list, dict) can contain compound types or simple types such as integers, floats and words. Parameters ---------- word : lexical element A custom lexical element for word. Returns ------- defs : dict The dictionary with the following items: - tuple: (..., ..., ...) - list: [..., ...., ...] - dict: {...:..., ...:..., ....} or {...=..., ...=..., ....} - list_item: any of preceding compound types or simple types """ tuple_str = Forward() list_str = Forward() dict_str = Forward() cvt_tuple = lambda toks: tuple(toks.asList()) cvt_dict = lambda toks: dict(toks.asList()) list_item = (none | boolean | real | integer | list_str | tuple_str | dict_str | quotedString.setParseAction(removeQuotes) | word) list_item2 = list_item | Empty().setParseAction(lambda: [None]) tuple_str.inner = list_of(list_item) tuple_str.inner.setParseAction(cvt_tuple) tuple_str << (lparen + tuple_str.inner + rparen) list_str.inner = tuple_str.inner.copy() list_str.inner.setParseAction(lambda toks: [list(toks)]) list_str << (lbrack + list_str.inner + rbrack) dict_entry = Group(list_item + (colon | equal_sign) + list_item2) dict_str.inner = list_of(dict_entry) dict_str.inner.setParseAction(cvt_dict) dict_str << (lbrace + Optional(dict_str.inner) + rbrace) defs = { 'tuple': tuple_str, 'list': list_str, 'dict': dict_str, 'list_item': list_item } return defs
def get_standard_type_defs(word=word_free): """ Return dict of the pyparsing base lexical elements. The compound types (tuple, list, dict) can contain compound types or simple types such as integers, floats and words. Parameters ---------- word : lexical element A custom lexical element for word. Returns ------- defs : dict The dictionary with the following items: - tuple: (..., ..., ...) - list: [..., ...., ...] - dict: {...:..., ...:..., ....} or {...=..., ...=..., ....} - list_item: any of preceding compound types or simple types """ tuple_str = Forward() list_str = Forward() dict_str = Forward() cvt_tuple = lambda toks : tuple(toks.asList()) cvt_dict = lambda toks: dict(toks.asList()) list_item = (none | boolean | cmplx | real | integer | list_str | tuple_str | dict_str | quotedString.setParseAction(removeQuotes) | word) list_item2 = list_item | Empty().setParseAction(lambda: [None]) tuple_str.inner = list_of(list_item) tuple_str.inner.setParseAction(cvt_tuple) tuple_str << (lparen + tuple_str.inner + rparen) list_str.inner = tuple_str.inner.copy() list_str.inner.setParseAction(lambda toks: [list(toks)]) list_str << (lbrack + list_str.inner + rbrack) dict_entry = Group(list_item + (colon | equal_sign) + list_item2) dict_str.inner = list_of(dict_entry) dict_str.inner.setParseAction(cvt_dict) dict_str << (lbrace + Optional(dict_str.inner) + rbrace) defs = {'tuple' : tuple_str, 'list' : list_str, 'dict' : dict_str, 'list_item' : list_item} return defs