Re: [NTG-context] Example of passing unexpanded text between \startfoo ... \stopfoo into Lua?

2009-06-30 Thread Kevin D. Robbins
Thanks, Wolfgang. My colleague and I are working with the method you
suggested, and we'll report back when we've made more progress. We're
getting there, but slowly.

We always appreciate your help and the help of others on the mailing list!

Kevin

On Thu, Jun 18, 2009 at 10:53 AM, Wolfgang Schuster 
schuster.wolfg...@googlemail.com wrote:


 Am 18.06.2009 um 18:21 schrieb Kevin D. Robbins:

  Hi Hans and others,

 I've been searching the mailing list and source code for one or more
 examples of passing unexpanded text appearing between a \startfoo ...
 \stopfoo block into Lua, but without luck. Is there such an example you
 could point me to?



 Something like this (if not give us more information)?

 \def\startcodeblock
  {\begingroup
   \setcatcodetable\luacatcodes
   \dodoubleempty\dostartcodeblock}

 \long\def\dostartcodeblock[#1][#2]#3\stopcodeblock
  {\modulecode{literateprogramming.codeblock([==[#3]==])}%
   \endgroup}

 \startmodulecode

 literateprogramming = literateprogramming or { }

 function literateprogramming.codeblock(content)
global.print(content)
 end

 \stopmodulecode

 \starttext

 \startcodeblock[language=c,file=foo.c, etc.][blockname]
 // This is the main routine...
 int main()
 {
   return 0;
 }
 \stopcodeblock

 \stoptext

 Wolfgang


 ___
 If your question is of interest to others as well, please add an entry to
 the Wiki!

 maillist : ntg-context@ntg.nl /
 http://www.ntg.nl/mailman/listinfo/ntg-context
 webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
 archive  : https://foundry.supelec.fr/projects/contextrev/
 wiki : http://contextgarden.net

 ___

___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : https://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___


Re: [NTG-context] Example of passing unexpanded text between \startfoo ... \stopfoo into Lua?

2009-06-30 Thread Kevin D. Robbins
There would be at least two results of the \start/\stop-codeblock: first,
the code would be pretty printed as you sugggested in the resulting program
documentation; second, the code would be written to an external source file
foo.c that could then be compiled with, for example, gcc.

Some other features of literate programming include replacement, where in
one code block you reference another that should be cut-and-pasted at the
point of reference in the resulting source file, and cross-references
between code blocks, where in the typeset program documentation each code
block is typeset with references to the other code blocks that use it.

Right now, we've got a prototype implementation that properly writes the
source files with replacements. In MkIV, right now, the cross-referencing
method is not working. We're eagerly (and patiently) waiting for the new
MkIV reference method that allows arbitrary userdata, for example, for
including a sequence number for code blocks typeset on the same page of the
program documentation.

Thanks for your suggestion,

Kevin

On Fri, Jun 19, 2009 at 3:49 AM, Matthijs Kooijman matth...@stdin.nlwrote:

 Hi Kevin,

  A colleague and I are experimenting with strategies to implement a
 literate
  programming module for ConTeXt, and we'd like to have something like
 Im not exactly sure what you're trying to achieve, but perhaps you could do
 this using a prettyprinter? A pretty printer gets passed each line in the
 \startfoo \stopfoo block and can change the line in any way it wants
 (including removing it). IIRC there is some minimal general preprocessing
 done, something with whitespace I think.

  \startcodeblock[language=c,file=foo.c, etc.][blockname]
  // This is the main routine...
  int main()
  {
 return 0;
  }
  \stopcodeblock
 Perhaps you could say a bit about what the above should output?

 Gr.

 Matthijs

 -BEGIN PGP SIGNATURE-
 Version: GnuPG v1.4.9 (GNU/Linux)

 iEYEARECAAYFAko7XxgACgkQz0nQ5oovr7wedwCZAei/RBocOnmSUdFACNA+qMlU
 yvYAoKl/dtAEsa5ZF7S5dl/h6mQxS/kh
 =nPdm
 -END PGP SIGNATURE-


 ___
 If your question is of interest to others as well, please add an entry to
 the Wiki!

 maillist : ntg-context@ntg.nl /
 http://www.ntg.nl/mailman/listinfo/ntg-context
 webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
 archive  : https://foundry.supelec.fr/projects/contextrev/
 wiki : http://contextgarden.net

 ___


___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : https://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___


Re: [NTG-context] Example of passing unexpanded text between \startfoo ... \stopfoo into Lua?

2009-06-19 Thread Matthijs Kooijman
Hi Kevin,

 A colleague and I are experimenting with strategies to implement a literate
 programming module for ConTeXt, and we'd like to have something like
Im not exactly sure what you're trying to achieve, but perhaps you could do
this using a prettyprinter? A pretty printer gets passed each line in the
\startfoo \stopfoo block and can change the line in any way it wants
(including removing it). IIRC there is some minimal general preprocessing
done, something with whitespace I think.

 \startcodeblock[language=c,file=foo.c, etc.][blockname]
 // This is the main routine...
 int main()
 {
return 0;
 }
 \stopcodeblock
Perhaps you could say a bit about what the above should output?

Gr.

Matthijs


signature.asc
Description: Digital signature
___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : https://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___


[NTG-context] Example of passing unexpanded text between \startfoo ... \stopfoo into Lua?

2009-06-18 Thread Kevin D. Robbins
Hi Hans and others,

I've been searching the mailing list and source code for one or more
examples of passing unexpanded text appearing between a \startfoo ...
\stopfoo block into Lua, but without luck. Is there such an example you
could point me to?

A colleague and I are experimenting with strategies to implement a literate
programming module for ConTeXt, and we'd like to have something like

\startcodeblock[language=c,file=foo.c, etc.][blockname]
// This is the main routine...
int main()
{
   return 0;
}
\stopcodeblock

We would appreciate any thoughts you have about how to implement such a
module.

Thanks,

Kevin
___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : https://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___


Re: [NTG-context] Example of passing unexpanded text between \startfoo ... \stopfoo into Lua?

2009-06-18 Thread Wolfgang Schuster


Am 18.06.2009 um 18:21 schrieb Kevin D. Robbins:


Hi Hans and others,

I've been searching the mailing list and source code for one or more  
examples of passing unexpanded text appearing between a  
\startfoo ... \stopfoo block into Lua, but without luck. Is there  
such an example you could point me to?



Something like this (if not give us more information)?

\def\startcodeblock
  {\begingroup
   \setcatcodetable\luacatcodes
   \dodoubleempty\dostartcodeblock}

\long\def\dostartcodeblock[#1][#2]#3\stopcodeblock
  {\modulecode{literateprogramming.codeblock([==[#3]==])}%
   \endgroup}

\startmodulecode

literateprogramming = literateprogramming or { }

function literateprogramming.codeblock(content)
global.print(content)
end

\stopmodulecode

\starttext

\startcodeblock[language=c,file=foo.c, etc.][blockname]
// This is the main routine...
int main()
{
   return 0;
}
\stopcodeblock

\stoptext

Wolfgang

___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : https://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___