Backtracking algorithms work well for many situations, but we have consciously eschewed them in the design of C#. (With a few exceptions). For example, there is no backtracking that ever crosses “phases” of c
in the length of the input string. It was also written with production concerns in mind: the parser, the compiler and the execution engines limit their memory usage by working within a configurable budget – failing gracefully when exhausted – and they avoid stack overflow by eschewing recursion...
Note that this design decision immediately introduces a point of possible confusion; last time we said that nodes in a graph were also represented as integers. If I were particularly concerned about that, I might devise two structs that each wrap an integer, say, GraphNode and GraphColour. Th...
Sub-match captures are not supported in this Thompson VM by design. You should use thePike VMinstead if you want that. Back to TOC Just-In-Time Support for Thompson VM The Thompson VM comes with a Just-In-Time compiler. Currently only the x86_64 architecture is supported. Support for ot...
An unfortunate fact about writing a language where the compiler by design complains loudly if the best match is something that doesn't work, is that developers frequently say "well, sure, in general I want the compiler to point out all my mistakes -- or, rather, all my coworker's mistak...
Sub-match captures are not supported in this Thompson VM by design. You should use thePike VMinstead if you want that. Back to TOC Just-In-Time Support for Thompson VM The Thompson VM comes with a Just-In-Time compiler. Currently only the x86_64 architecture is supported. Support for ot...
in the length of the input string. It was also written with production concerns in mind: the parser, the compiler and the execution engines limit their memory usage by working within a configurable budget – failing gracefully when exhausted – and they avoid stack overflow by eschewing recursion...