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: Radu Mereuta <headness13 AT gmail.com>
  • To: Daniele Filaretti <dfilaretti AT gmail.com>
  • 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 16:23:01 +0200
  • List-archive: <http://lists.cs.uiuc.edu/pipermail/k-user/>
  • List-id: <k-user.cs.uiuc.edu>

I'm working right now on lexical and it should look something like you said. I still have to work out the details and test it before I release it. It shouldn't take long now.

Radu

On Fri, Feb 1, 2013 at 4:16 PM, Daniele Filaretti <dfilaretti AT gmail.com> wrote:
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


_______________________________________________
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