Re: [vwnc] Does anyone have a "new" string literal?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
14 messages Options
Reply | Threaded
Open this post in threaded view
|

Re: [vwnc] Does anyone have a "new" string literal?

Eliot Miranda-2


On Fri, Feb 1, 2013 at 9:47 AM, Terry Raymond <[hidden email]> wrote:

I constantly run into the situation where I am incorporating either HTML or javascript

in my methods. The problem I run into is the smalltalk string quote(‘). It is a real pain

to double quote it, and don’t even try to copy and paste external javascript.

 

So, I think it would be real helpful to have some other funky string quote like

##{{ }}## or some sequence that is very unlikely to occur in another language.

 

Has anyone done this or even thought about it?


David Leibs has been pushing a well-thought-through facility he calls (and other systems name) "quasi-quote".  Here, a string literal contains escape sequences, a little like printf, that allow one to substitute values.  Dave's syntax uses square brackets to escape into Smalltalk.  So that (IIRC) you say things like

    '<html><head></head><body><H1>[myHeading]</H1>'

which compiles to something analogous to

    String streamContents: [:s| s nextPutAll: '<html><head></head><body><H1>'; nextPutAll: myHeading asString; nextPutAll: '</H1>]

But this excellent suggestion has fallen on deaf ears (my own included) for more than a decade.

 

Terry

 

===========================================================

Terry Raymond

Crafted Smalltalk

80 Lazywood Ln.

Tiverton, RI  02878

<a href="tel:%28401%29%20624-4517" value="+14016244517" target="_blank">(401) 624-4517      [hidden email]

===========================================================

 


_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc




--
best,
Eliot


Reply | Threaded
Open this post in threaded view
|

Re: [vwnc] Does anyone have a "new" string literal?

timrowledge
Dave's brilliance is beyond dispute, but that looks very familiar somehow - isn't it something like what used to happen in Seaside?
>
> David Leibs has been pushing a well-thought-through facility he calls (and other systems name) "quasi-quote".  Here, a string literal contains escape sequences, a little like printf, that allow one to substitute values.  Dave's syntax uses square brackets to escape into Smalltalk.  So that (IIRC) you say things like
>
>     '<html><head></head><body><H1>[myHeading]</H1>'

tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Never forget: 2 + 2 = 5 for extremely large values of 2.



Reply | Threaded
Open this post in threaded view
|

Re: [vwnc] Does anyone have a "new" string literal?

Eliot Miranda-2
In reply to this post by Eliot Miranda-2


On Fri, Feb 1, 2013 at 10:28 AM, Eliot Miranda <[hidden email]> wrote:


On Fri, Feb 1, 2013 at 9:47 AM, Terry Raymond <[hidden email]> wrote:

I constantly run into the situation where I am incorporating either HTML or javascript

in my methods. The problem I run into is the smalltalk string quote(‘). It is a real pain

to double quote it, and don’t even try to copy and paste external javascript.

 

So, I think it would be real helpful to have some other funky string quote like

##{{ }}## or some sequence that is very unlikely to occur in another language.

 

Has anyone done this or even thought about it?


David Leibs has been pushing a well-thought-through facility he calls (and other systems name) "quasi-quote".  Here, a string literal contains escape sequences, a little like printf, that allow one to substitute values.  Dave's syntax uses square brackets to escape into Smalltalk.  So that (IIRC) you say things like

    '<html><head></head><body><H1>[myHeading]</H1>'

which compiles to something analogous to

    String streamContents: [:s| s nextPutAll: '<html><head></head><body><H1>'; nextPutAll: myHeading asString; nextPutAll: '</H1>]

But this excellent suggestion has fallen on deaf ears (my own included) for more than a decade.

<blush>, saw quote, brian farted, now realize this is nothing to do with your issue Terry.  Apologies</blush>.

But you could come up with some convention to embed in quasi-quote to change the string quote, right?  he thing is to choose your escape character(s) with care.  You need a quote to escape to and from processing ($[ & $]).  You need a literal quote ( $\ ?).  Do you need a third quote to change quote interpretation?  Or do you need a third quote that turns off single quote as end of string?  eg. say $^ indicates no close quote until the matching $^.  So the following
    '^'my single-quoted string'^'
denotes
    '''my single-quoted string'''

and I realize I can't remember how David's proposal distinguishes between quasi-quote strings and normal Smalltalk strings.


 

Terry

 

===========================================================

Terry Raymond

Crafted Smalltalk

80 Lazywood Ln.

Tiverton, RI  02878

<a href="tel:%28401%29%20624-4517" value="+14016244517" target="_blank">(401) 624-4517      [hidden email]

===========================================================

 


_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc




--
best,
Eliot



--
best,
Eliot


Reply | Threaded
Open this post in threaded view
|

Re: [vwnc] Does anyone have a "new" string literal?

Colin Putney-3
In reply to this post by Eliot Miranda-2



On Fri, Feb 1, 2013 at 10:28 AM, Eliot Miranda <[hidden email]> wrote:
 
David Leibs has been pushing a well-thought-through facility he calls (and other systems name) "quasi-quote".  Here, a string literal contains escape sequences, a little like printf, that allow one to substitute values.  Dave's syntax uses square brackets to escape into Smalltalk. 

That's certainly a useful construct, but I don't think it addresses Terry's problem. He wants a string literal that can include $' and CR without escaping. Something like HEREDOC or Python's triple-double-quote string literals.

Colin


Reply | Threaded
Open this post in threaded view
|

Re: [vwnc] Does anyone have a "new" string literal?

Eliot Miranda-2


On Fri, Feb 1, 2013 at 10:44 AM, Colin Putney <[hidden email]> wrote:



On Fri, Feb 1, 2013 at 10:28 AM, Eliot Miranda <[hidden email]> wrote:
 
David Leibs has been pushing a well-thought-through facility he calls (and other systems name) "quasi-quote".  Here, a string literal contains escape sequences, a little like printf, that allow one to substitute values.  Dave's syntax uses square brackets to escape into Smalltalk. 

That's certainly a useful construct, but I don't think it addresses Terry's problem. He wants a string literal that can include $' and CR without escaping. Something like HEREDOC or Python's triple-double-quote string literals.

If I had a brain I would have remembered the syntax and hence that it does address Terry's point.  The quote character for quasi-quote is ` (back tick), so single ticks are literal inside a quasi-quote.  <blush>Sorry</blush> 

Colin






--
best,
Eliot


Reply | Threaded
Open this post in threaded view
|

Re: [vwnc] Does anyone have a "new" string literal?

Chris Muller-3
In reply to this post by Eliot Miranda-2
>> in my methods. The problem I run into is the smalltalk string quote(‘). It
>> is a real pain
>>
>> to double quote it, and don’t even try to copy and paste external
>> javascript.

Why is it a pain to change single quotes into two-successive single quotes?

  1) Copy HTML from external source.
  2) Back in Squeak, Command+V to paste it.
  3) Press Command+Home.  Press Command+F.  Type single-quote (') in
the find dialog.  Enter.
  4) Type single-quote twice.  (Replaces highlighted single-quote with
two single quotes).
  5) Command+Shift+J to replace all subsequent occurrences.
  6) Command+A to select all.
  7) Command+' (single-quote) to enclose entire string in single quotes.

