slaught has joined #rubinius
Grimless has quit [Remote host closed the connection]
<bennyklotz> what do you all think about http://crystal-lang.org/ ?
Grimless has joined #rubinius
slaught has quit [Quit: slaught]
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.
<johnmuhl> at least some of the code is available on github https://github.com/tomstuart/computationbook
<yorickpeterse> shit, never saw that actually
<yorickpeterse> all I could find was either enterprise Java, or academic algorithms in shitty LaTeX papers
<yorickpeterse> (shitty as in the font being a PITA to reaD)
<yorickpeterse> * read
<yorickpeterse> ty
<yorickpeterse> fukit, buying the book as well
josh-k has quit [Remote host closed the connection]
josh-k has joined #rubinius
carlosgaldino has joined #rubinius
josh-k has quit [Ping timeout: 255 seconds]
elia has joined #rubinius
havenwood has quit [Remote host closed the connection]
<yorickpeterse> oh ffs, this industry really sucks at explaining these things in a simple way
<yorickpeterse> No wonder we still don't have flying cars
<yorickpeterse> (on a widely used basis that is)
<yxhuvud> yes, the paper writers really like being incomprehensible, or requiring umpteen other papers as precondition
<yorickpeterse> I've literally read dozens of websites, some going back 1-2 decades, none of them show a simple _code_ example
<yorickpeterse> even the C++ example in Wikipedia is invalid
<yorickpeterse> http://en.wikipedia.org/wiki/LL_parser#Parser_implementation_in_C.2B.2B <- TS_EOS and NTS_S are not defined anywhere
<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…]
josh-k has joined #rubinius
sferik has joined #rubinius
josh-k_ has joined #rubinius
josh-k has quit [Ping timeout: 272 seconds]
havenwood has joined #rubinius
diegoviola has quit [Quit: WeeChat 1.0.1]
diegoviola has joined #rubinius
|jemc| has quit [Quit: WeeChat 1.0.1]
jnh has joined #rubinius