code: def get_keyword(self):
          
          self.skip()
  
          m = syntax.re_keyword.match(self.buf)
          if m == None:
              error.err_add(self.errors, self.pos,
                            'SYNTAX_ERROR', 'illegal keyword: ' + self.buf)
              raise error.Abort
          else:
              self.set_buf(m.end())
              # check the separator
              if (self.buf[0].isspace() or
                  (self.buf[0] == '/' and self.buf[1] in ('/', '*')) or
                  (self.buf[0] in (';','{'))):
                  pass
              else:
                  error.err_add(self.errors, self.pos,
                                'SYNTAX_ERROR', 'expected separator, got: "' +
                                self.buf[:6] + '..."')
                  raise error.Abort
  
              if m.group(2) == None: # no prefix
                  return m.group(3)
              else:
                  return (m.group(2), m.group(3))
docs: ret: identifier | (prefix, identifier)