code: def action(a)
        if(a==1)
          @output.write @theA
        end
        if(a==1 || a==2)
          @theA = @theB
          if (@theA == "\'" || @theA == "\"")
            while (true)
              @output.write @theA
              @theA = get
              break if (@theA == @theB)
  
              # raise "Unterminated string literal"
              debugger if (@theA <= "\n")
              if (@theA == "\\")
                # allow multi-line strings if each line is terminated by \\n (or \\r\n)
                if ["\r", "\n"].include? peek
                  get # throw away the line ending
                  get if ["\r", "\n"].include? peek
                else
                  @output.write @theA
                end
                @theA = get
              end
            end
          end
        end
        if(a==1 || a==2 || a==3)
          @theB = mynext
          if (@theB == "/" && (@theA == "(" || @theA == "," || @theA == "=" ||
                               @theA == ":" || @theA == "[" || @theA == "!" ||
                               @theA == "&" || @theA == "|" || @theA == "?" ||
                               @theA == "{" || @theA == "}" || @theA == ";" ||
                               @theA == "\n"))
  
            @output.write(@theA) unless peek(2) == '@'
            @output.write @theB
            while (true)
              @theA = get
              if (@theA == "/")
                break
              elsif (@theA == "\\")
                @output.write @theA
                @theA = get
              elsif (@theA <= "\n")
                raise "Unterminated RegExp Literal"
              end
              @output.write @theA
            end
            @theB = mynext
          end
        end
      end
docs: action -- 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 =.