Takes all of about 10 seconds.  Unless HTML has two single-quotes in
succession I see no reason it shouldn't work..

Reply | Threaded
Open this post in threaded view
|

Re: [vwnc] Does anyone have a "new" string literal?

Colin Putney-3



On Fri, Feb 1, 2013 at 3:14 PM, Chris Muller <[hidden email]> wrote:
Why is it a pain to change single quotes into two-successive single quotes?

  1) Copy HTML from external source.
  2) Back in Squeak, Command+V to paste it.
  3) Press Command+Home.  Press Command+F.  Type single-quote (') in
the find dialog.  Enter.
  4) Type single-quote twice.  (Replaces highlighted single-quote with
two single quotes).
  5) Command+Shift+J to replace all subsequent occurrences.
  6) Command+A to select all.
  7) Command+' (single-quote) to enclose entire string in single quotes.

Takes all of about 10 seconds.  Unless HTML has two single-quotes in
succession I see no reason it shouldn't work..

Javascript might have two single-quotes in succession—that's an empty string. And even when the above does work, it's still a pain.

 Colin


Reply | Threaded
Open this post in threaded view
|

Re: [vwnc] Does anyone have a "new" string literal?

Bob Arning-2
In reply to this post by Chris Muller-3
Why bother yourself with changing the quotes manually? Let squeak do it for you.

