Roku Developer Program

Developers and content creators—a complete solution for growing an audience directly.
cancel
Showing results for 
Search instead for 
Did you mean: 
EnTerr
Level 8

Request: allow {"": x, "hyphen-ated": y, ".sub": z} literals

My request is simple, it fits the 60-char limit of the subject line. But in more words: please extend the implementation of hash-dictionary literals, so that string literals can be used as key names, besides identifiers. ... and it wouldn't even require documentation change, since it is mum on what is allowed as key in AA literal. 8-)

If we get BNF-y and say interpreter allows for
HashLiteral = '{' KeyValPair  (PairSeparator KeyValPair)* PairSeparator? '}'
PairSeparator = (',' | '\n') '\n'*
KeyValPair = IDENT ':' Expression

(* then change previous to *)
KeyValPair = (IDENT | STRLIT) ':' Expression

That was awfully formal. I think better will be to show requested feature in illustrative example, so here:

myForm = {
"": "form"
action: "/search/ccc"
method: "get"
"accept-charset": "utf-8"
id: "searchform"
".nodes": [
{ "": "input",
id: "query",
name: "query",
"data-suggest": "search",
autocorrect: "off",
placeholder: "search"
}
]
}
0 Kudos
5 Replies
TheEndless
Level 7

Re: Request: allow {"": x, "hyphen-ated": y, ".sub": z} lite

You can use string literals as keys, just not inline like you've demonstrated. Something like this will work just fine:
myForm[".nodes"] = {}
myForm[".nodes"]["data-suggest"] = "search"
myForm[".nodes"]["A full sentence fragment with spaces and punctuation."] = "test"
My Channels: http://roku.permanence.com - Twitter: @TheEndlessDev
Instant Watch Browser (NetflixIWB), Aquarium Screensaver (AQUARIUM), Clever Clocks Screensaver (CLEVERCLOCKS), iTunes Podcasts (ITPC), My Channels (MYCHANNELS)
0 Kudos
EnTerr
Level 8

Re: Request: allow {"": x, "hyphen-ated": y, ".sub": z} lite

"TheEndless" wrote:
You can use string literals as keys, just not inline like you've demonstrated.
I know. But that's besides the point / not what i asked.
To me it seemed what i said was absolutely clear, considering subject line and example. I re-read what i wrote and while there is no technical mistake, I guess you missed the "extend the implementation of hash-dictionary literals" part, so i just highlighted it - hope that helps.

Bonus read: http://sdkdocs.roku.com/display/sdkdoc/ ... sConstants discusses what literals in BrSc are ("string literal", ["array", "literal"], {AA: "literal"} etc)
0 Kudos
Roku Employee
Roku Employee

Re: Request: allow {"": x, "hyphen-ated": y, ".sub": z} lite

Write a more detailed explanation of what it is you are asking. If the most experienced Brightscript developer on planet earth, (I'm not exaggerating) didn't understand it, then you need to be a little more verbose in your writing.

I think you are asking to use quoted strings as the keys in an Associative Array, i.e.

aa={"key":value}

?

Also, please endeavor to be more respectful in your tone when posting on the forum, this is your 2nd warning, there won't be a third.

- Joel
0 Kudos
EnTerr
Level 8

Re: Request: allow {"": x, "hyphen-ated": y, ".sub": z} lite

"RokuJoel" wrote:
Write a more detailed explanation of what it is you are asking. If the most experienced Brightscript developer on planet earth, (I'm not exaggerating) didn't understand it, then you need to be a little more verbose in your writing.

I think you are asking to use quoted strings as the keys in an Associative Array, i.e.
aa={"key":value}
?

Also, please endeavor to be more respectful in your tone when posting on the forum, this is your 2nd warning, there won't be a third.

- Joel

Sorry Joel - but what are you objecting about my tone above? Be specific, please.
I did not criticize TheEndless (nor does he need introduction... but if he ever needed one, here is praise from me viewtopic.php?f=28&t=64546&p=450261&hilit=TheEndless#p450261 ).

Yes, that's what i was asking about - {"key": value}. Perhaps i was too technical by showing BNF. Sorry if i overshot with jargon - that part implied understanding theory of parsing/compiler construction. Do tell where i did wrong and i will re-work.

TheEndless - if i offended you, let me know?
Now I wonder - was i unclear or were you asking what my motivation was, of using {".nodes": ...} literals vs building data step by step?
0 Kudos
TheEndless
Level 7

Re: Request: allow {"": x, "hyphen-ated": y, ".sub": z} lite

"EnTerr" wrote:
TheEndless - if i offended you, let me know?
Now I wonder - was i unclear or were you asking what my motivation was, of using {".nodes": ...} literals vs building data step by step?

No worries here. I misinterpreted "string literals" as meaning just that. I wasn't sure if you were asking for the ability to do it inline specifically, or if you didn't realize there were no limits to what you could actually use as a key.
My Channels: http://roku.permanence.com - Twitter: @TheEndlessDev
Instant Watch Browser (NetflixIWB), Aquarium Screensaver (AQUARIUM), Clever Clocks Screensaver (CLEVERCLOCKS), iTunes Podcasts (ITPC), My Channels (MYCHANNELS)
0 Kudos