Personal tools

Literate programming/Bird conversion via sed

From HaskellWiki

< Literate programming(Difference between revisions)
Jump to: navigation, search
(fix missing slashes and provide some html)
(Problems with no newline after last line of code)
 
Line 24: Line 24:
   
 
sed -nf bird2code.sed < code.lhs > code.tex
 
sed -nf bird2code.sed < code.lhs > code.tex
  +
  +
Note that the above sed script does not handle all input well. For example, if the last line of an input file is a line of bird-style code and there is no newline before end-of-file, than the last "/end{code}" is omitted. You are advised to consider using the alternative [[Literate programming/Bird conversion via awk|awk script]].
   
 
[[Category:Development tools]]
 
[[Category:Development tools]]

Latest revision as of 10:10, 7 November 2013

# bird2code.sed
/^>/ !p
/^>/ {
  i\
\\begin{code}

  :loop
  N
  /\n>[^\n]*$/{
    b loop
  }
  s/^> //
  s/\(\n\)> /\1/g
  s/\n$//
  a\
\\end{code}\

  p
}

should be run as:

sed -nf bird2code.sed < code.lhs > code.tex

Note that the above sed script does not handle all input well. For example, if the last line of an input file is a line of bird-style code and there is no newline before end-of-file, than the last "/end{code}" is omitted. You are advised to consider using the alternative awk script.