Open a workspace
Explore it until you find the text
Open an inspector on the text
Select the string instance variable in the text's inspector
Now what you type in the workspace gets stringified in the inspector
Copy that and paste into your code.

Cheers,
Bob



On 2/1/13 6:14 PM, Chris Muller wrote:
in my methods. The problem I run into is the smalltalk string quote(‘). It
is a real pain

to double quote it, and don’t even try to copy and paste external
javascript.
Why is it a pain to change single quotes into two-successive single quotes?

  1) Copy HTML from external source.
  2) Back in Squeak, Command+V to paste it.
  3) Press Command+Home.  Press Command+F.  Type single-quote (') in
the find dialog.  Enter.
  4) Type single-quote twice.  (Replaces highlighted single-quote with
two single quotes).
  5) Command+Shift+J to replace all subsequent occurrences.
  6) Command+A to select all.
  7) Command+' (single-quote) to enclose entire string in single quotes.

Takes all of about 10 seconds.  Unless HTML has two single-quotes in
succession I see no reason it shouldn't work..





Reply | Threaded
Open this post in threaded view
|

Re: [vwnc] Does anyone have a "new" string literal?

Eliot Miranda-2


On Fri, Feb 1, 2013 at 4:03 PM, Bob Arning <[hidden email]> wrote:
Why bother yourself with changing the quotes manually? Let squeak do it for you.

Terry's in VisualWorks.
 

Open a workspace
Explore it until you find the text
Open an inspector on the text
Select the string instance variable in the text's inspector
Now what you type in the workspace gets stringified in the inspector
Copy that and paste into your code.

Cool.  Even better, add this to the doit menu:

(TextEditor classPool at: #UndoSelection) inspect

Even better add this to the doIt menu:

TextEditor classPool at: #UndoSelection put: (TextEditor classPool at: #UndoSelection) printString

and its dual:

TextEditor classPool at: #UndoSelection put: (Compiler evaluate: (TextEditor classPool at: #UndoSelection))

a.k.a. (without the droppings in the changes file)

TextEditor classPool at: #UndoSelection put: (Scanner new scanTokens: (TextEditor classPool at: #UndoSelection)) first


Cheers,
Bob



On 2/1/13 6:14 PM, Chris Muller wrote:
in my methods. The problem I run into is the smalltalk string quote(‘). It
is a real pain

to double quote it, and don’t even try to copy and paste external
javascript.
Why is it a pain to change single quotes into two-successive single quotes?

  1) Copy HTML from external source.
  2) Back in Squeak, Command+V to paste it.
  3) Press Command+Home.  Press Command+F.  Type single-quote (') in
the find dialog.  Enter.
  4) Type single-quote twice.  (Replaces highlighted single-quote with
two single quotes).
  5) Command+Shift+J to replace all subsequent occurrences.
  6) Command+A to select all.
  7) Command+' (single-quote) to enclose entire string in single quotes.

Takes all of about 10 seconds.  Unless HTML has two single-quotes in
succession I see no reason it shouldn't work..









--
best,
Eliot


Reply | Threaded
Open this post in threaded view
|

Re: [vwnc] Does anyone have a "new" string literal?

Ron Teitelbaum

