tomjack has quit [Quit: Connection closed for inactivity]
nicoo has quit [Remote host closed the connection]
nicoo has joined #ocaml
ewd has joined #ocaml
_whitelogger has joined #ocaml
bartholin has quit [Ping timeout: 260 seconds]
arecaceae has quit [Remote host closed the connection]
arecaceae has joined #ocaml
bartholin has joined #ocaml
mfp has joined #ocaml
ewd has quit [Ping timeout: 264 seconds]
oriba has joined #ocaml
bartholin has quit [Ping timeout: 245 seconds]
bartholin has joined #ocaml
tane has joined #ocaml
bartholin has quit [Ping timeout: 256 seconds]
bartholin has joined #ocaml
spiegelau has joined #ocaml
ewd has joined #ocaml
ewd has quit [Ping timeout: 256 seconds]
zebrag has joined #ocaml
henistein has joined #ocaml
<henistein>
I need an algorithm to parse the parenthesis, after I google I find shunting yard algorithm, since I want to make boolean machine is this too exaggerated? My machine boolean must do things like this > Input: ((v & f) & f) ; Output: f
zebrag has quit [Read error: Connection reset by peer]
zebrag has joined #ocaml
bartholin has quit [Ping timeout: 260 seconds]
spiegelau has quit [Quit: leaving]
<qwr>
imho simplest is to just do rec-descent parsing
<qwr>
shunting yard should be a way to do precedence parsing, which isn't really needed for parenthesis
<henistein>
rec descent parsing seems good
<qwr>
for more complicated grammers menhir parser is also good, if you don't have very special requirements, but it takes a bit time to get used to
<qwr>
and then there is pratt parsing, a combination of priority parsing and recursive descent, that essentially is really simple, but took quite some time to initially understand for me (or maybe I'm just boneheaded :))
xandkar1 has joined #ocaml
<companion_cube>
is it simpler than recursive descent?
zebrag has quit [Quit: Konversation terminated!]
zebrag has joined #ocaml
mxns has joined #ocaml
mxns has quit [Client Quit]
olle has joined #ocaml
<hannes>
jonludlam: yes indeed.
arecaceae has quit [Remote host closed the connection]
arecaceae has joined #ocaml
mxns has joined #ocaml
henistein has quit [Quit: Connection closed]
<qwr>
companion_cube: if the grammar contains more than few rules resembling operators, then yes
<companion_cube>
you mean infix stuff?
<qwr>
companion_cube: mostly infix yes, but i think there are also other cases where you can use priority based decisions
zebrag has quit [Quit: Konversation terminated!]
zebrag has joined #ocaml
waleee-cl has joined #ocaml
<companion_cube>
I'd be curious to read more about that
<qwr>
its basically precedence parser, where right-side parsing is handed over to callback associated with symbol
<companion_cube>
having code directly in the tokens might be the simplifying thing
mxns has quit [Ping timeout: 258 seconds]
xenu has joined #ocaml
xenu has quit [Client Quit]
xenu has joined #ocaml
mxns has joined #ocaml
<qwr>
hm what code, Sym of string? the Code token is syntax peculiarity that isn't even recognized by tokenizer there
<qwr>
or mean that ahead_op resolves the symbol with callbacks from tokens?
mxns has quit [Ping timeout: 246 seconds]
<companion_cube>
yeah the callbacks in the symbols
<companion_cube>
with infix, etc.
<companion_cube>
if you know of good ways of making extensible parsers, I'm also interested
<companion_cube>
(the requirement is to be able to add new infix/postfix/misfix operators)
<companion_cube>
(without recompiling)
mxns has joined #ocaml
zebrag has quit [Quit: Konversation terminated!]
zebrag has joined #ocaml
xenu has quit [Quit: leaving]
xenu has joined #ocaml
mxns has quit [Ping timeout: 240 seconds]
mxns has joined #ocaml
<d_bot_>
<EduardoRFS> is it possible to use @@unboxed with FCM? I'm doing some higher kinded types stuff that requires FCM, but I have a single value per module type signature
mxns has quit [Ping timeout: 240 seconds]
mxns has joined #ocaml
mxns has quit [Ping timeout: 272 seconds]
mxns has joined #ocaml
TheLemonMan has quit [Quit: "It's now safe to turn off your computer."]
mxns has quit [Ping timeout: 260 seconds]
mxns has joined #ocaml
mxns has quit [Client Quit]
mxns has joined #ocaml
<d_bot_>
<Drup> Eh, that's an interesting question. As far as I know, no, it's not possible
<d_bot_>
<Drup> The better question is if it's even sound .... I think it is, but it'sprobably not immediate
mxns has quit [Ping timeout: 240 seconds]
mxns has joined #ocaml
<d_bot_>
<EduardoRFS> I think it is sound, we just need to remember to unbox on call if the module is not inlined
<qwr>
companion_cube: the pratt parser is extensible, one reason why i got interested in it (another way is to embed precedence based parser into recdesc parser, or apply variation of its algorithm to ast from parser that parses all operators in to simple sequence. or you could use the ocaml trick of predefined operator classes depending on first character...
mxns has quit [Ping timeout: 272 seconds]
mxns has joined #ocaml
mxns has quit [Ping timeout: 264 seconds]
henistein has joined #ocaml
ewd has quit [Ping timeout: 264 seconds]
mxns has joined #ocaml
mxns has quit [Ping timeout: 245 seconds]
mxns has joined #ocaml
mxns has quit [Ping timeout: 260 seconds]
mxns has joined #ocaml
mxns has quit [Ping timeout: 258 seconds]
mxns has joined #ocaml
xandkar has quit [Remote host closed the connection]
xandkar1 is now known as xandkar
<companion_cube>
Yeah I use that for extensibility too
<companion_cube>
I'm not sure how I'd handle custom misfix stuff though