"Data blocks" syntax specification draft
Mikhail V
mikhailwas at gmail.com
Mon May 21 22:49:34 EDT 2018
On Mon, May 21, 2018 at 3:48 PM, bartc <bc at freeuk.com> wrote:
>
> This is intended to be used inside actual Python programs?
>
> In that case code is normally displayed in fixed pitch, as it would normally
> be viewed in a code editor, even if part of a document.
>
> But I have to say it looks pretty terrible, and I can't see that it buys
> much over normal syntax.
Ha, here we go. Last time I have used fixed pitch font for work -
maybe 4 years ago.
(and IMO fixed pitch font plus specifically Python - I find quite a blasphemy)
So, you re right, of course in one sense: "///" looks terrible with
a fixed pitch font! That's so true, but also it is true that this ///
I well maybe change for something less font-sensitive.
And in all fonts other than fixed pitch it looks cute enough.
Simply speaking, if it was not for Python, I might propose something
like:
# t
# t
11 22 33
You get the point?
So basically all nice chars are already occupied.
Proposing Unicode symbols -- that will probably will be
dead on arrival (just remembering some of such past proposals).
Leaving out symbols could be an option as well.
Still the structure needs a syntactical entry point.
E.g.
data = ///
t
t
11 22 33
Hmm. not bad. But I must think about parsing as well.
> It's not clear what ///. is for, or why it's necessary (presumably you have
> to use ///. /// instead of /// ///).
"///." is meant to inherit the previous (parent) type:
/// t
/// .
/// .
is same as
/// t
/// t
/// t
So I can change types of all child nodes with one keystroke.
>
> The ///d dictionary example is ambiguous: can you have more than one
> key:value per line or not? If so, it would look like this:
>
> ///d "a" "b" "c" "d" "e" "f"
///d "a" "b" "c" "d" "e" "f"
Now better? :-)
Or compare these two:
{"a": "b", "c": "d", "e": "f"}
///d "a" "b" "c" "d" "e" "f"
I'd say, the second one is much better.
> Or do you also allow: date = /// with data following on the next line?
Yes, all this should be legal:
data = /// t
11 22 33
data =\
/// t
11 22 33
data = /// t 11 22 33
But this probly not good:
data = /// t 11 22 33 /// t 44 55
Because it will not be clear for the reader how further suite termination
happens.
More information about the Python-list
mailing list