#17778: preparse behaviour
----------------------------------+------------------------
       Reporter:  mantepse        |        Owner:
           Type:  enhancement     |       Status:  new
       Priority:  minor           |    Milestone:  sage-6.5
      Component:  user interface  |   Resolution:
       Keywords:  preparser       |    Merged in:
        Authors:                  |    Reviewers:
Report Upstream:  N/A             |  Work issues:
         Branch:                  |       Commit:
   Dependencies:                  |     Stopgaps:
----------------------------------+------------------------
Description changed by jdemeyer:

Old description:

> I noticed that apparently {{{preparse}}} treats a (multiline) string as
> comment, if the first non-whitespace character is a {{{#}}}:
> {{{
>     L = line.lstrip()
>     if len(L) > 0 and L[0] in ['#', '!']:
>         return line
> }}}
>
> I wonder why, because it is not unusual for a block of code to start with
> a comment.  I cannot see where comments in later lines are treated, so I
> have no idea how to fix this.

New description:

 I noticed that apparently {{{preparse}}} treats a (multiline) string as
 comment, if the first non-whitespace character is a {{{#}}}:
 {{{
     L = line.lstrip()
     if len(L) > 0 and L[0] in ['#', '!']:
         return line
 }}}

 I wonder why, because it is not unusual for a block of code to start with
 a comment.  I cannot see where comments in later lines are treated, so I
 have no idea how to fix this.

 The issue is that when calling preparse, if the first line is a comment
 (IDK why it would start with a `!`...) then it does not preparse anything
 further. Specifically, if there is a multiline statement that you want to
 preparse, but the first line is a comment, it doesn't do anything. For
 example:
 {{{
 # Comment
 def foo(x):
     R.<y> = QQ[]
     return x * y
 }}}
 would not get preparsed. Given the description, the preparser works on the
 assumption that the input is a specific self-contained line, but it seems
 to have the functionality to handle multi-line input. I think we should
 either see if there is a line break and then preparse the rest after the
 comment line or very explicitly state the assumption.

--

--
Ticket URL: <http://trac.sagemath.org/ticket/17778#comment:3>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to