Hello there
Has anyone thought about a language definition for the Lout document formatting system?
I may write one myself, but I'm a bit nervous about it since Lout has an awkwardly wide range of ways of indicating the beginnings and ends of things.
For example, a document header for a report might look like:
@SysInclude { tbl } @SysInclude { report }
@Report @Title { Blah blah } @Author { Alaric Snell-Pym (alaric@snell-systems.co.uk) } @Institution { Snell Systems } @InitialLanguage { EnglishUK } @DateLine { June, 2006 } @PageHeaders { Titles } @InitialSpace { tex } @Abstract { In this specification, we describe a blah blah blah. } //
...with the mysterious "//" ending the metadata section.
Things like chapters, appendices, sections, subsections, and so on are delimited like so:
@Section @Tag { documentcontrol } @Title { Document Control } @Begin
...content...
@End @Section
While paragraphs don't have an explicit end, they are just separated with "@PP" markers:
@PP This is a pargraph of text, blah blah blah
@PP This is the next paragraph! Whodathunk?
Figures, and many other such block-level objects, have no defined ending:
...text...
@Figure @Caption { The prototype } @IncludeGraphic prototype.eps
...text...
While bulleted lists have an explicit @EndList marker, but each list item is delimited with curly braces:
@BulletList
@ListItem { 3x resistor at 4p each }
@ListItem { 1x AVR micro-controller at @Sterling""1.92 each }
@ListItem { 1x IrDA transceiver module at @Sterling""2.33 each }
@ListItem { 1x 3.6v NiMH battery at @Sterling""2.62 each }
@ListItem { 2x LED at 25p each }
@ListItem { 1x Charging connector at 57p each }
@ListItem { 1x socket for AVR micro-controller at 5p each }
@ListItem { 1x PCB at 9.75 Euros each, or about @Sterling""6.67 }
@EndList
It's all rather messy! I suspect I'd be busy for days finding new ways to delimit scopes!
TIA,
ABS
-- Alaric Snell-Pym Work: http://www.snell-systems.co.uk/ Play: http://www.snell-pym.org.uk/alaric/ Blog: http://www.snell-pym.org.uk/categories/alaric/
On 7/8/2006, at 15:08, Alaric Snell-Pym wrote:
Has anyone thought about a language definition for the Lout document formatting system?
I may write one myself, but I'm a bit nervous about it since Lout has an awkwardly wide range of ways of indicating the beginnings and ends of things.
You can use look-ahead and look-behind in both the begin and end patterns in a language grammar.
So for example a paragraph would end when the next one starts, or a blank line, calling for a rule like:
{ name = "meta.paragraph.lout"; begin = "^@PP$"; end = "(?^(@PP)?$)"; }
Here the paragraph ends either when the line is blank or just contains @PP, but it does not parse the actual line.
On 13 Aug 2006, at 11:53 pm, Allan Odgaard wrote:
I may write one myself, but I'm a bit nervous about it since Lout has an awkwardly wide range of ways of indicating the beginnings and ends of things.
You can use look-ahead and look-behind in both the begin and end patterns in a language grammar.
[snip]
Clever, clever... I may have a stab at it, then!
ABS
-- Alaric Snell-Pym Work: http://www.snell-systems.co.uk/ Play: http://www.snell-pym.org.uk/alaric/ Blog: http://www.snell-pym.org.uk/categories/alaric/