Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

Lexical Analysis: Hard Parts

Name: Anonymous 2013-07-15 16:58

How does one do lexical analysis (tokenization) of Bash/Perl style string, where insertion in the middle is possible?
Say we have
print "Now is {get "time of day"} of {get "current date"}..."
print 'have a nice day!'

And {…} inserts value in the middle of a string.

How Lexer would know which double-quote closes the string and which is part of the string?

Python uses format-like routines, because parsing such strings is hard.

Name: Anonymous 2013-07-15 20:11

HMMM LET'S SEE WE CREATE A STATE MACHINE THAT GOES THROUGH EACH CHARACTER IN THE FUQIN STRING AND WHEN WE ENCOUNTER A FUQIN QUOTE, WE INCREMENT A VARIABLE CALLED QUOTE_COUNT OR SOME SHIT LIKE THAT.  AND...

WAIT, I DON'T FUCKING KNOW WHAT I'M DOING
FUCK.

Name: Anonymous 2013-07-15 20:16

No, that is a good way to do it >>9-sama.

Name: Anonymous 2013-07-15 20:58

>>9
You don't understand the question.

Name: Anonymous 2013-07-15 21:12

Use Perl 6 grammar.

Name: Anonymous 2013-07-15 22:25

ok here Is what to does

loop from begin of str til u hit quote
when u hit quote , stop loop, then 2nd loop from end of str BACKWARD til u hit END quote.

recurse for the winnings

Name: Anonymous 2013-07-15 22:26

>>9
>WE INCREMENT A VARIABLE CALLED QUOTE
what if there are uneven number of quotes?

Name: Anonymous 2013-07-15 22:27

>>14
That would be a syntax error.

Name: Anonymous 2013-07-15 22:28

Name: Anonymous 2013-07-15 22:37

>>15
But it isnt! For example,
http://perl.about.com/od/perltutorials/qt/perlheredoc.htm
can contain arbitrary characters, which is very useful for rapid prototyping.

Name: Cudder !MhMRSATORI!fR8duoqGZdD/iE5 2013-07-16 6:19

>>17
Obviously he intended that to be applied only in the particular case...

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List