It’s been 10 years or so since I used VisualWorks but didn’t they have a way of highlighting a string hitting escape and then the next thing you typed surrounded the highlighted text.  Was great for { ( [ ‘ “

 

That’s a nice feature but it’s like so many features if you don’t know about it, it doesn’t work for you.

 

Ron Teitelbaum

 

From: [hidden email] [mailto:[hidden email]] On Behalf Of Eliot Miranda
Sent: Friday, February 01, 2013 7:09 PM
To: The general-purpose Squeak developers list
Subject: Re: [squeak-dev] Re: [vwnc] Does anyone have a "new" string literal?

 

 

On Fri, Feb 1, 2013 at 4:03 PM, Bob Arning <[hidden email]> wrote:

Why bother yourself with changing the quotes manually? Let squeak do it for you.

 

Terry's in VisualWorks.

 


Open a workspace
Explore it until you find the text
Open an inspector on the text
Select the string instance variable in the text's inspector
Now what you type in the workspace gets stringified in the inspector
Copy that and paste into your code.

 

Cool.  Even better, add this to the doit menu:

 

(TextEditor classPool at: #UndoSelection) inspect

 

Even better add this to the doIt menu:

 

TextEditor classPool at: #UndoSelection put: (TextEditor classPool at: #UndoSelection) printString

 

and its dual:

 

TextEditor classPool at: #UndoSelection put: (Compiler evaluate: (TextEditor classPool at: #UndoSelection))

 

a.k.a. (without the droppings in the changes file)

 

TextEditor classPool at: #UndoSelection put: (Scanner new scanTokens: (TextEditor classPool at: #UndoSelection)) first

 


Cheers,
Bob


 

On 2/1/13 6:14 PM, Chris Muller wrote:

in my methods. The problem I run into is the smalltalk string quote(‘). It
is a real pain
 
to double quote it, and don’t even try to copy and paste external
javascript.
Why is it a pain to change single quotes into two-successive single quotes?
 
  1) Copy HTML from external source.
  2) Back in Squeak, Command+V to paste it.
  3) Press Command+Home.  Press Command+F.  Type single-quote (') in
the find dialog.  Enter.
  4) Type single-quote twice.  (Replaces highlighted single-quote with
two single quotes).
  5) Command+Shift+J to replace all subsequent occurrences.
  6) Command+A to select all.
  7) Command+' (single-quote) to enclose entire string in single quotes.
 
Takes all of about 10 seconds.  Unless HTML has two single-quotes in
succession I see no reason it shouldn't work..
 
 

 





 

--
best,

Eliot



Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-dev] Re: [vwnc] Does anyone have a "new" string literal?

Hannes Hirzel
In reply to this post by Eliot Miranda-2
On 2/27/17, DavidLeibs <[hidden email]> wrote:

> I realize this is a few years old but I wanted to give an update on my
> quest
> for quasi-literals.  I did a complete quasi-literal framework for Java when
> I moved over to Oracle Labs.  It used the annotation compiler + a few
> tweeks
> to the scanner and parser.  You could extend the name space of the
> quasi-literal and have inline SQL or APL.  All the parsing, validation, and
> code rewriting happened at compile time. We proposed it to the Java Product
> guys and got ignored to death.
>
> As to the characters I did backquote for simple quasi-literal Strings and
> used Oxford Brackets for the quasi-literals with a language namespace. <|
> ...|>.  Back quote can be hard to see but is nice for String substitute.
>
> At this point in time the language that does it most right is JavaScript.
> Thanks Mark Miller for all the hard work over the years!

Thanks David for following up this discussion.

I wonder if just going for JavaScript ES6 solution (back-ticks) would
be the most straightforward thing to do?

--Hannes


https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Template_literals

Syntax
----------

`string text`

`string text line 1
 string text line 2`

`string text ${expression} string text`

tag `string text ${expression} string text`


Description
----------------

Template literals are enclosed by the back-tick (` `) (grave accent)
character instead of double or single quotes. Template literals can
contain place holders. These are indicated by the Dollar sign and
curly braces (${expression}). The expressions in the place holders and
the text between them get passed to a function. The default function
just concatenates the parts into a single string. If there is an
expression preceding the template literal (tag here),  the template
string is called "tagged template literal". In that case, the tag
expression (usually a function) gets called with the processed
template literal, which you can then manipulate before outputting. To
escape a back-tick in a template literal, put a backslash \ before the
back-tick.

Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-dev] Re: [vwnc] Does anyone have a "new" string literal?

Eliot Miranda-2
Hi Hannes,

On Mon, Feb 27, 2017 at 10:58 AM, H. Hirzel <[hidden email]> wrote:
On 2/27/17, DavidLeibs <[hidden email]> wrote:
> I realize this is a few years old but I wanted to give an update on my
> quest
> for quasi-literals.  I did a complete quasi-literal framework for Java when
> I moved over to Oracle Labs.  It used the annotation compiler + a few
> tweeks
> to the scanner and parser.  You could extend the name space of the
> quasi-literal and have inline SQL or APL.  All the parsing, validation, and
> code rewriting happened at compile time. We proposed it to the Java Product
> guys and got ignored to death.
>
> As to the characters I did backquote for simple quasi-literal Strings and
> used Oxford Brackets for the quasi-literals with a language namespace. <|
> ...|>.  Back quote can be hard to see but is nice for String substitute.
>
> At this point in time the language that does it most right is JavaScript.
> Thanks Mark Miller for all the hard work over the years!

