def parse_TypeArrow(prim__state, prim__tokens): lcl_0 = parse_TypeApp(prim__state, prim__tokens) _slot_0_check = lcl_0 lcl_0 = _slot_0_check[0] lcl_0 = (lcl_0 is False) if lcl_0: lcl_0 = _slot_0_check else: lcl_0 = _slot_0_check[1] lcl_0 = lcl_0 _slot_0 = lcl_0 lcl_0 = prim__tokens.offset _off_0 = lcl_0 lcl_0 = (len(prim__tokens.array) > (prim__tokens.offset + 0)) if lcl_0: lcl_2 = prim__tokens.array[(prim__tokens.offset + 0)] lcl_2 = lcl_2.idint if (lcl_2 == 3): _py_local_i = prim__tokens.offset _py_local_t = prim__tokens.array[_py_local_i] prim__tokens.offset = (_py_local_i + 1) lcl_2 = _py_local_t _slot_1 = lcl_2 lcl_2 = parse_TypeArrow(prim__state, prim__tokens) _slot_2_check = lcl_2 lcl_2 = _slot_2_check[0] lcl_2 = (lcl_2 is False) if lcl_2: lcl_2 = _slot_2_check else: lcl_3 = _slot_2_check[1] lcl_3 = lcl_3 _slot_2 = lcl_3 lcl_3 = (_slot_1, _slot_2) _slot_local__1 = lcl_3 lcl_3 = (_slot_0, _slot_local__1) lcl_3 = prim__mk__ast('TypeArrow', lcl_3) _slot_local__2 = lcl_3 lcl_3 = (True, _slot_local__2) lcl_2 = lcl_3 lcl_1 = lcl_2 else: lcl_2 = (_slot_0, ) lcl_2 = prim__mk__ast('TypeArrow', lcl_2) _slot_local__1 = lcl_2 lcl_2 = (True, _slot_local__1) lcl_1 = lcl_2 lcl_0 = lcl_1 else: lcl_1 = (_off_0, 'TypeArrow got EOF') lcl_1 = prim__cons(lcl_1, prim__nil) lcl_1 = lcl_1 lcl_1 = (False, lcl_1) lcl_0 = lcl_1 return lcl_0
def parse_LitType(prim__state, prim__tokens): lcl_0 = 2 try: _py_local_tk = prim__tokens.array[prim__tokens.offset] if (_py_local_tk.idint is lcl_0): prim__tokens.offset += 1 else: _py_local_tk = None except IndexError: _py_local_tk = None lcl_0 = _py_local_tk _slot_0 = lcl_0 lcl_0 = (_slot_0 is None) if lcl_0: lcl_0 = prim__tokens.offset lcl_0 = (lcl_0, 'quote * not match') lcl_0 = prim__cons(lcl_0, prim__nil) lcl_0 = lcl_0 lcl_0 = (False, lcl_0) else: lcl_0 = (_slot_0, ) lcl_0 = prim__mk__ast('LitType', lcl_0) _slot_local__1 = lcl_0 lcl_0 = (True, _slot_local__1) return lcl_0
def parse_quote(prim__state, prim__tokens): lcl_0 = 2 try: _py_local_tk = prim__tokens.array[prim__tokens.offset] if (_py_local_tk.idint is lcl_0): prim__tokens.offset += 1 else: _py_local_tk = None except IndexError: _py_local_tk = None lcl_0 = _py_local_tk _slot_0 = lcl_0 lcl_0 = (_slot_0 is None) if lcl_0: lcl_0 = prim__tokens.offset lcl_0 = (lcl_0, 'quote ` not match') lcl_0 = prim__cons(lcl_0, prim__nil) lcl_0 = lcl_0 lcl_0 = (False, lcl_0) else: lcl_0 = parse_args(prim__state, prim__tokens) _slot_1_check = lcl_0 lcl_0 = _slot_1_check[0] lcl_0 = (lcl_0 is False) if lcl_0: lcl_0 = _slot_1_check else: lcl_1 = _slot_1_check[1] lcl_1 = lcl_1 _slot_1 = lcl_1 lcl_1 = 2 try: _py_local_tk = prim__tokens.array[prim__tokens.offset] if (_py_local_tk.idint is lcl_1): prim__tokens.offset += 1 else: _py_local_tk = None except IndexError: _py_local_tk = None lcl_1 = _py_local_tk _slot_2 = lcl_1 lcl_1 = (_slot_2 is None) if lcl_1: lcl_1 = prim__tokens.offset lcl_1 = (lcl_1, 'quote ` not match') lcl_1 = prim__cons(lcl_1, prim__nil) lcl_1 = lcl_1 lcl_1 = (False, lcl_1) else: lcl_1 = (_slot_0, _slot_1, _slot_2) lcl_1 = prim__mk__ast('quote', lcl_1) _slot_local__1 = lcl_1 lcl_1 = (True, _slot_local__1) lcl_0 = lcl_1 return lcl_0
def lr_step_pattern(_slot_0, prim__state, prim__tokens): lcl_0 = parse_ch(prim__state, prim__tokens) _slot_1_check = lcl_0 lcl_0 = _slot_1_check[0] lcl_0 = (lcl_0 is False) if lcl_0: lcl_0 = _slot_1_check else: lcl_0 = _slot_1_check[1] lcl_0 = lcl_0 _slot_1 = lcl_0 lcl_0 = (_slot_0, _slot_1) lcl_0 = prim__mk__ast('pattern', lcl_0) _slot_local__1 = lcl_0 lcl_0 = (True, _slot_local__1) return lcl_0
def lr_step_TypeApp(_slot_0, prim__state, prim__tokens): lcl_0 = parse_LitType(prim__state, prim__tokens) _slot_1_check = lcl_0 lcl_0 = _slot_1_check[0] lcl_0 = (lcl_0 is False) if lcl_0: lcl_0 = _slot_1_check else: lcl_0 = _slot_1_check[1] lcl_0 = lcl_0 _slot_1 = lcl_0 lcl_0 = (_slot_0, _slot_1) lcl_0 = prim__mk__ast('TypeApp', lcl_0) _slot_local__1 = lcl_0 lcl_0 = (True, _slot_local__1) return lcl_0
def parse_Type(prim__state, prim__tokens): lcl_0 = parse_TypeArrow(prim__state, prim__tokens) _slot_0_check = lcl_0 lcl_0 = _slot_0_check[0] lcl_0 = (lcl_0 is False) if lcl_0: lcl_0 = _slot_0_check else: lcl_0 = _slot_0_check[1] lcl_0 = lcl_0 _slot_0 = lcl_0 lcl_0 = (_slot_0, ) lcl_0 = prim__mk__ast('Type', lcl_0) _slot_local__1 = lcl_0 lcl_0 = (True, _slot_local__1) return lcl_0
def parse_args(prim__state, prim__tokens): lcl_0 = parse_strPattern(prim__state, prim__tokens) _slot_0_check = lcl_0 lcl_0 = _slot_0_check[0] lcl_0 = (lcl_0 is False) if lcl_0: lcl_0 = _slot_0_check else: lcl_0 = _slot_0_check[1] lcl_0 = lcl_0 _slot_0 = lcl_0 lcl_0 = (_slot_0, ) lcl_0 = prim__mk__ast('args', lcl_0) _slot_local__1 = lcl_0 lcl_0 = lr_loop_args(_slot_local__1, prim__state, prim__tokens) lcl_0 = (True, lcl_0) return lcl_0
def parse_strPattern(prim__state, prim__tokens): lcl_0 = prim__tokens.offset _off_0 = lcl_0 lcl_0 = (len(prim__tokens.array) > (prim__tokens.offset + 0)) if lcl_0: lcl_2 = prim__tokens.array[(prim__tokens.offset + 0)] lcl_2 = lcl_2.idint if (lcl_2 == 5): _py_local_i = prim__tokens.offset _py_local_t = prim__tokens.array[_py_local_i] prim__tokens.offset = (_py_local_i + 1) lcl_2 = _py_local_t _slot_0 = lcl_2 lcl_2 = (_slot_0, ) lcl_2 = prim__mk__ast('strPattern', lcl_2) _slot_local__1 = lcl_2 lcl_2 = (True, _slot_local__1) lcl_1 = lcl_2 elif (lcl_2 == 2): lcl_2 = parse_quote(prim__state, prim__tokens) _slot_0_check = lcl_2 lcl_2 = _slot_0_check[0] lcl_2 = (lcl_2 is False) if lcl_2: lcl_2 = _slot_0_check else: lcl_2 = _slot_0_check[1] lcl_2 = lcl_2 _slot_0 = lcl_2 lcl_2 = (_slot_0, ) lcl_2 = prim__mk__ast('strPattern', lcl_2) _slot_local__1 = lcl_2 lcl_2 = (True, _slot_local__1) lcl_1 = lcl_2 elif (lcl_2 == 4): lcl_2 = parse_pattern(prim__state, prim__tokens) _slot_0_check = lcl_2 lcl_2 = _slot_0_check[0] lcl_2 = (lcl_2 is False) if lcl_2: lcl_2 = _slot_0_check else: lcl_3 = _slot_0_check[1] lcl_3 = lcl_3 _slot_0 = lcl_3 lcl_3 = (_slot_0, ) lcl_3 = prim__mk__ast('strPattern', lcl_3) _slot_local__1 = lcl_3 lcl_3 = (True, _slot_local__1) lcl_2 = lcl_3 lcl_1 = lcl_2 elif (lcl_2 == 3): lcl_2 = parse_doubleQuotedStr(prim__state, prim__tokens) _slot_0_check = lcl_2 lcl_3 = _slot_0_check[0] lcl_2 = (lcl_3 is False) if lcl_2: lcl_2 = _slot_0_check else: lcl_2 = _slot_0_check[1] lcl_2 = lcl_2 _slot_0 = lcl_2 lcl_2 = (_slot_0, ) lcl_2 = prim__mk__ast('strPattern', lcl_2) _slot_local__1 = lcl_2 lcl_2 = (True, _slot_local__1) lcl_1 = lcl_2 elif (lcl_2 == 6): lcl_2 = parse_pattern(prim__state, prim__tokens) _slot_0_check = lcl_2 lcl_2 = _slot_0_check[0] lcl_2 = (lcl_2 is False) if lcl_2: lcl_2 = _slot_0_check else: lcl_3 = _slot_0_check[1] lcl_3 = lcl_3 _slot_0 = lcl_3 lcl_3 = (_slot_0, ) lcl_3 = prim__mk__ast('strPattern', lcl_3) _slot_local__1 = lcl_3 lcl_3 = (True, _slot_local__1) lcl_2 = lcl_3 lcl_1 = lcl_2 else: lcl_2 = (_off_0, 'strPattern lookahead failed') lcl_3 = prim__cons(lcl_2, prim__nil) lcl_2 = lcl_3 lcl_2 = (False, lcl_2) lcl_1 = lcl_2 lcl_0 = lcl_1 else: lcl_1 = (_off_0, 'strPattern got EOF') lcl_1 = prim__cons(lcl_1, prim__nil) lcl_1 = lcl_1 lcl_1 = (False, lcl_1) lcl_0 = lcl_1 return lcl_0
def parse_doubleQuotedStr(prim__state, prim__tokens): lcl_0 = 3 try: _py_local_tk = prim__tokens.array[prim__tokens.offset] if (_py_local_tk.idint is lcl_0): prim__tokens.offset += 1 else: _py_local_tk = None except IndexError: _py_local_tk = None lcl_0 = _py_local_tk _slot_0 = lcl_0 lcl_0 = (_slot_0 is None) if lcl_0: lcl_0 = prim__tokens.offset lcl_0 = (lcl_0, 'quote " not match') lcl_0 = prim__cons(lcl_0, prim__nil) lcl_0 = lcl_0 lcl_0 = (False, lcl_0) else: lcl_0 = prim__tokens.offset _off_1 = lcl_0 lcl_0 = (len(prim__tokens.array) > (prim__tokens.offset + 0)) if lcl_0: lcl_1 = prim__tokens.array[(prim__tokens.offset + 0)] lcl_1 = lcl_1.idint if (lcl_1 == 5): lcl_1 = parse_args(prim__state, prim__tokens) _slot_1_check = lcl_1 lcl_1 = _slot_1_check[0] lcl_1 = (lcl_1 is False) if lcl_1: lcl_1 = _slot_1_check else: lcl_1 = _slot_1_check[1] lcl_1 = lcl_1 _slot_1 = lcl_1 lcl_1 = 3 try: _py_local_tk = prim__tokens.array[ prim__tokens.offset] if (_py_local_tk.idint is lcl_1): prim__tokens.offset += 1 else: _py_local_tk = None except IndexError: _py_local_tk = None lcl_1 = _py_local_tk _slot_2 = lcl_1 lcl_1 = (_slot_2 is None) if lcl_1: lcl_1 = prim__tokens.offset lcl_1 = (lcl_1, 'quote " not match') lcl_1 = prim__cons(lcl_1, prim__nil) lcl_1 = lcl_1 lcl_1 = (False, lcl_1) else: lcl_1 = (_slot_0, _slot_1, _slot_2) lcl_1 = prim__mk__ast('doubleQuotedStr', lcl_1) _slot_local__1 = lcl_1 lcl_1 = (True, _slot_local__1) lcl_0 = lcl_1 elif (lcl_1 == 2): lcl_1 = parse_args(prim__state, prim__tokens) _slot_1_check = lcl_1 lcl_1 = _slot_1_check[0] lcl_1 = (lcl_1 is False) if lcl_1: lcl_1 = _slot_1_check else: lcl_1 = _slot_1_check[1] lcl_1 = lcl_1 _slot_1 = lcl_1 lcl_1 = 3 try: _py_local_tk = prim__tokens.array[ prim__tokens.offset] if (_py_local_tk.idint is lcl_1): prim__tokens.offset += 1 else: _py_local_tk = None except IndexError: _py_local_tk = None lcl_1 = _py_local_tk _slot_2 = lcl_1 lcl_1 = (_slot_2 is None) if lcl_1: lcl_1 = prim__tokens.offset lcl_1 = (lcl_1, 'quote " not match') lcl_1 = prim__cons(lcl_1, prim__nil) lcl_1 = lcl_1 lcl_1 = (False, lcl_1) else: lcl_1 = (_slot_0, _slot_1, _slot_2) lcl_1 = prim__mk__ast('doubleQuotedStr', lcl_1) _slot_local__1 = lcl_1 lcl_1 = (True, _slot_local__1) lcl_0 = lcl_1 elif (lcl_1 == 4): lcl_1 = parse_args(prim__state, prim__tokens) _slot_1_check = lcl_1 lcl_1 = _slot_1_check[0] lcl_1 = (lcl_1 is False) if lcl_1: lcl_1 = _slot_1_check else: lcl_1 = _slot_1_check[1] lcl_1 = lcl_1 _slot_1 = lcl_1 lcl_1 = 3 try: _py_local_tk = prim__tokens.array[ prim__tokens.offset] if (_py_local_tk.idint is lcl_1): prim__tokens.offset += 1 else: _py_local_tk = None except IndexError: _py_local_tk = None lcl_1 = _py_local_tk _slot_2 = lcl_1 lcl_1 = (_slot_2 is None) if lcl_1: lcl_1 = prim__tokens.offset lcl_1 = (lcl_1, 'quote " not match') lcl_1 = prim__cons(lcl_1, prim__nil) lcl_1 = lcl_1 lcl_1 = (False, lcl_1) else: lcl_1 = (_slot_0, _slot_1, _slot_2) lcl_1 = prim__mk__ast('doubleQuotedStr', lcl_1) _slot_local__1 = lcl_1 lcl_1 = (True, _slot_local__1) lcl_0 = lcl_1 elif (lcl_1 == 3): lcl_1 = prim__tokens.offset _off_2 = lcl_1 lcl_1 = parse_args(prim__state, prim__tokens) _slot_1_check = lcl_1 lcl_1 = _slot_1_check[0] lcl_1 = (lcl_1 is False) if lcl_1: lcl_1 = _slot_1_check else: lcl_2 = _slot_1_check[1] lcl_2 = lcl_2 _slot_1 = lcl_2 lcl_2 = 3 try: _py_local_tk = prim__tokens.array[ prim__tokens.offset] if (_py_local_tk.idint is lcl_2): prim__tokens.offset += 1 else: _py_local_tk = None except IndexError: _py_local_tk = None lcl_2 = _py_local_tk _slot_2 = lcl_2 lcl_2 = (_slot_2 is None) if lcl_2: lcl_2 = prim__tokens.offset lcl_2 = (lcl_2, 'quote " not match') lcl_2 = prim__cons(lcl_2, prim__nil) lcl_2 = lcl_2 lcl_2 = (False, lcl_2) else: lcl_2 = (_slot_0, _slot_1, _slot_2) lcl_2 = prim__mk__ast('doubleQuotedStr', lcl_2) _slot_local__1 = lcl_2 lcl_2 = (True, _slot_local__1) lcl_1 = lcl_2 lcl_0 = lcl_1 elif (lcl_1 == 6): lcl_1 = parse_args(prim__state, prim__tokens) _slot_1_check = lcl_1 lcl_1 = _slot_1_check[0] lcl_1 = (lcl_1 is False) if lcl_1: lcl_1 = _slot_1_check else: lcl_2 = _slot_1_check[1] lcl_2 = lcl_2 _slot_1 = lcl_2 lcl_2 = 3 try: _py_local_tk = prim__tokens.array[ prim__tokens.offset] if (_py_local_tk.idint is lcl_2): prim__tokens.offset += 1 else: _py_local_tk = None except IndexError: _py_local_tk = None lcl_2 = _py_local_tk _slot_2 = lcl_2 lcl_2 = (_slot_2 is None) if lcl_2: lcl_2 = prim__tokens.offset lcl_2 = (lcl_2, 'quote " not match') lcl_2 = prim__cons(lcl_2, prim__nil) lcl_2 = lcl_2 lcl_2 = (False, lcl_2) else: lcl_2 = (_slot_0, _slot_1, _slot_2) lcl_2 = prim__mk__ast('doubleQuotedStr', lcl_2) _slot_local__1 = lcl_2 lcl_2 = (True, _slot_local__1) lcl_1 = lcl_2 lcl_0 = lcl_1 else: lcl_1 = (_off_1, 'doubleQuotedStr lookahead failed') lcl_1 = prim__cons(lcl_1, prim__nil) lcl_1 = lcl_1 lcl_1 = (False, lcl_1) lcl_0 = lcl_1 else: lcl_0 = (_off_1, 'doubleQuotedStr got EOF') lcl_1 = prim__cons(lcl_0, prim__nil) lcl_0 = lcl_1 lcl_0 = (False, lcl_0) return lcl_0
def parse_ch(prim__state, prim__tokens): lcl_0 = prim__tokens.offset _off_0 = lcl_0 lcl_0 = (len(prim__tokens.array) > (prim__tokens.offset + 0)) if lcl_0: lcl_2 = prim__tokens.array[(prim__tokens.offset + 0)] lcl_2 = lcl_2.idint if (lcl_2 == 4): _py_local_i = prim__tokens.offset _py_local_t = prim__tokens.array[_py_local_i] prim__tokens.offset = (_py_local_i + 1) lcl_2 = _py_local_t _slot_0 = lcl_2 lcl_2 = prim__tokens.offset _off_1 = lcl_2 lcl_2 = (len(prim__tokens.array) > (prim__tokens.offset + 0)) if lcl_2: lcl_3 = prim__tokens.array[(prim__tokens.offset + 0)] lcl_3 = lcl_3.idint if (lcl_3 == 4): _py_local_i = prim__tokens.offset _py_local_t = prim__tokens.array[_py_local_i] prim__tokens.offset = (_py_local_i + 1) lcl_3 = _py_local_t _slot_1 = lcl_3 lcl_3 = (_slot_0, _slot_1) lcl_3 = prim__mk__ast('ch', lcl_3) _slot_local__1 = lcl_3 lcl_3 = (True, _slot_local__1) lcl_2 = lcl_3 elif (lcl_3 == 3): _py_local_i = prim__tokens.offset _py_local_t = prim__tokens.array[_py_local_i] prim__tokens.offset = (_py_local_i + 1) lcl_3 = _py_local_t _slot_1 = lcl_3 lcl_3 = (_slot_0, _slot_1) lcl_3 = prim__mk__ast('ch', lcl_3) _slot_local__1 = lcl_3 lcl_3 = (True, _slot_local__1) lcl_2 = lcl_3 else: lcl_3 = (_off_1, 'ch lookahead failed') lcl_3 = prim__cons(lcl_3, prim__nil) lcl_3 = lcl_3 lcl_3 = (False, lcl_3) lcl_2 = lcl_3 else: lcl_2 = (_off_1, 'ch got EOF') lcl_2 = prim__cons(lcl_2, prim__nil) lcl_2 = lcl_2 lcl_2 = (False, lcl_2) lcl_1 = lcl_2 elif (lcl_2 == 6): _py_local_i = prim__tokens.offset _py_local_t = prim__tokens.array[_py_local_i] prim__tokens.offset = (_py_local_i + 1) lcl_2 = _py_local_t _slot_0 = lcl_2 lcl_2 = (_slot_0, ) lcl_2 = prim__mk__ast('ch', lcl_2) _slot_local__1 = lcl_2 lcl_2 = (True, _slot_local__1) lcl_1 = lcl_2 else: lcl_2 = (_off_0, 'ch lookahead failed') lcl_2 = prim__cons(lcl_2, prim__nil) lcl_2 = lcl_2 lcl_2 = (False, lcl_2) lcl_1 = lcl_2 lcl_0 = lcl_1 else: lcl_1 = (_off_0, 'ch got EOF') lcl_2 = prim__cons(lcl_1, prim__nil) lcl_1 = lcl_2 lcl_1 = (False, lcl_1) lcl_0 = lcl_1 return lcl_0