'do something! What you do is determined by the argument:
1   Output A. Copy B to A. Get the next B.
2   Copy B to A. Get the next B. (Delete A).
3   Get the next B. (Delete B).
action treats a string as a single character. Wow!
action recognizes a regular expression if it is preceded by ( or , or =.'

def _action(self, action):

    if (action <= 1):
        self._outA()
    if (action <= 2):
        self.theA = self.theB
        if ((self.theA == "'") or (self.theA == '"')):
            while 1:
                self._outA()
                self.theA = self._get()
                if (self.theA == self.theB):
                    break
                if (self.theA <= '\n'):
                    raise UnterminatedStringLiteral()
                if (self.theA == '\\'):
                    self._outA()
                    self.theA = self._get()
    if (action <= 3):
        self.theB = self._next()
        if ((self.theB == '/') and ((self.theA == '(') or (self.theA == ',') or (self.theA == '=') or (self.theA == ':') or (self.theA == '[') or (self.theA == '?') or (self.theA == '!') or (self.theA == '&') or (self.theA == '|') or (self.theA == ';') or (self.theA == '{') or (self.theA == '}') or (self.theA == '\n'))):
            self._outA()
            self._outB()
            while 1:
                self.theA = self._get()
                if (self.theA == '/'):
                    break
                elif (self.theA == '\\'):
                    self._outA()
                    self.theA = self._get()
                elif (self.theA <= '\n'):
                    raise UnterminatedRegularExpression()
                self._outA()
            self.theB = self._next()