Thanks David for following up this discussion.

I wonder if just going for JavaScript ES6 solution (back-ticks) would
be the most straightforward thing to do?

 I did a quick hack in Squeak but didn't have time to finish is.  I wrote some tests.  Complex cases worked, small tricky cases broke the scanner.

MCHttpRepository
user: ''
password: ''

Compiler.quasiliteral-eem.280

[Derived from Compiler-nice.279, and renamed from
 the bogusly named Compiler.quasiquote-eem.248]

Add a quasi-literal form for "string interpolation", that allows
convenient embedding of expressions within a format string,
and provides a convenient way of embedding literal strings
within an alternative literal string syntax whose string delimiter
is different.

e.g.
`hello [#cruel] world!`
evaluates to
'hello cruel world'.

`S1[B1]...SN[BN]SN+1`

is equivalent to
{ 'S1'. [B1] value. ... 'SN'. [BN] value. 'SN+1' } concatenateQuasiLiteral
where concatenateQuasiLiteral sends asString to each
element and answers the concatenation of those elements.

however, single-statement blocks are inlined, so e.g. the
above `hello [#cruel] world!` is compiled as
{ 'hello '. #cruel. ' world!' } concatenateQuasiLiteral

See e.g. Tests.quasiliteral-eem.296 for tests and examples.

Tests.quasiliteral-eem.296

Renamed from the bogus quasiquote to quasiliteral.
Added Balazs' errors as failing tests. 


--Hannes


https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Template_literals

Syntax
----------

`string text`

`string text line 1
 string text line 2`

`string text ${expression} string text`

tag `string text ${expression} string text`


Description
----------------

Template literals are enclosed by the back-tick (` `) (grave accent)
character instead of double or single quotes. Template literals can
contain place holders. These are indicated by the Dollar sign and
curly braces (${expression}). The expressions in the place holders and
the text between them get passed to a function. The default function
just concatenates the parts into a single string. If there is an
expression preceding the template literal (tag here),  the template
string is called "tagged template literal". In that case, the tag
expression (usually a function) gets called with the processed
template literal, which you can then manipulate before outputting. To
escape a back-tick in a template literal, put a backslash \ before the
back-tick.




--
_,,,^..^,,,_
best, Eliot


Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-dev] Re: [vwnc] Does anyone have a "new" string literal?

Eliot Miranda-2


On Tue, Feb 28, 2017 at 9:23 AM, DavidLeibs <[hidden email]> wrote:
 The ES6 design is sound and if you are in a hurry to get the capability it
is a great way to go. Once you start using it and get a taste for
quasi-literal little languages you will find that you want more.

Having a quasi-literal that let's you name the little language to parse you
open a very interesting door. After the dust settles you need a parser and
compiler framework that allows plugins at every stage.  You "MUST" have a
rich and stable AST and it must be usable as a quasi-literal because
transpilers abound. You wind up with transpiler code that is templated and
quite "Lispy".

At the end of the day you will finally let in Macros. I believe thatJulia
got all this right. They stick a "@" in front of their macro invocations so
you get rid of a lot of confusion. David Moon made the Julia macro system a
thing of true beauty. Perfection actually.

At the end of the day you want Smalltalk Compile Time "Staged Meta
Evaluation".

Still, at a minimum go with the ES6 design. Consider "<|" because " ` " is
hard to see.  Some fonts do a terrible job with it.  You could do both.

