Esempio n. 1
0
    def _compile_error_catcher(self, node):
        if node.etype == 'missing':
            self._compile_missing_catcher_header(node)
        elif node.etype == 'failed':
            self._compile_failed_catcher_header(node)
        elif node.etype == 'generated':
            self._compile_generated_catcher_header(node)

        self._write("def _error_{}_(self, e):".format(self.errors))
        self._indent()
        if node.etype == 'generated':
            self._write(
                "return RaisedError('{}'.replace('%!', e.e_trigger), e.pos, e.ctx)"
                .format(
                    replaces(escape_quotes(node.msg), '{', '<LCB>', '}',
                             '<RCB>')))

        else:
            self._write("return RaisedError('{}', e.pos, e.ctx)".format(
                replaces(escape_quotes(node.msg), '{', '<LCB>', '}', '<RCB>')))

        self._dedent()

        self._skip_line(1)
        self.errors += 1
Esempio n. 2
0
    def _compile_warning_catcher(self, node):
        self._write("@warning('{}', {})".format(node.ctx_rule, node.nb))
        self._write("def _warning_{}_(self, w):".format(self.warnings))
        self._indent()
        self._write(
            "return 'Warning : At <LCB><RCB> : {}'.format(w.pos)".format(
                replaces(escape_quotes(node.msg), '{', '<LCB>', '}', '<RCB>')))
        self._dedent()

        self._skip_line(1)
        self.warnings += 1
Esempio n. 3
0
 def _next(self, expected=None, failmsg="Expected {expected}, got {got}."):
     failmsg = "Line {line} : '{gotvalue}' : " + failmsg
     if len(self.tokenlist) > self.i + 1:
         pcur = self.tokenlist[self.i + 1]
         if not expected or pcur.name == expected:
             return pcur
         else:
             raise KombuError(
                 replaces(failmsg, '{line}', self._pos(), '{gotvalue}',
                          self.tokenlist[self.i].value, '{expected}',
                          expected, '{gottype}', pcur.name))
     else:
         if expected:
             raise KombuError("{} : Expected {}, got end of file.".format(
                 self._pos(formatted=True), expected))
Esempio n. 4
0
 def __repr__(self):
     return '< ' + self._gettokentype() + ' ' + replaces(
         str(self._getattrs()), '[', '', ']', '') + ' >'
Esempio n. 5
0
 def _compile_failed_catcher_header(self, node):
     self._write("@error('failed', '{}', '{}')".format(
         node.ctx_rule,
         replaces(node.arg(0).value, '{', '<LCB>', '}', '<RCB>')))
Esempio n. 6
0
 def _compile_generated_catcher_header(self, node):
     self._write("@error('generated', '{}', {})".format(
         node.ctx_rule, replaces(node.arg(0).value)))