Пример #1
0
 def _token_nud_star(self, token):
     left = ast.identity()
     if self._current_token() == 'rbracket':
         right = ast.identity()
     else:
         right = self._parse_projection_rhs(self.BINDING_POWER['star'])
     return ast.value_projection(left, right)
Пример #2
0
 def _token_nud_star(self, token):
     left = ast.identity()
     if self._current_token() == 'rbracket':
         right = ast.identity()
     else:
         right = self._parse_projection_rhs(self.BINDING_POWER['star'])
     return ast.value_projection(left, right)
 def _token_led_dot(self, left):
     if not self._current_token() == 'star':
         right = self._parse_dot_rhs(self.BINDING_POWER['dot'])
         return ast.sub_expression(left, right)
     else:
         # We're creating a projection.
         self._advance()
         right = self._parse_projection_rhs(self.BINDING_POWER['dot'])
         return ast.value_projection(left, right)
 def _token_led_dot(self, left):
     if not self._current_token() == 'star':
         right = self._parse_dot_rhs(self.BINDING_POWER['dot'])
         return ast.sub_expression(left, right)
     else:
         # We're creating a projection.
         self._advance()
         right = self._parse_projection_rhs(
             self.BINDING_POWER['dot'])
         return ast.value_projection(left, right)
Пример #5
0
 def _token_led_dot(self, left):
     if not self._current_token() == 'star':
         right = self._parse_dot_rhs(self.BINDING_POWER['dot'])
         if left['type'] == 'subexpression':
             left['children'].append(right)
             return left
         else:
             return ast.subexpression([left, right])
     else:
         # We're creating a projection.
         self._advance()
         right = self._parse_projection_rhs(self.BINDING_POWER['dot'])
         return ast.value_projection(left, right)
Пример #6
0
 def _token_led_dot(self, left):
     if not self._current_token() == 'star':
         right = self._parse_dot_rhs(self.BINDING_POWER['dot'])
         if left['type'] == 'subexpression':
             left['children'].append(right)
             return left
         else:
             return ast.subexpression([left, right])
     else:
         # We're creating a projection.
         self._advance()
         right = self._parse_projection_rhs(
             self.BINDING_POWER['dot'])
         return ast.value_projection(left, right)