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.

Reply via email to