Skip to Content.
Sympa Menu

k-user - Re: [K-user] resolving variable names inside double quoted strings (as in PHP)

k-user AT lists.cs.illinois.edu

Subject: K-user mailing list

List archive

Re: [K-user] resolving variable names inside double quoted strings (as in PHP)


Chronological Thread 
  • From: Daniele Filaretti <dfilaretti AT gmail.com>
  • To: "Rosu, Grigore" <grosu AT illinois.edu>
  • Cc: "k-user AT cs.uiuc.edu" <k-user AT cs.uiuc.edu>
  • Subject: Re: [K-user] resolving variable names inside double quoted strings (as in PHP)
  • Date: Fri, 1 Feb 2013 14:16:24 +0000
  • List-archive: <http://lists.cs.uiuc.edu/pipermail/k-user/>
  • List-id: <k-user.cs.uiuc.edu>

Thanks Dwight and Grigore for your answers.

I will have a look at Dwight's Python semantics, and see if I find some
inspiration!

Cheers,
Daniele

On 1 Feb 2013, at 14:00, "Rosu, Grigore"
<grosu AT illinois.edu>
wrote:

> Thanks Dwight, but let's face it: we cannot prolong this for too long
> anymore, we need to provide full lexing support in the tool. SDF already
> does it, so it is only a matter of wrapping it up. Radu, we can use the
> syntax that we discussed a couple of months ago, something like this if I
> remember correctly:
>
> syntax MyID ::= Token("[A-Za-z$#][0-9A-Za-Z]*")
>
> This should not be too hard to support, although I let Radu speak for that,
> because there are several parsers that need to be convinced to work.
>
> Grigore
>
>
>
> ________________________________________
> From:
> k-user-bounces AT cs.uiuc.edu
>
> [k-user-bounces AT cs.uiuc.edu]
> on behalf of Guth, Dwight
> [dguth2 AT illinois.edu]
> Sent: Friday, February 01, 2013 7:41 AM
> To: Daniele Filaretti;
> k-user AT cs.uiuc.edu
> Subject: Re: [K-user] resolving variable names inside double quoted strings
> (as in PHP)
>
> I actually just implemented a very similar feature in my python semantics
> concerning str.format. As part of that I implemented some custom string
> processing functions that you may find useful. It allowed me to very
> cleanly iterate through the string, pause at each escape character, and
> write a rule that customizes the behavior for each one. You are welcome to
> take a look at it as soon as I push my commit upstream later today to
> http://code.google.com/p/k-python-semantics/source/browse/python-semantics-strings.k
>
> If you like the solution you're free to use as much or as little of my code
> as you want. You're free to ask me any questions you have about the code
> too.
>
> Daniele Filaretti
> <dfilaretti AT gmail.com>
> wrote:
>
>
> Hi all,
>
> In PHP (the language I'm trying to define in K) when a variable name occurs
> in a string (variable names always start with $) the value of that variable
> is found in the environment and printed into the string. For example:
>
>> $x = "Daniele";
>> echo "Hello $x!"
>>
>> out>> "Hello Daniele!"
>
> Until now I ignored this in my definition - i.e., I'm using builtin strings
> that K offer, and I can achieve the same with (that is also legal in PHP):
>
>> $x = "Daniele";
>> echo "Hello " . $x . "!"
>>
>> out>> "Hello Daniele!"
>
> However, I noticed that the feature is heavily used (of course, as it's a
> very handy shortcut), so I decided to add it.
>
> I'm currently having a look at the C definition by Chucky Ellison, as I
> think something similar has to be done for C's 'printf". However, it seems
> that their solution is very low level (scanning a string character by
> character and defining some kind of state machine I guess), and perhaps I
> don't need that level of detail.
>
> Ideally, all I need is just something like a string tokenizer.
> For example if my string is
>
>> "Hello $x!"
>
> I would like to obtain a list (containing strings and variables) :
>
>> ["Hello", $x, "!"]
>
> with this list I could easily print the elements that are already strings,
> and evaluate the variable names before printing them as well (using my
> already defined printing function for strings -- sending to it the elements
> of my list one by one).
>
> Any ideas? Comments? Suggestions?
>
> Thanks a lot to everyone!
>
> Cheers,
> Daniele
> _______________________________________________
> k-user mailing list
> k-user AT cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/k-user
>
> _______________________________________________
> k-user mailing list
> k-user AT cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/k-user






Archive powered by MHonArc 2.6.16.

Top of Page