Agreed, and ` (back tick) is used in PetitParser for quasi-quote, so it would be lovely not to collide with it. 





--
View this message in context: http://forum.world.st/Re-vwnc-Does-anyone-have-a-new-string-literal-tp4667088p4936429.html
Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.




--
_,,,^..^,,,_
best, Eliot


Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-dev] Re: [vwnc] Does anyone have a "new" string literal?

Hannes Hirzel
In reply to this post by Eliot Miranda-2
On 2/27/17, Eliot Miranda <[hidden email]> wrote:

Hello Eliot

Thank you for your quick-hack how  an ES6 type template string
addition could look like.

Which setup do I need to have a look at it?

I used http://files.squeak.org/6.0alpha/Squeak6.0alpha-16963-32bit/
And got the error which is attached.

Best wishes

--Hannes

> Hi Hannes,
>
> On Mon, Feb 27, 2017 at 10:58 AM, H. Hirzel <[hidden email]>
> wrote:
>
>> On 2/27/17, DavidLeibs <[hidden email]> wrote:
>> > I realize this is a few years old but I wanted to give an update on my
>> > quest
>> > for quasi-literals.  I did a complete quasi-literal framework for Java
>> when
>> > I moved over to Oracle Labs.  It used the annotation compiler + a few
>> > tweeks
>> > to the scanner and parser.  You could extend the name space of the
>> > quasi-literal and have inline SQL or APL.  All the parsing, validation,
>> and
>> > code rewriting happened at compile time. We proposed it to the Java
>> Product
>> > guys and got ignored to death.
>> >
>> > As to the characters I did backquote for simple quasi-literal Strings
>> > and
>> > used Oxford Brackets for the quasi-literals with a language namespace.
>> > <|
>> > ...|>.  Back quote can be hard to see but is nice for String
>> > substitute.
>> >
>> > At this point in time the language that does it most right is
>> > JavaScript.
>> > Thanks Mark Miller for all the hard work over the years!
>>
>> Thanks David for following up this discussion.
>>
>> I wonder if just going for JavaScript ES6 solution (back-ticks) would
>> be the most straightforward thing to do?
>>
>
>  I did a quick hack in Squeak but didn't have time to finish is.  I wrote
> some tests.  Complex cases worked, small tricky cases broke the scanner.
>
> MCHttpRepository
> location: 'http://source.squeak.org/inbox'
> user: ''
> password: ''
>
> Compiler.quasiliteral-eem.280
>
> [Derived from Compiler-nice.279, and renamed from
>  the bogusly named Compiler.quasiquote-eem.248]
>
> Add a quasi-literal form for "string interpolation", that allows
> convenient embedding of expressions within a format string,
> and provides a convenient way of embedding literal strings
> within an alternative literal string syntax whose string delimiter
> is different.
>
> e.g.
> `hello [#cruel] world!`
> evaluates to
> 'hello cruel world'.
>
> `S1[B1]...SN[BN]SN+1`
>
> is equivalent to
> { 'S1'. [B1] value. ... 'SN'. [BN] value. 'SN+1' } concatenateQuasiLiteral
> where concatenateQuasiLiteral sends asString to each
> element and answers the concatenation of those elements.
>
> however, single-statement blocks are inlined, so e.g. the
> above `hello [#cruel] world!` is compiled as
> { 'hello '. #cruel. ' world!' } concatenateQuasiLiteral
>
> See e.g. Tests.quasiliteral-eem.296 for tests and examples.
>
> Tests.quasiliteral-eem.296
>
> Renamed from the bogus quasiquote to quasiliteral.
> Added Balazs' errors as failing tests.
>
>
>> --Hannes
>>
>>
>> https://developer.mozilla.org/en/docs/Web/JavaScript/
>> Reference/Template_literals
>>
>> Syntax
>> ----------
>>
>> `string text`
>>
>> `string text line 1
>>  string text line 2`
>>
>> `string text ${expression} string text`
>>
>> tag `string text ${expression} string text`
>>
>>
>> Description
>> ----------------
>>
>> Template literals are enclosed by the back-tick (` `) (grave accent)
>> character instead of double or single quotes. Template literals can
>> contain place holders. These are indicated by the Dollar sign and
>> curly braces (${expression}). The expressions in the place holders and
>> the text between them get passed to a function. The default function
>> just concatenates the parts into a single string. If there is an
>> expression preceding the template literal (tag here),  the template
>> string is called "tagged template literal". In that case, the tag
>> expression (usually a function) gets called with the processed
>> template literal, which you can then manipulate before outputting. To
>> escape a back-tick in a template literal, put a backslash \ before the
>> back-tick.
>>
>>
>
>
> --
> _,,,^..^,,,_
> best, Eliot
>



FileIn_Compiler.quasiliteral-eem.280_error_2017-03-01.png (325K) Download Attachment