On Sat, Dec 3, 2022 at 1:43 PM Antony Bartlett <[email protected]> wrote:
> > Ah, yes, I'm trying to make it so that I can download, tokenize, parse > and verify in a streaming fashion. That makes my code slightly different > from most other verifiers. > > I had a go at this. You can see my attempt here: > https://github.com/Antony74/mm-streaming-parser > Oh, it would be really neat to make nearley able to parse set.mm! I had to disable mine, because it ran out of memory and it was also taking too long: https://github.com/samuelgoto/metamath/blob/main/tests/parser.js#L717 I wrote a recursive descendant parser which is much faster, but I don't know how to make it streamable: https://github.com/samuelgoto/metamath/blob/main/tests/parser.js#L919 > > I'm getting an error > > set.mm downloaded 0.0MB/40.8MB > C:\mm\mm-streaming-parser\node_modules\nearley\lib\nearley.js:295 > var err = new Error(this.reportLexerError(e)); > ^ > Error: invalid syntax at line 22 col 1: > I haven't looked at your code yet, but did you get a chance to try and run mine? My nearley grammar may give you some help, as well as the testing infrastructure I set up. Here is mine: https://github.com/samuelgoto/metamath/blob/main/src/parser.js#L30 And if you do manage to make this fast, I'd love to reuse it because making nearley streamable is easy! > > 20 > 21 > 22 $( ! > ^ > 23 > > #*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*# > 24 Metamath source file for logic and set theory > Unexpected input (lexer error). Instead, I was expecting to see one of the > following: > > This looks a lot like the following bug report > https://github.com/kach/nearley/issues/575 > > The theory is that > > > nearley is probably able to handle streaming properly. But moo is not. > > Still, I feel like I was close. A streaming parser would solve all of the > issues I was bemoaning here > > https://groups.google.com/g/metamath/c/mFrNOFa7n8c/m/HkYkyJMaBAAJ > > And makes it a concern of the parser rather than something we have to > worry about, which would be lovely! > > Best regards, > > Antony > > On Sat, Dec 3, 2022 at 12:27 AM sgoto <[email protected]> wrote: > >> >> >> On Tue, Nov 29, 2022 at 1:16 PM Antony Bartlett <[email protected]> wrote: >> >>> Yes, very impressive! And yes, I believe the client-side proof explorer >>> does break new ground - I was edging in that direction, but quite slowly. >>> Is the (React) source code for that around anywhere? >>> >> >> The source code is available on my website (I don't obfuscate it) if you >> are curious enough to dig into it, but I can probably make it more >> accessible/reusable/decent if that's something that's desirable. >> >> Here it goes: https://code.sgo.to/static/mm.js >> >> Is that something of interest? >> >> I see you're trying to get it all streaming, presumably so you can parse >>> and display proofs as soon as that part of the file is downloaded without >>> having to wait for the whole thing to arrive (a download progress bar would >>> be great too). >>> >> >> Ah, yes, I'm trying to make it so that I can download, tokenize, parse >> and verify in a streaming fashion. That makes my code slightly different >> from most other verifiers. >> >> I wrote a couple of parsers (a BNF parser and a recursive descendent >> parser): surprisingly, that's taking up most of the time. Need to think a >> bit more how to make my recursive descent parser be able to be a streaming >> one. >> >> >>> All things I was planning to do eventually. >>> >>> Nice to see standard lexer and parsing tools in your verifier too. >>> Would you consider adding a licence to the package.json file? It looks >>> very reusable! >>> >>> >> Ah, yes, will do! I just need to go through a few things but will get >> back to you with an open source license here. Will report back! >> >> Cheers to you all, you guys rock, >> >> Sam >> >> >>> Best regards, >>> >>> Antony >>> >>> On Tue, Nov 29, 2022 at 9:47 AM Samuel Goto <[email protected]> >>> wrote: >>> >>>> Hey all, >>>> >>>> I accidentally ran into metamath and immediately fell in love with >>>> the concept. I started building a parser, a verifier and some >>>> visualizations to help me understand how and why it worked. >>>> >>>> It is not much different from what has already been posted before >>>> (except, maybe, that's all done client-side on the web), but I figure you'd >>>> all appreciate an independent parser, verifier and visualizer out there. >>>> >>>> So, here it goes: >>>> >>>> Source Code >>>> https://github.com/samuelgoto/metamath >>>> >>>> Set.mm's client-side verification (takes ~1 min in my macbook m1) >>>> https://code.sgo.to/2022/11/26/set.mm.html >>>> >>>> 2p2e4 Visualization (takes a while to load, but once it does, you >>>> can navigate easily) >>>> https://code.sgo.to/2022/11/26/2p2e4.html >>>> >>>> Hoffstader's systems: >>>> https://code.sgo.to/2022/04/17/hofstadter-tq.html >>>> https://code.sgo.to/2022/04/13/hofstadter-pq.html >>>> https://code.sgo.to/2022/04/12/hofstadter-miu.html >>>> >>>> If you dig into my blog, you'll likely find why I ran into metamath >>>> and why I find it so interesting: https://code.sgo.to/ >>>> >>>> Good stuff you all, >>>> >>>> Hope this helps, >>>> >>>> Sam >>>> >>>> >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Metamath" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/metamath/23d122fd-021d-4e59-9281-b485d687c047n%40googlegroups.com >>>> <https://groups.google.com/d/msgid/metamath/23d122fd-021d-4e59-9281-b485d687c047n%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Metamath" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/metamath/CAJ48g%2BBkK%2B2p%3D4K4wdwdZXZWx8kOqKMgz%3DHz9FderKFxCmKfpQ%40mail.gmail.com >>> <https://groups.google.com/d/msgid/metamath/CAJ48g%2BBkK%2B2p%3D4K4wdwdZXZWx8kOqKMgz%3DHz9FderKFxCmKfpQ%40mail.gmail.com?utm_medium=email&utm_source=footer> >>> . >>> >> >> >> -- >> f u cn rd ths u cn b a gd prgmr ! >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Metamath" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/metamath/CAO2BRF9MGjWefEO_ghxp_uHAmBrUTiYwxn36AXUE%2BQ415yLqCw%40mail.gmail.com >> <https://groups.google.com/d/msgid/metamath/CAO2BRF9MGjWefEO_ghxp_uHAmBrUTiYwxn36AXUE%2BQ415yLqCw%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . >> > -- > You received this message because you are subscribed to the Google Groups > "Metamath" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/metamath/CAJ48g%2BDWkJ8nS_k92TFcLH3zg%3DHbF6uzG6NCNuH%3D7Q21N%3DMmCg%40mail.gmail.com > <https://groups.google.com/d/msgid/metamath/CAJ48g%2BDWkJ8nS_k92TFcLH3zg%3DHbF6uzG6NCNuH%3D7Q21N%3DMmCg%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > -- f u cn rd ths u cn b a gd prgmr ! -- You received this message because you are subscribed to the Google Groups "Metamath" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/metamath/CAO2BRF9usZct9TvBgGYSkVSOGAqS93Qv%2BqgXCFTEPQJBtrTnrw%40mail.gmail.com.
