havenwood has quit [Remote host closed the connection]
Grimless has quit [Ping timeout: 264 seconds]
goyox86 has joined #rubinius
goyox86 has quit [Ping timeout: 264 seconds]
havenwood has joined #rubinius
josh-k has joined #rubinius
josh-k has quit [Ping timeout: 258 seconds]
diegoviola has quit [Quit: WeeChat 1.0.1]
josh-k has joined #rubinius
diegoviola has joined #rubinius
Grimless has joined #rubinius
Grimless has quit [Ping timeout: 250 seconds]
carlosgaldino has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
Grimless has joined #rubinius
Grimless has quit [Remote host closed the connection]
Grimless has joined #rubinius
slaught has joined #rubinius
josh-k has quit [Remote host closed the connection]
Grimless has quit [Ping timeout: 240 seconds]
Grimless has joined #rubinius
Grimless has quit [Remote host closed the connection]
Grimless has joined #rubinius
diegoviola has quit [Quit: WeeChat 1.0.1]
Grimless has quit [Ping timeout: 256 seconds]
diegoviola has joined #rubinius
meh` has quit [Ping timeout: 250 seconds]
diegoviola has quit [Remote host closed the connection]
josh-k has joined #rubinius
josh-k has quit [Ping timeout: 272 seconds]
havenwood has quit [Remote host closed the connection]
|jemc| has quit [Ping timeout: 258 seconds]
dzhulk has joined #rubinius
josh-k has joined #rubinius
josh-k has quit [Remote host closed the connection]
<yorickpeterse>
bennyklotz: saw it a while ago, looks interesting but isn't very mature yet
<yorickpeterse>
it's however a shame it seems to have the same stupid require system Ruby has
max96at|off is now known as max96at
asterite has joined #rubinius
<asterite>
yorickpeterse: what do you suggest as an alternative to "require"?
asterite has quit [Quit: Leaving.]
dzhulk has quit [Quit: Leaving.]
dzhulk has joined #rubinius
sferik has joined #rubinius
havenwood has joined #rubinius
dzhulk has quit [Quit: Leaving.]
dzhulk has joined #rubinius
carlosgaldino has joined #rubinius
postmodern has quit [Quit: Leaving]
dzhulk has quit [Quit: Leaving.]
elia has joined #rubinius
havenwood has quit [Remote host closed the connection]
havenwood has joined #rubinius
goyox86 has joined #rubinius
elia has quit [Quit: Computer has gone to sleep.]
josh-k has joined #rubinius
josh-k has quit [Ping timeout: 265 seconds]
elia has joined #rubinius
carlosgaldino has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
josh-k has joined #rubinius
atamb0 has quit [Quit: yarr]
elia has quit [Quit: Computer has gone to sleep.]
atambo has joined #rubinius
elia has joined #rubinius
diegoviola has joined #rubinius
elia has quit [Quit: Computer has gone to sleep.]
elia has joined #rubinius
elia has quit [Quit: Computer has gone to sleep.]
sferik has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
|jemc| has joined #rubinius
sferik has joined #rubinius
sferik has quit [Client Quit]
meh` has joined #rubinius
josh-k_ has joined #rubinius
josh-k__ has joined #rubinius
josh-k has quit [Ping timeout: 272 seconds]
josh-k_ has quit [Ping timeout: 264 seconds]
<yorickpeterse>
ugh, finding a decent, simple example on LL(1) parsers is a PITA
<yorickpeterse>
One that explains why it does what it does
havenwood has quit [Remote host closed the connection]
<yxhuvud>
see, dragon book.
<yxhuvud>
granted, to be honest I didn't really understand it all that well until I implemented a parser by myself. (or well, it is not useful yet).
|jemc| has quit [Quit: WeeChat 1.0.1]
|jemc| has joined #rubinius
johnmuhl has joined #rubinius
havenwood has joined #rubinius
<yorickpeterse>
"dragon book" heh
<yorickpeterse>
yeah lets suggest reading a massive book that's almost 20 years old
<yorickpeterse>
That's like telling somebody to read K&R C to understand a while loop
josh-k has joined #rubinius
josh-k__ has quit [Ping timeout: 272 seconds]
max96at is now known as max96at|off
<chrisseaton>
Almost 30 years - but it's been around that long because it's good and some of the tech hasn't changed much
<yorickpeterse>
The wikipedia page on LL parser is ok-ish, but the code samples don't explain anything about why the transition tables are constructed as they are, etc
<yorickpeterse>
"Here's a state transition table. It's really easy!"
<yorickpeterse>
This is probabl my biggest problem so far: all these resources, be it about parsers, compilers or w/e, assume you have an IQ of 250 and 10 years of academic experience
<johnmuhl>
yorickpeterse: What about http://computationbook.com/? One of the projects is a LL parser and the examples are written in Ruby.
<yxhuvud>
they don't have simple code examples because hardly anyone actually write the implementations for them
<yorickpeterse>
the python example is sort of ok-ish, but I can't figure out how they constructed the table in the first place
* yxhuvud
digs up his dragon book
<yorickpeterse>
maybe I should head over to the university next to my office and strangle a few professors to get some knowledge out of them
<yxhuvud>
The idea behind the parsing state machines is not to hard, really. But somewhat obtuse to explain
<yxhuvud>
oh wait, LL? that is actually simple. build a table where the rows denote the nonterminals and the columns the input symbols, and then you put the corresponding production rule where the first token match the symbol
<yxhuvud>
less simple is handling ambiguity and left recursion
pwh has joined #rubinius
<yorickpeterse>
well left recursion isn't even possible in LL
<yorickpeterse>
you have to factor it out
postmodern has joined #rubinius
elia has quit [Quit: Computer has gone to sleep.]
<chrisseaton>
yorickpeterse: what are you trying to do again? can you not just hand-write a recursive decent parser if it's a one-off thing?
<yorickpeterse>
chrisseaton: I'm trying to understand how LL(1) parsers work, and how to implement them
<yorickpeterse>
this knowledge will then be used to, if possible, replace my Racc LALR(1) parsers with pure Ruby LL(1) parsers
<yorickpeterse>
assuming they are actually faster
<yorickpeterse>
s/implement them/write them by hand
<yorickpeterse>
(I'll be generating them based on some BNF-like grammar once I got the above figured out)
elia has joined #rubinius
elia has quit [Client Quit]
goyox86 has quit [Quit: My Mac has gone to sleep. ZZZzzz…]