Interesting! Thanks for sharing. This is related to something that I've been planning to explore for a while now: using iterators themselves and their associated coroutines accessed via `iter.Pull`, to do parsing. That is, instead of gaining access to the underlying coroutine machinery by use of "go:linkname", perhaps we can get a bunch of the same advantages by using the more structured form already provided by the standard library.
I suspect that the feedback from parser to scanner you describe can be implemented by allowing the parser to invoke methods on the iteration values (tokens) returned by the scanner. I wonder if the result might actually be nicer (easier to understand and better structured) than the direct use of coroutines, which personally I find quite hard to "get". rog. On Mon, 18 Nov 2024 at 02:53, Romain Doumenc <romain@trout.software> wrote: > Hi everyone, > > I took some time over the past weeks to experiment with the coroutine > switching capabilities in the runtime – in this case for parsing. > I find this new API extremely useful, and started seeing quite a few > places in the code base I maintain to simplify some complicated, > synchronized, stateful machines. > > The document is at: > https://trout-software.notion.site/Parsing-with-Coroutines-13bf9f8a093980d7a0fcf41b81594677 > > I hope it is useful for others also interested in experimenting > -- > Romain > > -- > You received this message because you are subscribed to the Google Groups > "golang-nuts" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to golang-nuts+unsubscr...@googlegroups.com. > To view this discussion visit > https://groups.google.com/d/msgid/golang-nuts/d095a5d6-679f-4c13-82d3-7acf07cf9996n%40googlegroups.com > <https://groups.google.com/d/msgid/golang-nuts/d095a5d6-679f-4c13-82d3-7acf07cf9996n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/golang-nuts/CAJhgacjwXX6EeRt5%2BzDhy_15wXyvNxHv8CAfLvu0nTz1w2KJPQ%40mail.gmail.com.