Re: n00b question on spacing

Discussion in 'Python' started by Mark Janssen, Jun 22, 2013.

  1. Mark Janssen

    Mark Janssen Guest

    > Also remember when entering long lines of text that strings concatenate
    > within parenthesis.
    > So,
    > ("a, b, c"
    > "d, e, f"
    > "g, h, i")
    >
    > Is the same as ("a, b, cd, e, fg, h, i")


    There was a recent discussion about this (under "implicit string
    concatenation"). It seems this is a part of the python language
    specification that was simply undefined. (A rule probably should be
    added to the lexer to make this explicit.)

    --
    MarkJ
    Tacoma, Washington
     
    Mark Janssen, Jun 22, 2013
    #1
    1. Advertising

  2. Mark Janssen

    alex23 Guest

    alex23, Jun 25, 2013
    #2
    1. Advertising

  3. Mark Janssen

    Mark Janssen Guest

    On Mon, Jun 24, 2013 at 4:48 PM, alex23 <> wrote:
    > On 23/06/2013 3:43 AM, Mark Janssen wrote:
    >>
    >> There was a recent discussion about this (under "implicit string
    >> concatenation"). It seems this is a part of the python language
    >> specification that was simply undefined.

    >
    >
    > It's part of the language reference, not an accidental artifact:
    > http://docs.python.org/2/reference/lexical_analysis.html#string-literal-concatenation


    When I say "specification", I mean "specified in the formal notation"
    (BNF, etc). "whitespace" is not defined (otherwise there would be a
    line in the token list for "linefeed" and "carriagereturn".

    --
    MarkJ
    Tacoma, Washington
     
    Mark Janssen, Jun 25, 2013
    #3
  4. Mark Janssen

    Robert Kern Guest

    On 2013-06-25 01:22, Mark Janssen wrote:
    > On Mon, Jun 24, 2013 at 4:48 PM, alex23 <> wrote:
    >> On 23/06/2013 3:43 AM, Mark Janssen wrote:
    >>>
    >>> There was a recent discussion about this (under "implicit string
    >>> concatenation"). It seems this is a part of the python language
    >>> specification that was simply undefined.

    >>
    >>
    >> It's part of the language reference, not an accidental artifact:
    >> http://docs.python.org/2/reference/lexical_analysis.html#string-literal-concatenation

    >
    > When I say "specification", I mean "specified in the formal notation"
    > (BNF, etc).


    There is quite a bit of Python's lexical analysis that is specified in places
    other than the formal notation. That does not mean it is undefined. It is well
    defined in the lexer code and the documentation. You suggest that a "rule
    probably should be added to the lexer to make this explicit." That is not
    necessary. The rule is already there.

    --
    Robert Kern

    "I have come to believe that the whole world is an enigma, a harmless enigma
    that is made terrible by our own mad attempt to interpret it as though it had
    an underlying truth."
    -- Umberto Eco
     
    Robert Kern, Jun 25, 2013
    #4
  5. On Tue, Jun 25, 2013 at 9:19 PM, Robert Kern <> wrote:
    > There is quite a bit of Python's lexical analysis that is specified in
    > places other than the formal notation. That does not mean it is undefined.
    > It is well defined in the lexer code and the documentation. You suggest that
    > a "rule probably should be added to the lexer to make this explicit." That
    > is not necessary. The rule is already there.


    Be careful; Python is not an implementation-defined language. Python
    has no "lexer code" - CPython does, and is probably what you're
    thinking of. (There are other languages that *are*
    implementation-defined, meaning that it *is* correct to talk about
    features in that way. Python just isn't one of them.) Sometimes a rule
    needs to be clarified to mandate something that was previously left up
    to the implementation; however, if that's the case, the rule would not
    be added to the lexer, but to the documentation.

    ChrisA
     
    Chris Angelico, Jun 25, 2013
    #5
  6. Mark Janssen

    Robert Kern Guest

    On 2013-06-25 12:48, Chris Angelico wrote:
    > On Tue, Jun 25, 2013 at 9:19 PM, Robert Kern <> wrote:
    >> There is quite a bit of Python's lexical analysis that is specified in
    >> places other than the formal notation. That does not mean it is undefined.
    >> It is well defined in the lexer code and the documentation. You suggest that
    >> a "rule probably should be added to the lexer to make this explicit." That
    >> is not necessary. The rule is already there.

    >
    > Be careful; Python is not an implementation-defined language. Python
    > has no "lexer code" - CPython does, and is probably what you're
    > thinking of.


    No, that's not what I am thinking of. I said that the rule is defined in both
    code and the documentation. Mark did suggest adding the rule to the lexer (for
    which he may have been thinking of just CPython, but you can take that up with
    him), but of course it is already there. I did not suggest that its presence in
    the lexer code (of any or all implementations) is sufficient, but the point is
    moot because it is already both explicitly implemented (several times) and
    clearly documented in the Python language reference.

    --
    Robert Kern

    "I have come to believe that the whole world is an enigma, a harmless enigma
    that is made terrible by our own mad attempt to interpret it as though it had
    an underlying truth."
    -- Umberto Eco
     
    Robert Kern, Jun 25, 2013
    #6
  7. On Tue, Jun 25, 2013 at 9:59 PM, Robert Kern <> wrote:
    > On 2013-06-25 12:48, Chris Angelico wrote:
    >>
    >> On Tue, Jun 25, 2013 at 9:19 PM, Robert Kern <>
    >> wrote:
    >>>
    >>> There is quite a bit of Python's lexical analysis that is specified in
    >>> places other than the formal notation. That does not mean it is
    >>> undefined.
    >>> It is well defined in the lexer code and the documentation. You suggest
    >>> that
    >>> a "rule probably should be added to the lexer to make this explicit."
    >>> That
    >>> is not necessary. The rule is already there.

    >>
    >>
    >> Be careful; Python is not an implementation-defined language. Python
    >> has no "lexer code" - CPython does, and is probably what you're
    >> thinking of.

    >
    >
    > No, that's not what I am thinking of. I said that the rule is defined in
    > both code and the documentation. Mark did suggest adding the rule to the
    > lexer (for which he may have been thinking of just CPython, but you can take
    > that up with him), but of course it is already there. I did not suggest that
    > its presence in the lexer code (of any or all implementations) is
    > sufficient, but the point is moot because it is already both explicitly
    > implemented (several times) and clearly documented in the Python language
    > reference.


    Sure, fair enough. I've just been skimming this thread, lately, so
    please don't take my post as implying that you're wrong-wrong-wrong...
    it's just something that seemed to want clarifying :)

    ChrisA
     
    Chris Angelico, Jun 25, 2013
    #7
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Yves S. Garret

    n00b question on spacing

    Yves S. Garret, Jun 21, 2013, in forum: Python
    Replies:
    1
    Views:
    91
    John Gordon
    Jun 21, 2013
  2. Gary Herron

    Re: n00b question on spacing

    Gary Herron, Jun 21, 2013, in forum: Python
    Replies:
    0
    Views:
    98
    Gary Herron
    Jun 21, 2013
  3. Terry Reedy

    Re: n00b question on spacing

    Terry Reedy, Jun 21, 2013, in forum: Python
    Replies:
    0
    Views:
    97
    Terry Reedy
    Jun 21, 2013
  4. Steven D'Aprano

    Re: n00b question on spacing

    Steven D'Aprano, Jun 22, 2013, in forum: Python
    Replies:
    0
    Views:
    101
    Steven D'Aprano
    Jun 22, 2013
  5. Dennis Lee Bieber

    Re: n00b question on spacing

    Dennis Lee Bieber, Jun 22, 2013, in forum: Python
    Replies:
    0
    Views:
    93
    Dennis Lee Bieber
    Jun 22, 2013
Loading...

Share This Page