* alexgordon
was about to google up "kitten porn" for ELLIOTTCABLE, but thought better of it
<whitequark>
yes, it's bookmarked. no, you don't know why, even if you think you do. no, I won't explain.
* whitequark
grins
* alexgordon
finds some hot russian chicks for whitequark
<ELLIOTTCABLE>
GUYS
<alexgordon>
WHAT
<ELLIOTTCABLE>
HOW DO I FIND A PLACE TO STAY FOR ONLY A MONTH
<whitequark>
TRY CARDBOARD BOX
<whitequark>
PERHAPS YOU WILL NEED SEVERAL
<alexgordon>
IT'S CALLED A HOTEL, RICHBOY
<joelteon>
hotel bitch
<joelteon>
you have spare money
<alexgordon>
ELLIOTTCABLE: like in a specific place?
<whitequark>
ELLIOTTCABLE: also go back soon! let's finally talk about an interesting, working language
<alexgordon>
furrow is interesting!
<alexgordon>
-_-
<ELLIOTTCABLE>
what
<ELLIOTTCABLE>
hotel for a *month*!?
<ELLIOTTCABLE>
at my living standards, that's almost twice what my fucking apartment costs
<ELLIOTTCABLE>
and that's A Lot Of Money™.
<ELLIOTTCABLE>
“go back soon?”
<alexgordon>
airbnb?
<ELLIOTTCABLE>
and *what* interesting, working language?
<whitequark>
alexgordon: you said there's nothing new in it
<whitequark>
ELLIOTTCABLE: paws
<ELLIOTTCABLE>
airbnb isn't for long enough, though, 8and* it costs money
<ELLIOTTCABLE>
I might try, uhhhh, was sit, couchsurfing
<alexgordon>
holy shit this IS porn whitequark
<whitequark>
alexgordon: told ya
<ELLIOTTCABLE>
alexgordon: what is ittttt I want to click it damnit
<ELLIOTTCABLE>
but girlfriend and best-friend here
<joelteon>
ELLIOTTCABLE: you should find an apartment to stay in
<joelteon>
like the one you're staying in
<joelteon>
right now
<whitequark>
ELLIOTTCABLE: vanilla porn
<whitequark>
I'm not the type to trick you into viewing shock videos, dammit
<joelteon>
oh THAT's what vanilla is
<joelteon>
it's a plant
<alexgordon>
ELLIOTTCABLE: the guy with the cock is kissing the girl and attempting to suckle on her breasts like an infant
<joelteon>
gay
<whitequark>
alexgordon: you are officially appointed as my personal porn narrator
<joelteon>
"videos with new hot chicks" that's all i need
<alexgordon>
ELLIOTTCABLE: he has now removed her overgarment to reveal an absence of any brassiere or other undergarments
<alexgordon>
ELLIOTTCABLE: the girl is attempting to grab HIS breasts only to find there are none there
<joelteon>
oh no
<alexgordon>
she can be forgiven for this because she is wearing sunglasses
<alexgordon>
though WHY she is wearing sunglasses indoors is a mystery
<whitequark>
there is an author (?) comment under the video
<joelteon>
It would be hard to concentrate in porn
<alexgordon>
ELLIOTTCABLE: they are now preparing for intercourse
<alexgordon>
it is revealed that the girl is not wearing any undergarments on the lower half of her body
<alexgordon>
ELLIOTTCABLE: the guy is now suckling her third breast
<joelteon>
gross
<alexgordon>
joelteon: if you think THIS is gross, stay away from the internet
<ELLIOTTCABLE>
... third breast. wat
<ELLIOTTCABLE>
also, my girlfriend is reading everything you hi light me with, out loud, to all of us.
<alexgordon>
shit.
<whitequark>
ELLIOTTCABLE: (third breast) the weirdest euphemism I heard in a while.
<joelteon>
ELLIOTTCABLE likes to suck big oily black cocks
* whitequark
sighs
<alexgordon>
ELLIOTTCABLE: the guy considers inserting digits into her anatomy, but ultimately thinks better of it
<joelteon>
i want to go to starbucks, but i need something to do when i'm there
<joelteon>
any ideas
<alexgordon>
ELLIOTTCABLE: it is revealed that the guy is in possession of an abnormally perpendicular love truncheon
<alexgordon>
well that was over quickly.
<alexgordon>
whitequark: FIND US MORE PORN
<whitequark>
alexgordon: maybe later
<alexgordon>
you would deny us porn at a time of need?
<whitequark>
I don't exactly have a stash of good porn; we're at equal terms here.
<alexgordon>
hm, we're ok because ELLIOTTCABLE has a whole drobo full of porn
<ELLIOTTCABLE>
wat
<alexgordon>
lexing furrow's comments is reaaaaly difficult
<alexgordon>
I want to have
<alexgordon>
actually no I'm just a moron
<joelteon>
alexgordon what are the comments
<alexgordon>
joelteon: -- line comment
<alexgordon>
joelteon: /// block comment \\\
<joelteon>
o_o
<alexgordon>
:D
<alexgordon>
well the line comment is normal
<joelteon>
line comments okay, what's up with the block comments
<alexgordon>
ELLIOTTCABLE liked them
<joelteon>
oh right
<alexgordon>
hm, maybe that isn't such a great design criteria
<ELLIOTTCABLE>
I did?
<alexgordon>
yeah
<alexgordon>
you did
<ELLIOTTCABLE>
news to me.
<ELLIOTTCABLE>
but hey, I agree with ELLIOTTCABLE
<alexgordon>
hahaha
<alexgordon>
joelteon: it just looks nice as a section heading
<alexgordon>
// Parser \\\
<alexgordon>
erm
<alexgordon>
// Parser \\\
<alexgordon>
dammit
<alexgordon>
fucking
<alexgordon>
irc
* alexgordon
cries
<alexgordon>
/// Parser \\\
<alexgordon>
YES
<ELLIOTTCABLE>
nah, seems like a good idea to me
<alexgordon>
that
<ELLIOTTCABLE>
my problem with it:
<ELLIOTTCABLE>
I prefer double delimiters, so they work well with thresp indentation. ;)
<ELLIOTTCABLE>
/ Parser \\
<alexgordon>
HA
<ELLIOTTCABLE>
// Parser \\
<ELLIOTTCABLE>
has the benefit of looking standard ;)
<ELLIOTTCABLE>
could do /\ as the one-line version, perhaps
<ELLIOTTCABLE>
lolno
<purr>
lolno
<alexgordon>
/ Parser \\
<alexgordon>
gah
<alexgordon>
yeah ok
<alexgordon>
I just worry about people not getting it
<alexgordon>
because // is line comment in EVERY LANGUAGE EVER
<purr>
<Nuck> American English is a better-maintained fork of the English language.
<joelteon>
OH GOD NOOOOOOOOOOOOOOOOOOOOOOOOOO
<joelteon>
MY HOME BED WAS MISSING OR OBSTRUCTED
<joelteon>
FUCK
<joelteon>
FUCK FUCK FUCK FUCK FUCK FUCK FUCK
<alexgordon>
shit!
<joelteon>
FUCK
<joelteon>
welp
<joelteon>
should've tested it before i set it down
<alexgordon>
MURDER A SHEEP!
<joelteon>
alexgordon: i like that as a heading, but -- Parser -- is pretty cool too
<alexgordon>
that's true
<alexgordon>
I like -- because you can do 1 + 1 --> 2 for tests
<joelteon>
okay, i found my house again
<joelteon>
i even stored some diamond and sticks
<joelteon>
wow, thank god
<whitequark>
alexgordon: // is in every language ever, except where # or (**) or ; or --
<whitequark>
/**/ and (**) have the advantage that they nest properly
<alexgordon>
nesting comments are evil
<alexgordon>
EVIL
<whitequark>
wat
<whitequark>
did you never want to comment a function with comments?
<alexgordon>
they make text editor authors' lives miserable :P
<alexgordon>
I may be biased
<whitequark>
idk, if you document your code properly this arises like all the time
<whitequark>
alexgordon: authors of shitty editors must suffer
<whitequark>
authors of good editors don't care
<alexgordon>
lol clearly not
<purr>
lol
<whitequark>
it either parses CFGs or not ;)
<alexgordon>
that would make it slow!
<whitequark>
you don't need to construct entire parsetree. additionally, you can memoize the state of the parser (more importantly) lexer at block boundaries
<alexgordon>
anyway I like nested comments as a programmer, but gah they're impossible to parse
<alexgordon>
^ still not fast enough
<whitequark>
where blocks are rope leafs
<alexgordon>
find be a parser that runs at 30-60fps :P
<whitequark>
so
<alexgordon>
*me
<whitequark>
sublime solves that by lazily coloring the text
<whitequark>
which is completely OK
<alexgordon>
still not enough
<whitequark>
it is
<alexgordon>
...
<alexgordon>
build one if you don't believe me!
<whitequark>
um
* whitequark
silently points at sublime
<alexgordon>
I spent years optimizing choc's syntax highlighter, there's just no way you can get a full blown parser in there
<alexgordon>
it's slow enough as it is
<whitequark>
actually it doesn't memoize, it has a regexp hack
<alexgordon>
and that's with every optimization you could possibly think of
<whitequark>
which is simple and evidently fast enough
<whitequark>
you are probably right about full-blown parser
<joelteon>
copyright 2013 joel taylor all rights reserved
<joelteon>
anytime you use that specific sequence of commands will be a $30 royalty charge
cuttle has joined #elliottcable
<cuttle>
ELLIOTTCABLE:
<ELLIOTTCABLE>
What
<cuttle>
ELLIOTTCABLE: actually gtg
<cuttle>
<3
<cuttle>
loveyou
<cuttle>
9:45 PM <•purr> <alexgordon> Nuck: you of all people should know that I of all people know of all the people the problems c++ of all languages has, of all
fwg has joined #elliottcable
sharkbot has quit [Remote host closed the connection]
sharkbot has joined #elliottcable
<purr>
<alexgordon> Nuck: had all your favourite PHP features, magic quotes, mysql_real_escape_string, zionism
alexgordon has joined #elliottcable
fwg has quit [Ping timeout: 268 seconds]
cloudhead has joined #elliottcable
<alexgordon>
FUUUUUUUU
<alexgordon>
89 parsing conflicts.
<alexgordon>
bloody commas
<alexgordon>
though I can see why it's confused
<alexgordon>
this is a rabbit warren of a grammar
<alexgordon>
problem seems to be
<alexgordon>
functions allow exprs to be on the lhs
<alexgordon>
e.g.
<alexgordon>
f(2 + 2) = 4
<alexgordon>
this conflicts with lambda declarations
<alexgordon>
x, y: z
<alexgordon>
because
<alexgordon>
f(x, y: z) is ambiguous
<alexgordon>
obviously I don't want every expression to be able to go in there
<alexgordon>
I was more interested in like
<alexgordon>
f(x < 0) = -1
<alexgordon>
as a simple form of guards
<alexgordon>
hm
fwg has joined #elliottcable
<alexgordon>
gets harder
<alexgordon>
<expr> ::= <expr> "is" <type>.
<alexgordon>
<type> can be a tuple type: comma list of types
<whitequark>
the last one is essentially operator priority
<alexgordon>
whitequark: right
<alexgordon>
lemon doesn't seem to like it though
<alexgordon>
well
<alexgordon>
it's more having two copies of the same operator in different places
<alexgordon>
theoretically it's not ambiguous because types are a different world
<alexgordon>
though I don't think lemon can parse that
<alexgordon>
e.g.
<alexgordon>
f(x is Int, Int)
<alexgordon>
is not ambiguous because Int is not a valid expression
<alexgordon>
but
<alexgordon>
lemon can't parse it, I don't think
<alexgordon>
so commas are in
<alexgordon>
[1, 2, 3]
<alexgordon>
{1, 2, 3}
<alexgordon>
foo(1, 2, 3)
<alexgordon>
foo(x, y, z) = ...
<alexgordon>
x is Int, Int
<alexgordon>
x, y: z
<alexgordon>
some wacky ones like
<alexgordon>
(x: y): z
<alexgordon>
heh
<alexgordon>
I think I should just whitelist some exprs that can be parameters
<alexgordon>
and require parens around (x, y: z)
<alexgordon>
that just leaves x is Int, Int
<alexgordon>
x is (Int, Int) would be fine
<alexgordon>
hm
<alexgordon>
but that messes with function types
<alexgordon>
FUUUUU
<alexgordon>
why can't we teach computers common sense
<whitequark>
is lemon LALR(1) or LR(1)?
<whitequark>
LALR, right
<whitequark>
LALR sometimes produces spurious conflicts which are not a problem for an LR parser
<whitequark>
guess you've hit that case
<alexgordon>
well some of it is spurious
<alexgordon>
some are real
<whitequark>
yeh
<alexgordon>
figuring out how to teach it how to disambiguate them is the hard bit
<alexgordon>
I'd like to say "require ( ) around tuples if in an IS expression"
<alexgordon>
and "require ( ) around lambdas if they have multiple arguments, in some situations"
<alexgordon>
and "some types of expressions can't be on the lhs"
<alexgordon>
but it's hard to do that without blowing up the grammar