I'm imagining as years go by when/if this AI regex code breaks - nobody knows how it works or how to fix it. Am I wrong?

I'm not a programmer and I write shitty code but I can manage to write simple regex to create quick and dirty code. That's a terrible programming choice I know but I never share my code. It's just for me and it works.

    • Speaker [e/em/eir]
      ·
      2 days ago

      Read this for a very light introduction to the concept, then type "parser combinator library <your language of choice>" into a search engine and never maintain a regular expression again!

      • TheDoctor [they/them]
        ·
        2 days ago

        How does this method handle backtracking? It seems like, as written, those functions wouldn’t handle it

        • Speaker [e/em/eir]
          ·
          2 days ago

          Some implementations don't support backtracking at all, but ones that do will have combinators like

          atomic parserA <|> atomic parserB <|> parserC
          -- equivalent to
          choice [parserA, parserB, parserC]
          

          where atomic and choice are parsers that take other parsers as arguments like and and or in the article, though the advice is to avoid backtracking whenever possible since it's quite expensive. The little examples in the post are just a taste to make the idea legible, but not really suited for especially interesting parsers.