From: <Jay...@us...> - 2000-05-24 19:19:19
|
>Did you know that there`s already a JPython-based project called >Python Server Pages? > http://www.ciobriefings.com/psp/ We're well beyond them already. > It looks like they use a very close variant of the idea >I just proposed > -- they appear to ignore indentation and use "end >block" exclusively to > denote the end of a block. That's what we have now. What we're discussing is how to go beyond that and handle complex nesting. This brings up an interesting question. Has everyone discussing this seen where we are now? If not, you can get a snapshot from CVS on sourceforge. What we have now is fine and can handle any needs. But for complex nested blocks, it could get a little messy with <% end %> blocks all over, and having to start and stop script blocks to induce the parser to recognize the nesting. So what we're talking about is how to handle multiple nested blocks without having to start a new script block for each level of indentation. Really, how best to have the parser recognize the indentation already within a block. Jay |
From: Chuck E. <ec...@mi...> - 2000-05-24 19:28:02
|
Jay...@us... wrote: > So what we're talking about is how to handle multiple nested blocks > without having to start a new script block for each level of > indentation. Really, how best to have the parser recognize the > indentation already within a block. Well stated. -Chuck |
From: Benjamin S. B. <ca...@ap...> - 2000-05-24 20:37:10
|
Today, Jay...@us... wrote: What we have now is fine and can handle any needs. But for complex nested blocks, it could get a little messy with <% end %> blocks all over, and having to start and stop script blocks to induce the parser to recognize the nesting. So what we're talking about is how to handle multiple nested blocks without having to start a new script block for each level of indentation. Really, how best to have the parser recognize the indentation already within a block. If I understand what you are after (and it is something I was after once) you want to extract scoping info from the text and apply it during some code generation phase? For example you could (as I am sure you know) up the indentation when ever you see a colon in python, unless your in a dictionary. You could use the properly scoped pass keyword to close out blocks. This or some variation of this scheme is all well and good if You can make it work and deal with odd ball cases like foo = lambda x: x * x foo(10) where the colon doesn't mean indent. You don't mind having to write very specific presentation <ul> <%for item in items:%> <li> &item; </li> </ul> where indentation really matters. And your UI people don't mind working in that environment (with out any kind of HTML editor which would most likely kill this kind of thing). Then there are other issues that may or not play a role in things like the ability to include and reuse chunks of code and HTML add different indentation levels in different files. Does my example capture the direction of this effort or am I missing something? -- Benjamin Saller <ca...@ap...> Technical Strategist AppliedTheory Where tire hits pavement on the Information super-highway, that's where my head is... |
From: Jay L. <js...@js...> - 2000-05-25 02:31:18
|
Benjamin Saller Bender wrote: > > Today, Jay...@us... wrote: > What we have now is fine and can handle any needs. But for complex > nested blocks, it could get a little messy with <% end %> blocks all > over, and having to start and stop script blocks to induce the parser > to recognize the nesting. > > So what we're talking about is how to handle multiple nested blocks > without having to start a new script block for each level of > indentation. Really, how best to have the parser recognize the > indentation already within a block. > > If I understand what you are after (and it is something I was after > once) you want to extract scoping info from the text and apply it during > some code generation phase? Yes, but on a very limited basis, in only one specific circumstance, right now. > > For example you could (as I am sure you know) up the indentation when > ever you see a colon in python, unless your in a dictionary. You could use > the properly scoped pass keyword to close out blocks. That's what we do now. But the colon only matters if it is at the end of a script block, ie : %>. > > This or some variation of this scheme is all well and good if > You can make it work and deal with odd ball cases like > foo = lambda x: x * x > foo(10) > where the colon doesn't mean indent. By only noting colons at the end of a block, it's easy to recognize correctly. > > You don't mind having to write very specific presentation > > <ul> > <%for item in items:%> > <li> &item; </li> > </ul> > > where indentation really matters. This is the case. But the syntax to get the item is <%= item %>. It's inside tags, so maybe that is the answer to your point below. But, you can always keep it all in a code block, and write to the output inside your code. > > And your UI people don't mind working in that environment (with > out any kind of HTML editor which would most likely kill this kind of > thing). Why no HTML editor? Everything is inside tags that the editors should ignore. (Seriously, enlighten me, as I've never used any HTML specific editor.) > > Then there are other issues that may or not play a role in things like the > ability to include and reuse chunks of code and HTML add different > indentation levels in different files. You can include files, wither in raw form that is not parsed for psp, or as psp code which is parsed and will be indented if it's included inside a block (At least it should, I haven't tested this.) > > Does my example capture the direction of this effort or am I missing > something? You're in the ballpark. This is what we're kicking around. But I urge you to take a look at what we've got and get a better feel. Jay |