diff --git a/_region_.log b/_region_.log new file mode 100644 index 0000000..adfa2ee --- /dev/null +++ b/_region_.log @@ -0,0 +1,848 @@ +This is pdfTeX, Version 3.1415926-1.40.11 (TeX Live 2010) (format=latex 2010.10.24) 3 DEC 2011 16:06 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**\nonstopmode\nofiles\PassOptionsToPackage{active,tightpage,auctex}{preview}\A +tBeginDocument{\ifx\ifPreview\undefined\RequirePackage[displaymath,floats,graph +ics,textmath,sections,footnotes]{preview}[2004/11/05]\fi} \input _region_.tex +(./_region_.tex !name(master.tex) +(/usr/local/texlive/2010/texmf-dist/tex/latex/base/article.cls +Document Class: article 2007/10/19 v1.4h Standard LaTeX document class +(/usr/local/texlive/2010/texmf-dist/tex/latex/base/size12.clo +File: size12.clo 2007/10/19 v1.4h Standard LaTeX file (size option) +) +\c@part=\count79 +\c@section=\count80 +\c@subsection=\count81 +\c@subsubsection=\count82 +\c@paragraph=\count83 +\c@subparagraph=\count84 +\c@figure=\count85 +\c@table=\count86 +\abovecaptionskip=\skip41 +\belowcaptionskip=\skip42 +\bibindent=\dimen102 +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/base/inputenc.sty +Package: inputenc 2008/03/30 v1.1d Input encoding file +\inpenc@prehook=\toks14 +\inpenc@posthook=\toks15 + +(/usr/local/texlive/2010/texmf-dist/tex/latex/base/latin9.def +File: latin9.def 2008/03/30 v1.1d Input encoding file +)) +(/usr/local/texlive/2010/texmf-dist/tex/latex/geometry/geometry.sty +Package: geometry 2010/07/13 v5.5 Page Geometry + +(/usr/local/texlive/2010/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 1999/03/16 v1.13 key=value parser (DPC) +\KV@toks@=\toks16 +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/oberdiek/ifpdf.sty +Package: ifpdf 2010/01/28 v2.1 Provides the ifpdf switch (HO) +Package ifpdf Info: pdfTeX in pdf mode not detected. +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/oberdiek/ifvtex.sty +Package: ifvtex 2010/03/01 v1.5 Switches for detecting VTeX and its modes (HO) +Package ifvtex Info: VTeX not detected. +) +\Gm@cnth=\count87 +\Gm@cntv=\count88 +\c@Gm@tempcnt=\count89 +\Gm@bindingoffset=\dimen103 +\Gm@wd@mp=\dimen104 +\Gm@odd@mp=\dimen105 +\Gm@even@mp=\dimen106 +\Gm@layoutwidth=\dimen107 +\Gm@layoutheight=\dimen108 +\Gm@layouthoffset=\dimen109 +\Gm@layoutvoffset=\dimen110 +\Gm@dimlist=\toks17 +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/amsmath/amsmath.sty +Package: amsmath 2000/07/18 v2.13 AMS math features +\@mathmargin=\skip43 + +For additional information on amsmath, use the `?' option. +(/usr/local/texlive/2010/texmf-dist/tex/latex/amsmath/amstext.sty +Package: amstext 2000/06/29 v2.01 + +(/usr/local/texlive/2010/texmf-dist/tex/latex/amsmath/amsgen.sty +File: amsgen.sty 1999/11/30 v2.0 +\@emptytoks=\toks18 +\ex@=\dimen111 +)) +(/usr/local/texlive/2010/texmf-dist/tex/latex/amsmath/amsbsy.sty +Package: amsbsy 1999/11/29 v1.2d +\pmbraise@=\dimen112 +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/amsmath/amsopn.sty +Package: amsopn 1999/12/14 v2.01 operator names +) +\inf@bad=\count90 +LaTeX Info: Redefining \frac on input line 211. +\uproot@=\count91 +\leftroot@=\count92 +LaTeX Info: Redefining \overline on input line 307. +\classnum@=\count93 +\DOTSCASE@=\count94 +LaTeX Info: Redefining \ldots on input line 379. +LaTeX Info: Redefining \dots on input line 382. +LaTeX Info: Redefining \cdots on input line 467. +\Mathstrutbox@=\box26 +\strutbox@=\box27 +\big@size=\dimen113 +LaTeX Font Info: Redeclaring font encoding OML on input line 567. +LaTeX Font Info: Redeclaring font encoding OMS on input line 568. +\macc@depth=\count95 +\c@MaxMatrixCols=\count96 +\dotsspace@=\muskip10 +\c@parentequation=\count97 +\dspbrk@lvl=\count98 +\tag@help=\toks19 +\row@=\count99 +\column@=\count100 +\maxfields@=\count101 +\andhelp@=\toks20 +\eqnshift@=\dimen114 +\alignsep@=\dimen115 +\tagshift@=\dimen116 +\tagwidth@=\dimen117 +\totwidth@=\dimen118 +\lineht@=\dimen119 +\@envbody=\toks21 +\multlinegap=\skip44 +\multlinetaggap=\skip45 +\mathdisplay@stack=\toks22 +LaTeX Info: Redefining \[ on input line 2666. +LaTeX Info: Redefining \] on input line 2667. +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/amsfonts/amssymb.sty +Package: amssymb 2009/06/22 v3.00 + +(/usr/local/texlive/2010/texmf-dist/tex/latex/amsfonts/amsfonts.sty +Package: amsfonts 2009/06/22 v3.00 Basic AMSFonts support +\symAMSa=\mathgroup4 +\symAMSb=\mathgroup5 +LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold' +(Font) U/euf/m/n --> U/euf/b/n on input line 96. +)) +(/usr/local/texlive/2010/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR) + +(/usr/local/texlive/2010/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2009/02/05 v1.0o Standard LaTeX Graphics (DPC,SPQR) + +(/usr/local/texlive/2010/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 1999/03/16 v1.09 sin cos tan (DPC) +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/latexconfig/graphics.cfg +File: graphics.cfg 2010/04/23 v1.9 graphics configuration of TeX Live +) +Package graphics Info: Driver file: dvips.def on input line 91. + +(/usr/local/texlive/2010/texmf-dist/tex/latex/graphics/dvips.def +File: dvips.def 1999/02/16 v3.0i Driver-dependant file (DPC,SPQR) +)) +\Gin@req@height=\dimen120 +\Gin@req@width=\dimen121 +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/float/float.sty +Package: float 2001/11/08 v1.3d Float enhancements (AL) +\c@float@type=\count102 +\float@exts=\toks23 +\float@box=\box28 +\@float@everytoks=\toks24 +\@floatcapt=\box29 +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/tools/array.sty +Package: array 2008/09/09 v2.4c Tabular extension package (FMi) +\col@sep=\dimen122 +\extrarowheight=\dimen123 +\NC@list=\toks25 +\extratabsurround=\skip46 +\backup@length=\skip47 +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty +(/usr/local/texlive/2010/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty +(/usr/local/texlive/2010/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.te +x +\pgfutil@everybye=\toks26 +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def +) (/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex +Package: pgfrcs 2008/02/20 v2.00 (rcs-revision 1.21) +)) +Package: pgf 2008/01/15 v2.00 (rcs-revision 1.12) + (/usr/local/texlive/2010/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty +(/usr/local/texlive/2010/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex +Package: pgfsys 2008/02/07 v2.00 (rcs-revision 1.31) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex +\pgfkeys@pathtoks=\toks27 +\pgfkeys@temptoks=\toks28 +) +\pgf@x=\dimen124 +\pgf@y=\dimen125 +\pgf@xa=\dimen126 +\pgf@ya=\dimen127 +\pgf@xb=\dimen128 +\pgf@yb=\dimen129 +\pgf@xc=\dimen130 +\pgf@yc=\dimen131 +\c@pgf@counta=\count103 +\c@pgf@countb=\count104 +\c@pgf@countc=\count105 +\c@pgf@countd=\count106 +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg +File: pgf.cfg 2008/01/13 (rcs-revision 1.6) +) +Package pgfsys Info: Driver file for pgf: pgfsys-dvips.def on input line 885. + +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-dvips.de +f +File: pgfsys-dvips.def 2007/12/12 (rcs-revision 1.19) + +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-p +ostscript.def +File: pgfsys-common-postscript.def 2008/02/07 (rcs-revision 1.18) +\pgf@objectcount=\count107 +))) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath. +code.tex +File: pgfsyssoftpath.code.tex 2008/01/23 (rcs-revision 1.6) +\pgfsyssoftpath@smallbuffer@items=\count108 +\pgfsyssoftpath@bigbuffer@items=\count109 +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol. +code.tex +File: pgfsysprotocol.code.tex 2006/10/16 (rcs-revision 1.4) +)) (/usr/local/texlive/2010/texmf-dist/tex/latex/xcolor/xcolor.sty +Package: xcolor 2007/01/21 v2.11 LaTeX color extensions (UK) + +(/usr/local/texlive/2010/texmf-dist/tex/latex/latexconfig/color.cfg +File: color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive +) +Package xcolor Info: Driver file: dvips.def on input line 225. +Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1337. +Package xcolor Info: Model `RGB' extended on input line 1353. +Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1355. +Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1356. +Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1357. +Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1358. +Package xcolor Info: Model `Gray' substituted by `gray' on input line 1359. +Package xcolor Info: Model `wave' substituted by `hsb' on input line 1360. +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex +Package: pgfcore 2008/01/15 v2.00 (rcs-revision 1.6) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex +\pgfmath@box=\box30 +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex +\pgfmath@stack=\toks29 +\c@pgfmath@parsecounta=\count110 +\c@pgfmath@parsecountb=\count111 +\c@pgfmath@parsecountc=\count112 +\pgfmath@parsex=\dimen132 +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/math/pgfmathoperations.code +.tex +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/math/pgfmathtrig.code.tex) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/math/pgfmathrnd.code.tex)) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/math/pgfmathbase.code.tex)) +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.co +de.tex +File: pgfcorepoints.code.tex 2008/02/03 (rcs-revision 1.13) +\pgf@picminx=\dimen133 +\pgf@picmaxx=\dimen134 +\pgf@picminy=\dimen135 +\pgf@picmaxy=\dimen136 +\pgf@pathminx=\dimen137 +\pgf@pathmaxx=\dimen138 +\pgf@pathminy=\dimen139 +\pgf@pathmaxy=\dimen140 +\pgf@xx=\dimen141 +\pgf@xy=\dimen142 +\pgf@yx=\dimen143 +\pgf@yy=\dimen144 +\pgf@zx=\dimen145 +\pgf@zy=\dimen146 +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconst +ruct.code.tex +File: pgfcorepathconstruct.code.tex 2008/02/13 (rcs-revision 1.14) +\pgf@path@lastx=\dimen147 +\pgf@path@lasty=\dimen148 +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage +.code.tex +File: pgfcorepathusage.code.tex 2008/01/23 (rcs-revision 1.11) +\pgf@shorten@end@additional=\dimen149 +\pgf@shorten@start@additional=\dimen150 +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.co +de.tex +File: pgfcorescopes.code.tex 2008/01/15 (rcs-revision 1.26) +\pgfpic=\box31 +\pgf@hbox=\box32 +\pgf@layerbox@main=\box33 +\pgf@picture@serial@count=\count113 +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicst +ate.code.tex +File: pgfcoregraphicstate.code.tex 2007/12/12 (rcs-revision 1.8) +\pgflinewidth=\dimen151 +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransform +ations.code.tex +File: pgfcoretransformations.code.tex 2008/02/04 (rcs-revision 1.10) +\pgf@pt@x=\dimen152 +\pgf@pt@y=\dimen153 +\pgf@pt@temp=\dimen154 +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.cod +e.tex +File: pgfcorequick.code.tex 2006/10/11 (rcs-revision 1.2) +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.c +ode.tex +File: pgfcoreobjects.code.tex 2006/10/11 (rcs-revision 1.2) +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathproce +ssing.code.tex +File: pgfcorepathprocessing.code.tex 2008/01/23 (rcs-revision 1.7) +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.co +de.tex +File: pgfcorearrows.code.tex 2007/06/07 (rcs-revision 1.8) +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.cod +e.tex +File: pgfcoreshade.code.tex 2007/12/10 (rcs-revision 1.9) +\pgf@max=\dimen155 +\pgf@sys@shading@range@num=\count114 +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.cod +e.tex +File: pgfcoreimage.code.tex 2008/01/15 (rcs-revision 1.1) +\pgfexternal@startupbox=\box34 +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.co +de.tex +File: pgfcorelayers.code.tex 2008/01/15 (rcs-revision 1.1) +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretranspare +ncy.code.tex +File: pgfcoretransparency.code.tex 2008/01/17 (rcs-revision 1.2) +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns. +code.tex +File: pgfcorepatterns.code.tex 2008/01/15 (rcs-revision 1.1) +))) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.cod +e.tex +File: pgfmoduleshapes.code.tex 2008/02/13 (rcs-revision 1.4) +\pgfnodeparttextbox=\box35 +\toks@savedmacro=\toks30 +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code. +tex +File: pgfmoduleplot.code.tex 2008/01/15 (rcs-revision 1.1) +\pgf@plotwrite=\write3 +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version +-0-65.sty +Package: pgfcomp-version-0-65 2007/07/03 v2.00 (rcs-revision 1.7) +\pgf@nodesepstart=\dimen156 +\pgf@nodesepend=\dimen157 +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version +-1-18.sty +Package: pgfcomp-version-1-18 2007/07/23 v2.00 (rcs-revision 1.1) +)) +(/usr/local/texlive/2010/texmf-dist/tex/latex/pgf/utilities/pgffor.sty +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex +Package: pgffor 2007/11/07 v2.00 (rcs-revision 1.8) +\pgffor@iter=\dimen158 +\pgffor@skip=\dimen159 +)) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.cod +e.tex +Package: tikz 2008/02/13 v2.00 (rcs-revision 1.27) + +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothan +dlers.code.tex +File: pgflibraryplothandlers.code.tex 2007/03/09 v2.00 (rcs-revision 1.9) +\pgf@plot@mark@count=\count115 +\pgfplotmarksize=\dimen160 +) +\tikz@lastx=\dimen161 +\tikz@lasty=\dimen162 +\tikz@lastxsaved=\dimen163 +\tikz@lastysaved=\dimen164 +\tikzleveldistance=\dimen165 +\tikzsiblingdistance=\dimen166 +\tikz@figbox=\box36 +\tikz@tempbox=\box37 +\tikztreelevel=\count116 +\tikznumberofchildren=\count117 +\tikznumberofcurrentchild=\count118 +\tikz@fig@count=\count119 + +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.cod +e.tex +File: pgfmodulematrix.code.tex 2008/01/15 (rcs-revision 1.1) +\pgfmatrixcurrentrow=\count120 +\pgfmatrixcurrentcolumn=\count121 +\pgf@matrix@numberofcolumns=\count122 +) +\tikz@expandcount=\count123 + +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie +s/tikzlibrarytopaths.code.tex +File: tikzlibrarytopaths.code.tex 2008/01/09 v2.00 (rcs-revision 1.1) +))) +(/usr/local/texlive/2010/texmf-dist/tex/latex/tools/enumerate.sty +Package: enumerate 1999/03/05 v3.00 enumerate extensions (DPC) +\@enLab=\toks31 +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/lm/lmodern.sty +Package: lmodern 2009/10/30 v1.6 Latin Modern Fonts +LaTeX Font Info: Overwriting symbol font `operators' in version `normal' +(Font) OT1/cmr/m/n --> OT1/lmr/m/n on input line 22. +LaTeX Font Info: Overwriting symbol font `letters' in version `normal' +(Font) OML/cmm/m/it --> OML/lmm/m/it on input line 23. +LaTeX Font Info: Overwriting symbol font `symbols' in version `normal' +(Font) OMS/cmsy/m/n --> OMS/lmsy/m/n on input line 24. +LaTeX Font Info: Overwriting symbol font `largesymbols' in version `normal' +(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 25. +LaTeX Font Info: Overwriting symbol font `operators' in version `bold' +(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 26. +LaTeX Font Info: Overwriting symbol font `letters' in version `bold' +(Font) OML/cmm/b/it --> OML/lmm/b/it on input line 27. +LaTeX Font Info: Overwriting symbol font `symbols' in version `bold' +(Font) OMS/cmsy/b/n --> OMS/lmsy/b/n on input line 28. +LaTeX Font Info: Overwriting symbol font `largesymbols' in version `bold' +(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 29. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal' +(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 31. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `normal' +(Font) OT1/cmss/m/n --> OT1/lmss/m/n on input line 32. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal' +(Font) OT1/cmr/m/it --> OT1/lmr/m/it on input line 33. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `normal' +(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 34. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold' +(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 35. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold' +(Font) OT1/cmss/bx/n --> OT1/lmss/bx/n on input line 36. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold' +(Font) OT1/cmr/bx/it --> OT1/lmr/bx/it on input line 37. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold' +(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 38. +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/base/fontenc.sty +Package: fontenc 2005/09/27 v1.99g Standard LaTeX package + +(/usr/local/texlive/2010/texmf-dist/tex/latex/base/t1enc.def +File: t1enc.def 2005/09/27 v1.99g Standard LaTeX file +LaTeX Font Info: Redeclaring font encoding T1 on input line 43. +)) +(/usr/local/texlive/2010/texmf-dist/tex/latex/base/textcomp.sty +Package: textcomp 2005/09/27 v1.99g Standard LaTeX package +Package textcomp Info: Sub-encoding information: +(textcomp) 5 = only ISO-Adobe without \textcurrency +(textcomp) 4 = 5 + \texteuro +(textcomp) 3 = 4 + \textohm +(textcomp) 2 = 3 + \textestimated + \textcurrency +(textcomp) 1 = TS1 - \textcircled - \t +(textcomp) 0 = TS1 (full) +(textcomp) Font families with sub-encoding setting implement +(textcomp) only a restricted character set as indicated. +(textcomp) Family '?' is the default used for unknown fonts. +(textcomp) See the documentation for details. +Package textcomp Info: Setting ? sub-encoding to TS1/1 on input line 71. + +(/usr/local/texlive/2010/texmf-dist/tex/latex/base/ts1enc.def +File: ts1enc.def 2001/06/05 v3.0e (jk/car/fm) Standard LaTeX file +) +LaTeX Info: Redefining \oldstylenums on input line 266. +Package textcomp Info: Setting cmr sub-encoding to TS1/0 on input line 281. +Package textcomp Info: Setting cmss sub-encoding to TS1/0 on input line 282. +Package textcomp Info: Setting cmtt sub-encoding to TS1/0 on input line 283. +Package textcomp Info: Setting cmvtt sub-encoding to TS1/0 on input line 284. +Package textcomp Info: Setting cmbr sub-encoding to TS1/0 on input line 285. +Package textcomp Info: Setting cmtl sub-encoding to TS1/0 on input line 286. +Package textcomp Info: Setting ccr sub-encoding to TS1/0 on input line 287. +Package textcomp Info: Setting ptm sub-encoding to TS1/4 on input line 288. +Package textcomp Info: Setting pcr sub-encoding to TS1/4 on input line 289. +Package textcomp Info: Setting phv sub-encoding to TS1/4 on input line 290. +Package textcomp Info: Setting ppl sub-encoding to TS1/3 on input line 291. +Package textcomp Info: Setting pag sub-encoding to TS1/4 on input line 292. +Package textcomp Info: Setting pbk sub-encoding to TS1/4 on input line 293. +Package textcomp Info: Setting pnc sub-encoding to TS1/4 on input line 294. +Package textcomp Info: Setting pzc sub-encoding to TS1/4 on input line 295. +Package textcomp Info: Setting bch sub-encoding to TS1/4 on input line 296. +Package textcomp Info: Setting put sub-encoding to TS1/5 on input line 297. +Package textcomp Info: Setting uag sub-encoding to TS1/5 on input line 298. +Package textcomp Info: Setting ugq sub-encoding to TS1/5 on input line 299. +Package textcomp Info: Setting ul8 sub-encoding to TS1/4 on input line 300. +Package textcomp Info: Setting ul9 sub-encoding to TS1/4 on input line 301. +Package textcomp Info: Setting augie sub-encoding to TS1/5 on input line 302. +Package textcomp Info: Setting dayrom sub-encoding to TS1/3 on input line 303. +Package textcomp Info: Setting dayroms sub-encoding to TS1/3 on input line 304. + +Package textcomp Info: Setting pxr sub-encoding to TS1/0 on input line 305. +Package textcomp Info: Setting pxss sub-encoding to TS1/0 on input line 306. +Package textcomp Info: Setting pxtt sub-encoding to TS1/0 on input line 307. +Package textcomp Info: Setting txr sub-encoding to TS1/0 on input line 308. +Package textcomp Info: Setting txss sub-encoding to TS1/0 on input line 309. +Package textcomp Info: Setting txtt sub-encoding to TS1/0 on input line 310. +Package textcomp Info: Setting futs sub-encoding to TS1/4 on input line 311. +Package textcomp Info: Setting futx sub-encoding to TS1/4 on input line 312. +Package textcomp Info: Setting futj sub-encoding to TS1/4 on input line 313. +Package textcomp Info: Setting hlh sub-encoding to TS1/3 on input line 314. +Package textcomp Info: Setting hls sub-encoding to TS1/3 on input line 315. +Package textcomp Info: Setting hlst sub-encoding to TS1/3 on input line 316. +Package textcomp Info: Setting hlct sub-encoding to TS1/5 on input line 317. +Package textcomp Info: Setting hlx sub-encoding to TS1/5 on input line 318. +Package textcomp Info: Setting hlce sub-encoding to TS1/5 on input line 319. +Package textcomp Info: Setting hlcn sub-encoding to TS1/5 on input line 320. +Package textcomp Info: Setting hlcw sub-encoding to TS1/5 on input line 321. +Package textcomp Info: Setting hlcf sub-encoding to TS1/5 on input line 322. +Package textcomp Info: Setting pplx sub-encoding to TS1/3 on input line 323. +Package textcomp Info: Setting pplj sub-encoding to TS1/3 on input line 324. +Package textcomp Info: Setting ptmx sub-encoding to TS1/4 on input line 325. +Package textcomp Info: Setting ptmj sub-encoding to TS1/4 on input line 326. +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/hyperref/hyperref.sty +Package: hyperref 2010/06/18 v6.81g Hypertext links for LaTeX + +(/usr/local/texlive/2010/texmf-dist/tex/generic/oberdiek/ltxcmds.sty +Package: ltxcmds 2010/04/26 v1.7 LaTeX kernel commands for general use (HO) +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty +Package: kvsetkeys 2010/03/01 v1.9 Key value parser (HO) + +(/usr/local/texlive/2010/texmf-dist/tex/generic/oberdiek/infwarerr.sty +Package: infwarerr 2010/04/08 v1.3 Providing info/warning/message (HO) +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/oberdiek/etexcmds.sty +Package: etexcmds 2010/01/28 v1.3 Prefix for e-TeX command names (HO) +Package etexcmds Info: Could not find \expanded. +(etexcmds) That can mean that you are not using pdfTeX 1.50 or +(etexcmds) that some package has redefined \expanded. +(etexcmds) In the latter case, load this package earlier. +)) +(/usr/local/texlive/2010/texmf-dist/tex/generic/oberdiek/pdfescape.sty +Package: pdfescape 2010/03/01 v1.9 Provides hex, PDF name and string conversion +s (HO) + +(/usr/local/texlive/2010/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty +Package: pdftexcmds 2010/04/01 v0.9 Utility functions of pdfTeX for LuaTeX (HO) + + +(/usr/local/texlive/2010/texmf-dist/tex/generic/oberdiek/ifluatex.sty +Package: ifluatex 2010/03/01 v1.3 Provides the ifluatex switch (HO) +Package ifluatex Info: LuaTeX not detected. +) +Package pdftexcmds Info: LuaTeX not detected. +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +)) +(/usr/local/texlive/2010/texmf-dist/tex/generic/ifxetex/ifxetex.sty +Package: ifxetex 2009/01/23 v0.5 Provides ifxetex conditional +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/oberdiek/hycolor.sty +Package: hycolor 2009/12/12 v1.6 Color options of hyperref/bookmark (HO) + +(/usr/local/texlive/2010/texmf-dist/tex/latex/oberdiek/xcolor-patch.sty +Package: xcolor-patch 2009/12/12 xcolor patch +)) +(/usr/local/texlive/2010/texmf-dist/tex/latex/oberdiek/letltxmacro.sty +Package: letltxmacro 2008/06/24 v1.3 Let assignment for LaTeX macros (HO) +) +\@linkdim=\dimen167 +\Hy@linkcounter=\count124 +\Hy@pagecounter=\count125 + +(/usr/local/texlive/2010/texmf-dist/tex/latex/hyperref/pd1enc.def +File: pd1enc.def 2010/06/18 v6.81g Hyperref: PDFDocEncoding definition (HO) +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/oberdiek/intcalc.sty +Package: intcalc 2007/09/27 v1.1 Expandable integer calculations (HO) +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/latexconfig/hyperref.cfg +File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/oberdiek/kvoptions.sty +Package: kvoptions 2010/02/22 v3.7 Keyval support for LaTeX options (HO) +) +Package hyperref Info: Hyper figures OFF on input line 3658. +Package hyperref Info: Link nesting OFF on input line 3663. +Package hyperref Info: Hyper index ON on input line 3666. +Package hyperref Info: Plain pages OFF on input line 3673. +Package hyperref Info: Backreferencing OFF on input line 3678. + +Implicit mode ON; LaTeX internals redefined +Package hyperref Info: Bookmarks ON on input line 3874. +(/usr/local/texlive/2010/texmf-dist/tex/latex/url/url.sty +\Urlmuskip=\muskip11 +Package: url 2006/04/12 ver 3.3 Verb mode for urls, etc. +) +LaTeX Info: Redefining \url on input line 4159. + +(/usr/local/texlive/2010/texmf-dist/tex/generic/oberdiek/bitset.sty +Package: bitset 2007/09/28 v1.0 Data type bit set (HO) + +(/usr/local/texlive/2010/texmf-dist/tex/generic/oberdiek/bigintcalc.sty +Package: bigintcalc 2007/11/11 v1.1 Expandable big integer calculations (HO) +)) +\Fld@menulength=\count126 +\Field@Width=\dimen168 +\Fld@charsize=\dimen169 +\Field@toks=\toks32 +Package hyperref Info: Hyper figures OFF on input line 5137. +Package hyperref Info: Link nesting OFF on input line 5142. +Package hyperref Info: Hyper index ON on input line 5145. +Package hyperref Info: backreferencing OFF on input line 5152. +Package hyperref Info: Link coloring OFF on input line 5157. +Package hyperref Info: Link coloring with OCG OFF on input line 5162. +Package hyperref Info: PDF/A mode OFF on input line 5167. +LaTeX Info: Redefining \ref on input line 5207. +LaTeX Info: Redefining \pageref on input line 5211. + +(/usr/local/texlive/2010/texmf-dist/tex/generic/oberdiek/atbegshi.sty +Package: atbegshi 2010/03/25 v1.12 At begin shipout hook (HO) +) +\Hy@abspage=\count127 +\c@Item=\count128 +\c@Hfootnote=\count129 +) +* hyperref using default driver hdvips * +(/usr/local/texlive/2010/texmf-dist/tex/latex/hyperref/hdvips.def +File: hdvips.def 2010/06/18 v6.81g Hyperref driver for dvips + +(/usr/local/texlive/2010/texmf-dist/tex/latex/hyperref/pdfmark.def +File: pdfmark.def 2010/06/18 v6.81g Hyperref definitions for pdfmark specials +\pdf@docset=\toks33 +\pdf@box=\box38 +\pdf@toks=\toks34 +\pdf@defaulttoks=\toks35 +\Fld@listcount=\count130 +\c@bookmark@seq@number=\count131 + +(/usr/local/texlive/2010/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty +Package: rerunfilecheck 2010/03/16 v1.6 Rerun checks for auxiliary files (HO) + +(/usr/local/texlive/2010/texmf-dist/tex/latex/oberdiek/atveryend.sty +Package: atveryend 2010/03/24 v1.5 Hooks at very end of document (HO) +Package atveryend Info: \enddocument detected (standard). +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/oberdiek/uniquecounter.sty +Package: uniquecounter 2009/12/18 v1.1 Provides unlimited unique counter (HO) +) +Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2 +71. +) +\Hy@SectionHShift=\skip48 +)) +(/usr/local/texlive/2010/texmf-dist/tex/latex/listings/listings.sty +\lst@mode=\count132 +\lst@gtempboxa=\box39 +\lst@token=\toks36 +\lst@length=\count133 +\lst@currlwidth=\dimen170 +\lst@column=\count134 +\lst@pos=\count135 +\lst@lostspace=\dimen171 +\lst@width=\dimen172 +\lst@newlines=\count136 +\lst@lineno=\count137 +\lst@maxwidth=\dimen173 + +(/usr/local/texlive/2010/texmf-dist/tex/latex/listings/lstmisc.sty +File: lstmisc.sty 2007/02/22 1.4 (Carsten Heinz) +\c@lstnumber=\count138 +\lst@skipnumbers=\count139 +\lst@framebox=\box40 +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/listings/listings.cfg +File: listings.cfg 2007/02/22 1.4 listings configuration +)) +Package: listings 2007/02/22 1.4 (Carsten Heinz) + +(/usr/local/texlive/2010/texmf-dist/tex/latex/tools/verbatim.sty +Package: verbatim 2003/08/22 v1.5q LaTeX2e package for verbatim enhancements +\every@verbatim=\toks37 +\verbatim@line=\toks38 +\verbatim@in@stream=\read1 +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty +Package: fancyvrb 2008/02/07 + +Style option: `fancyvrb' v2.7a, with DG/SPQR fixes, and firstline=lastline fix +<2008/02/07> (tvz) +\FV@CodeLineNo=\count140 +\FV@InFile=\read2 +\FV@TabBox=\box41 +\c@FancyVerbLine=\count141 +\FV@StepNumber=\count142 +\FV@OutFile=\write4 +) +No file _region_.aux. +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 94. +LaTeX Font Info: ... okay on input line 94. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 94. +LaTeX Font Info: ... okay on input line 94. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 94. +LaTeX Font Info: ... okay on input line 94. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 94. +LaTeX Font Info: ... okay on input line 94. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 94. +LaTeX Font Info: ... okay on input line 94. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 94. +LaTeX Font Info: ... okay on input line 94. +LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 94. +LaTeX Font Info: Try loading font information for TS1+cmr on input line 94. +(/usr/local/texlive/2010/texmf-dist/tex/latex/base/ts1cmr.fd +File: ts1cmr.fd 1999/05/25 v2.5h Standard LaTeX font definitions +) +LaTeX Font Info: ... okay on input line 94. +LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 94. +LaTeX Font Info: ... okay on input line 94. +LaTeX Font Info: Try loading font information for T1+lmr on input line 94. + +(/usr/local/texlive/2010/texmf-dist/tex/latex/lm/t1lmr.fd +File: t1lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +(/Applications/Aquamacs.app/Contents/Resources/lisp/aquamacs/edit-modes/auctex/ +latex/preview.sty +Package: preview 2010/02/14 11.86 (AUCTeX/preview-latex) + +(/Applications/Aquamacs.app/Contents/Resources/lisp/aquamacs/edit-modes/auctex/ +latex/prtightpage.def +\PreviewBorder=\dimen174 +) +(/Applications/Aquamacs.app/Contents/Resources/lisp/aquamacs/edit-modes/auctex/ +latex/prauctex.def +No auxiliary output files. + + +\hbadness=\count143 +\hfuzz=\dimen175 + +(/Applications/Aquamacs.app/Contents/Resources/lisp/aquamacs/edit-modes/auctex/ +latex/prauctex.cfg)) +(/Applications/Aquamacs.app/Contents/Resources/lisp/aquamacs/edit-modes/auctex/ +latex/prfootnotes.def) +\pr@snippet=\count144 +\pr@box=\box42 +\pr@output=\toks39 + +Preview: Fontsize 12pt +) +*geometry* driver: auto-detecting +*geometry* detected driver: dvips +*geometry* verbose mode - [ preamble ] result: +* driver: dvips +* paper: letterpaper +* layout: +* layoutoffset:(h,v)=(0.0pt,0.0pt) +* modes: +* h-part:(L,W,R)=(72.26999pt, 469.75502pt, 72.26999pt) +* v-part:(T,H,B)=(72.26999pt, 650.43001pt, 72.26999pt) +* \paperwidth=614.295pt +* \paperheight=794.96999pt +* \textwidth=469.75502pt +* \textheight=650.43001pt +* \oddsidemargin=0.0pt +* \evensidemargin=0.0pt +* \topmargin=-37.0pt +* \headheight=12.0pt +* \headsep=25.0pt +* \topskip=12.0pt +* \footskip=30.0pt +* \marginparwidth=35.0pt +* \marginparsep=10.0pt +* \columnsep=10.0pt +* \skip\footins=10.8pt plus 4.0pt minus 2.0pt +* \hoffset=0.0pt +* \voffset=0.0pt +* \mag=1000 +* \@twocolumnfalse +* \@twosidefalse +* \@mparswitchfalse +* \@reversemarginfalse +* (1in=72.27pt=25.4mm, 1cm=28.453pt) + +\AtBeginShipoutBox=\box43 +Package hyperref Info: Link coloring OFF on input line 94. +(/usr/local/texlive/2010/texmf-dist/tex/latex/hyperref/nameref.sty +Package: nameref 2010/04/30 v2.40 Cross-referencing by name of section + +(/usr/local/texlive/2010/texmf-dist/tex/latex/oberdiek/refcount.sty +Package: refcount 2008/08/11 v3.1 Data extraction from references (HO) +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/oberdiek/gettitlestring.sty +Package: gettitlestring 2009/12/18 v1.3 Cleanup title references (HO) +) +\c@section@level=\count145 +) +LaTeX Info: Redefining \ref on input line 94. +LaTeX Info: Redefining \pageref on input line 94. +LaTeX Info: Redefining \nameref on input line 94. + + +Package hyperref Warning: Rerun to get /PageLabels entry. + +\c@lstlisting=\count146 + !name(ocaml_for_scientists.tex) !offset(-96) +! Preview: Snippet 1 started. +<-><-> + +l.97 \subsection + {Ocaml for scientists} +Not a real error. + +Preview: Tightpage -32891 -32891 32891 32891 +! Preview: Snippet 1 ended.(645227+0x30785865). +<-><-> + +l.97 \subsection{Ocaml for scientists} + +Not a real error. + +[1 + +] +LaTeX Font Info: Try loading font information for TS1+lmr on input line 100. + + (/usr/local/texlive/2010/texmf-dist/tex/latex/lm/ts1lmr.fd +File: ts1lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +LaTeX Font Info: Try loading font information for T1+lmtt on input line 103. + + +(/usr/local/texlive/2010/texmf-dist/tex/latex/lm/t1lmtt.fd +File: t1lmtt.fd 2009/10/30 v1.6 Font defs for Latin Modern +) + !name(master.tex) !offset(4857) +Package atveryend Info: Empty hook `BeforeClearDocument' on input line 187. +Package atveryend Info: Empty hook `AfterLastShipout' on input line 187. +Package atveryend Info: Empty hook `AtVeryEndDocument' on input line 187. + ) +Here is how much of TeX's memory you used: + 14533 strings out of 493748 + 238319 string characters out of 3143568 + 321760 words of memory out of 3000000 + 17529 multiletter control sequences out of 15000+200000 + 20702 words of font info for 24 fonts, out of 3000000 for 9000 + 714 hyphenation exceptions out of 8191 + 47i,5n,49p,582b,336s stack positions out of 5000i,500n,10000p,200000b,50000s + +Output written on _region_.dvi (1 page, 4872 bytes). diff --git a/_region_.prv/tmp187064Fx/preview.ps b/_region_.prv/tmp187064Fx/preview.ps new file mode 100644 index 0000000..a0e3fee Binary files /dev/null and b/_region_.prv/tmp187064Fx/preview.ps differ diff --git a/_region_.prv/tmp187064TZ/preview.ps b/_region_.prv/tmp187064TZ/preview.ps new file mode 100644 index 0000000..77d9cbe Binary files /dev/null and b/_region_.prv/tmp187064TZ/preview.ps differ diff --git a/_region_.prv/tmp18706s8x/preview.ps b/_region_.prv/tmp18706s8x/preview.ps new file mode 100644 index 0000000..89f5bf5 Binary files /dev/null and b/_region_.prv/tmp18706s8x/preview.ps differ diff --git a/_region_.synctex.gz b/_region_.synctex.gz new file mode 100644 index 0000000..1ec3127 Binary files /dev/null and b/_region_.synctex.gz differ diff --git a/_region_.tex b/_region_.tex new file mode 100644 index 0000000..0319e0b --- /dev/null +++ b/_region_.tex @@ -0,0 +1,257 @@ +\message{ !name(master.tex)}%%% master.tex --- + +%% Author: bob@bobmatoMacBook-Pro.local +%% Version: $Id: ocaml-hacker.tex,v 0.0 2011/10/23 02:58:53 bob Exp$ + + + +\documentclass[12pt,a4paper]{article} +% \documentstyle{book} +\usepackage[latin9]{inputenc} +\usepackage[letterpaper]{geometry} +\geometry{verbose,tmargin=1in,bmargin=1in,lmargin=1in,rmargin=1in} +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{graphicx} +\usepackage{float} +\usepackage{array} +\usepackage{tikz} +\usepackage{enumerate} +%% for underscore _ work +\usepackage{lmodern} +\usepackage[T1]{fontenc} +\usepackage{textcomp} +\usepackage{hyperref} + +\usepackage{listings} +\usepackage{verbatim} +\usepackage{color} +\usepackage{fancyvrb} +\usepackage{wasysym} +% seems conflict with differnt packages ,fancybox,calc} +% \usepackage{xcolor} + +% \newenvironment{inverseverbatim}{\VerbatimEnvironment% +% \noindent +% % {\columnwidth-\leftmargin-\rightmargin-2\fboxsep-2\fboxrule-4pt} +% \begin{Sbox} +% \begin{minipage}{\linewidth-2\fboxsep-2\fboxrule-4pt} +% \begin{Verbatim} +% } +% {% +% \end{Verbatim} +% \end{minipage} +% \end{Sbox} +% \fcolorbox{green}{black}{\TheSbox} +% } + +% \newenvironment{inverseverbatim}{\begin{Verbatim}} {\end{Verbatim}} + +\makeatletter +\def\inverseverbatim{% + \color{red}\scriptsize + \def\verbatim@processline{% + {\setbox0=\hbox{\the\verbatim@line}% + \hsize=\wd0 \the\verbatim@line\par}}% + \@minipagetrue + \@tempswatrue + \@totalleftmargin\z@ + \setbox0=\vbox\bgroup \verbatim +} +\def\endinverseverbatim{% + \endverbatim + \unskip\setbox0=\lastbox + \egroup + \colorbox{white}{\box0}% +} + \makeatother + + +% \newenvironment{bluecode}{\Verbatim[fomartcom=\color{blue}]}{\endVerbatim} + +% \lstset{{[Objective]Caml}} + + +%% end + +% \usepackage{lstset} +% New commands serve as shorthand for frequently used command combinations. +\newcommand{\ind}[1]{\mathbf{1}\left(#1\right)} +\newcommand{\bx}{\mathbf{x}} +\newcommand{\E}{\mathbf{E}} + +\definecolor{MyDarkBlue}{rgb}{0,0.08,0.45} + +\DefineVerbatimEnvironment{bluecode}{Verbatim}{formatcom=\color{blue},fontsize=\scriptsize} +\DefineVerbatimEnvironment{redcode}{Verbatim}{formatcom=\color{red},fontsize=\scriptsize} +\DefineVerbatimEnvironment{bluetext}{Verbatim}{formatcom=\color{MyDarkBlue},fontsize=\scriptsize} + +\newcommand{\ChangeLine}[1]{% +\ifodd\value{FancyVerbLine}% +\textcolor{red}{#1}\else\textcolor{blue}{#1}\fi} + + + +\DefineVerbatimEnvironment{alternate}{Verbatim}{formatcom=\renewcommand{\FancyVerbFormatLine}{\ChangeLine},fontsize=\scriptsize}{} +%% \usepackage[debugshow,final]{graphics} +%% \revision$Header: /Users/bob/SourceCode/Notes/ocaml-hacker.tex,v 0.0 2011/10/23 02:58:53 bob Exp$ +\def\dashfill{\cleaders\hbox{-}\hfill} + +\begin{document} + +\message{ !name(ocaml-yacc.tex) !offset(-102) } + + + +\begin{enumerate} +\item syntax \\ + + \begin{bluetext} + % {header + % } + %% + Grammar rules + %% + trailer + \end{bluetext} + +A tiny example as follows (It has a subtle bug, readers should find it) + \begin{bluecode} + +% { + open Printf + let parse_error s = + print_endline "error\n"; + print_endline s ; + flush stdout +%} + + +%token NUM +%token PLUS MINUS MULTIPLY DIVIDE CARET UMINUS +%token NEWLINE + +%start input +%type input +%type exp +%% /* rules and actions */ + +input: /* empty */ {} + | input line {} +; + +line: NEWLINE {} + |exp NEWLINE {printf "\t%.10g\n" $1 ; flush stdout} +; + +exp: NUM { $1 } + |exp exp PLUS {$1 +. $2 } + |exp exp MINUS {$1 -. $2 } + |exp exp MULTIPLY {$1 *. $2 } + |exp exp DIVIDE {$1 /. $2 } + |exp exp CARET {$1 ** $2 } + |exp UMINUS {-. $1 } +; + +%% +\end{bluecode} + +Notice that start non-terminal can be given \textit{several}, then you will +have a different .mli file, notice that it's different from ocamllex, +ocamlyacc will generate a .mli file, so here we get the output +interface as follows: + +\begin{bluecode} +type token = + | NUM of (float) + | PLUS + | MINUS + | MULTIPLY + | DIVIDE + | CARET + | UMINUS + | NEWLINE +val input : + (Lexing.lexbuf -> token) -> Lexing.lexbuf -> unit +val exp : + (Lexing.lexbuf -> token) -> Lexing.lexbuf -> float +\end{bluecode} + + +first gammar +\begin{bluetext} + input : /*empty*/ {} | input line {}; +\end{bluetext} +Notice here we \textit{preferred left-recursive} in yacc. empty corresponds +Ctrl-d. +\begin{bluetext} + exp : NUM | exp exp PLUS | exp exp MINUS ... ; +\end{bluetext} + +Here is our lexer +\begin{bluetext} +{ + open Rpcalc + open Printf + let first = ref true +} +let digit = ['0'-'9'] +rule token = parse + |[' ' '\t' ] {token lexbuf} + |'\n' {NEWLINE} + | (digit+ | "." digit+ | digit+ "." digit*) as num + {NUM (float_of_string num)} + |'+' {PLUS} + |'-' {MINUS} + |'*' {MULTIPLY} + |'/' {DIVIDE} + |'^' {CARET} + |'n' {UMINUS} + |_ as c {printf "unrecognized char %c" c ; token lexbuf} + |eof { + if !first then begin first := false; NEWLINE end + else raise End_of_file } + + +{ + let main () = + let file = Sys.argv.(1) in + let chan = open_in file in + try + let lexbuf = Lexing.from_channel chan in + while true do + Rpcalc.input token lexbuf + done + with End_of_file -> close_in chan + + let _ = Printexc.print main () + +} +\end{bluetext} + +we write driver function in lexer for convenience, since lexer depends +on yacc. \textit{Printex.print} +\item precedence associatitvity \\ + operator precedence is determined by the line ordering of the + declarations; + \textit{\%prec} in the grammar section, the \textit{\%prec} simply + instructs ocamlyacc that the rule \textit{|Minus exp } has the same + precedence as NEG + +\item error recovery \\ + by default, the parser function raises exception after calling \textit{parse\_error} +\end{enumerate} +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "master" +%%% End: + +\message{ !name(master.tex) !offset(61) } + +\end{document} + + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "master" +%%% End: diff --git a/auto/_region_.el b/auto/_region_.el new file mode 100644 index 0000000..472c5cc --- /dev/null +++ b/auto/_region_.el @@ -0,0 +1,38 @@ +(TeX-add-style-hook "_region_" + (lambda () + (LaTeX-add-environments + "inverseverbatim") + (TeX-add-symbols + '("ChangeLine" 1) + '("ind" 1) + "bx" + "E" + "dashfill") + (TeX-run-style-hooks + "wasysym" + "fancyvrb" + "color" + "verbatim" + "listings" + "hyperref" + "textcomp" + "fontenc" + "T1" + "lmodern" + "enumerate" + "tikz" + "array" + "float" + "graphicx" + "amssymb" + "amsmath" + "geometry" + "letterpaper" + "inputenc" + "latin9" + "latex2e" + "art12" + "article" + "12pt" + "a4paper"))) + diff --git a/auto/blogs.el b/auto/blogs.el new file mode 100644 index 0000000..adfee80 --- /dev/null +++ b/auto/blogs.el @@ -0,0 +1,5 @@ +(TeX-add-style-hook "blogs" + (lambda () + (LaTeX-add-labels + "sec:ocaml-blogs"))) + diff --git a/auto/caltech_ocaml.el b/auto/caltech_ocaml.el new file mode 100644 index 0000000..bbd7a51 --- /dev/null +++ b/auto/caltech_ocaml.el @@ -0,0 +1,5 @@ +(TeX-add-style-hook "caltech_ocaml" + (lambda () + (LaTeX-add-labels + "sec:caltech-ocaml-book"))) + diff --git a/auto/developing_application_with_ocaml.el b/auto/developing_application_with_ocaml.el new file mode 100644 index 0000000..ff19ffc --- /dev/null +++ b/auto/developing_application_with_ocaml.el @@ -0,0 +1,5 @@ +(TeX-add-style-hook "developing_application_with_ocaml" + (lambda () + (LaTeX-add-labels + "sec:chap7-devel-tools"))) + diff --git a/auto/godi.el b/auto/godi.el new file mode 100644 index 0000000..c37158d --- /dev/null +++ b/auto/godi.el @@ -0,0 +1,5 @@ +(TeX-add-style-hook "godi" + (lambda () + (LaTeX-add-labels + "sec:godi"))) + diff --git a/auto/hol_light.el b/auto/hol_light.el new file mode 100644 index 0000000..643e2e1 --- /dev/null +++ b/auto/hol_light.el @@ -0,0 +1,5 @@ +(TeX-add-style-hook "hol_light" + (lambda () + (LaTeX-add-labels + "sec:hol-light"))) + diff --git a/auto/master.el b/auto/master.el new file mode 100644 index 0000000..e5dff32 --- /dev/null +++ b/auto/master.el @@ -0,0 +1,89 @@ +(TeX-add-style-hook "master" + (lambda () + (LaTeX-add-environments + "inverseverbatim") + (LaTeX-add-labels + "sec:parsing-lexing-1" + "sec:ocamlyacc" + "sec:camlp4" + "sec:bolt" + "sec:mikmatch" + "sec:pcre" + "sec:objsize" + "sec:pa-do" + "sec:caml-inspect" + "sec:ocamlgraph" + "sec:pa-monad" + "sec:cont-delim-cont" + "sec:runtime" + "sec:gc" + "sec:ocamlrun" + "sec:compl-lang-feat" + "sec:subtle-bugs" + "sec:inter-with-c") + (TeX-add-symbols + '("ChangeLine" 1) + '("ind" 1) + "bx" + "E" + "dashfill") + (TeX-run-style-hooks + "wasysym" + "fancyvrb" + "color" + "verbatim" + "listings" + "hyperref" + "textcomp" + "fontenc" + "T1" + "lmodern" + "enumerate" + "tikz" + "array" + "float" + "graphicx" + "amssymb" + "amsmath" + "geometry" + "letterpaper" + "inputenc" + "latin9" + "latex2e" + "art12" + "article" + "12pt" + "a4paper" + "./ob" + "./godi" + "./of" + "./toplevel" + "./lex" + "./ocaml-lex" + "./ocaml-yacc" + "./camlp4/camlp4_tutorial" + "./camlp4/revised_syntax" + "./camlp4/experiment" + "./camlp4/extensible_parser" + "./camlp4/jake_blog" + "./library/mikmatch" + "./library/pcre" + "./library/caml-inspect" + "./library/ocaml-graph" + "./module-lang" + "./library/monad" + "./continuations/cont" + "./runtime/runtime" + "./runtime/gc" + "./lang/stream" + "./c/M4" + "./books/developing_application_with_ocaml" + "./books/ocaml_for_scientists" + "./books/caltech_ocaml" + "./books/the_functional_approach_to_programming" + "./books/practical_ocaml" + "./books/hol_light" + "./books/unix_system_programming_in_ocaml" + "trival_tricks" + "blogs"))) + diff --git a/auto/ocaml_for_scientists.el b/auto/ocaml_for_scientists.el new file mode 100644 index 0000000..eb44524 --- /dev/null +++ b/auto/ocaml_for_scientists.el @@ -0,0 +1,5 @@ +(TeX-add-style-hook "ocaml_for_scientists" + (lambda () + (LaTeX-add-labels + "sec:ocaml-scientists"))) + diff --git a/auto/practical_ocaml.el b/auto/practical_ocaml.el new file mode 100644 index 0000000..10819b7 --- /dev/null +++ b/auto/practical_ocaml.el @@ -0,0 +1,5 @@ +(TeX-add-style-hook "practical_ocaml" + (lambda () + (LaTeX-add-labels + "sec:practical-ocaml"))) + diff --git a/auto/the_functional_approach_to_programming.el b/auto/the_functional_approach_to_programming.el new file mode 100644 index 0000000..9df3d18 --- /dev/null +++ b/auto/the_functional_approach_to_programming.el @@ -0,0 +1,5 @@ +(TeX-add-style-hook "the_functional_approach_to_programming" + (lambda () + (LaTeX-add-labels + "sec:funct-appr-progr"))) + diff --git a/auto/trival_tricks.el b/auto/trival_tricks.el new file mode 100644 index 0000000..5c9dfc1 --- /dev/null +++ b/auto/trival_tricks.el @@ -0,0 +1,5 @@ +(TeX-add-style-hook "trival_tricks" + (lambda () + (LaTeX-add-labels + "sec:tricks"))) + diff --git a/auto/unix_system_programming_in_ocaml.el b/auto/unix_system_programming_in_ocaml.el new file mode 100644 index 0000000..f431dda --- /dev/null +++ b/auto/unix_system_programming_in_ocaml.el @@ -0,0 +1,7 @@ +(TeX-add-style-hook "unix_system_programming_in_ocaml" + (lambda () + (LaTeX-add-labels + "sec:unix-syst-progr" + "sec:chap1" + "sec:chap2"))) + diff --git a/blogs.log b/blogs.log new file mode 100644 index 0000000..23f91fc --- /dev/null +++ b/blogs.log @@ -0,0 +1,753 @@ +This is pdfTeX, Version 3.1415926-1.40.11 (TeX Live 2010) (format=latex 2010.10.24) 3 DEC 2011 11:40 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**\input blogs.tex +(./blogs.tex +! Undefined control sequence. +l.2 \subsection + {ocaml blogs} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + + +! LaTeX Error: Missing \begin{document}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.2 \subsection{o + caml blogs} +You're in trouble here. Try typing to proceed. +If that doesn't work, type X to quit. + +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no s in font nullfont! +! Undefined control sequence. +l.4 \href + {http://ygrek.org.ua/p/ocaml.html}{ygrek} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no k in font nullfont! +! Undefined control sequence. +l.5 \href + {http://elehack.net/michael/blog/}{michal} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +! Undefined control sequence. +l.6 \href + {http://eigenclass.org/R2/}{eigenclass} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no R in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +! Undefined control sequence. +l.7 \href + {http://syntaxexclamation.wordpress.com/}{syntax} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no x in font nullfont! +! Undefined control sequence. +l.8 \href + {http://martin.jambon.free.fr/ocaml.html}{jambon} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no j in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no j in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +! Undefined control sequence. +l.9 \href + {http://www.x9c.fr/}{Xavier Clerc} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no 9 in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no X in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no c in font nullfont! +! Undefined control sequence. +l.10 \href + {http://www.pps.jussieu.fr/~li/}{Zheng li} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no j in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no Z in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +! Undefined control sequence. +l.11 \href + {http://pauillac.inria.fr/~xleroy/teaching.html}{xleroy/teaching} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +! Undefined control sequence. +l.12 \href + {http://alaska-kamtchatka.blogspot.com/}{alaska} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no a in font nullfont! +! Undefined control sequence. +l.13 \href + {http://erratique.ch/software/}{erratique} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +! Undefined control sequence. +l.14 \href + {http://dutherenverseauborddelatable.wordpress.com/category/inform... +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +! Undefined control sequence. +l.15 \href + {http://www.univ-orleans.fr/lifo/Members/David.Teller/opensource.h... +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! + +Overfull \hbox (20.0pt too wide) in paragraph at lines 2--16 +[] + [] + +) +! Emergency stop. +<*> \input blogs.tex + +*** (job aborted, no legal \end found) + + +Here is how much of TeX's memory you used: + 5 strings out of 493748 + 118 string characters out of 3143568 + 49070 words of memory out of 3000000 + 3397 multiletter control sequences out of 15000+200000 + 3640 words of font info for 14 fonts, out of 3000000 for 9000 + 714 hyphenation exceptions out of 8191 + 5i,0n,4p,129b,16s stack positions out of 5000i,500n,10000p,200000b,50000s +No pages of output. diff --git a/blogs.tex b/blogs.tex new file mode 100644 index 0000000..a8067c9 --- /dev/null +++ b/blogs.tex @@ -0,0 +1,24 @@ + +\subsection{ocaml blogs} +\label{sec:ocaml-blogs} +\href{http://ygrek.org.ua/p/ocaml.html}{ygrek} \\ +\href{http://elehack.net/michael/blog/}{michal} \\ +\href{http://eigenclass.org/R2/}{eigenclass} \\ +\href{http://syntaxexclamation.wordpress.com/}{syntax} \\ +\href{http://martin.jambon.free.fr/ocaml.html}{jambon} \\ +\href{http://www.x9c.fr/}{Xavier Clerc} \\ +\href{http://www.pps.jussieu.fr/~li/}{Zheng li} \\ +\href{http://pauillac.inria.fr/~xleroy/teaching.html}{xleroy/teaching} \\ +\href{http://alaska-kamtchatka.blogspot.com/}{alaska} \\ +\href{http://erratique.ch/software/}{erratique} \\ +\href{http://dutherenverseauborddelatable.wordpress.com/category/informatique-computer-science/ocaml/}{duther} \\ +\href{http://www.univ-orleans.fr/lifo/Members/David.Teller/opensource.html}{David Teller} \\ +\href{http://www.cl.cam.ac.uk/teaching/Lectures/funprog-jrh-1996/index.html}{john harisson} \\ +\href{http://www.cl.cam.ac.uk/~mjcg/Teaching/FuncProg/FuncProg.html}{Mike Gordon} \\ +\href{http://www.cs.hmc.edu/~keller/cs60book/}{Robert Keller} \\ +\href{http://alexott.net/en/index.html}{alexott} +%%% Local Variables: +%%% mode: LaTex +%%% TeX-master: "master" +%%% End: + diff --git a/books/_build/_digests b/books/_build/_digests new file mode 100644 index 0000000..881a484 --- /dev/null +++ b/books/_build/_digests @@ -0,0 +1,4 @@ +"Rule: ocaml dependencies ml (%=find )": "!\222\180\215\150H\16388K?^\216\025kf" +"Resource: /Users/bob/SourceCode/Notes/ocaml-book/books/find.ml": "{\242\196\198\016CWy\243\128]\011RAF\232" +"Rule: ocaml: ml -> cmo & cmi (%=find )": "\157AM\019\200qx\220R\139\225\162\222\223z\169" +"Rule: ocaml: cmo* -> byte (%=find )": "o\199:\\\195SB\n\133\199\255\248VI\178\155" diff --git a/books/_build/_log b/books/_build/_log new file mode 100644 index 0000000..aed55f7 --- /dev/null +++ b/books/_build/_log @@ -0,0 +1,8 @@ +### Starting build. +# Target: find.ml.depends, tags: { extension:ml, file:find.ml, ocaml, ocamldep, quiet, traverse } +ocamlfind ocamldep -modules find.ml > find.ml.depends # cached +# Target: find.cmo, tags: { byte, compile, extension:cmo, extension:ml, file:find.cmo, file:find.ml, implem, ocaml, quiet, traverse, use_batteries } +ocamlfind ocamlc -c -package batteries -o find.cmo find.ml # cached +# Target: find.byte, tags: { byte, dont_link_with, extension:byte, file:find.byte, link, ocaml, program, quiet, traverse, use_batteries } +ocamlfind ocamlc -linkpkg -package batteries find.cmo -o find.byte # cached +# Compilation successful. diff --git a/books/_build/find.byte b/books/_build/find.byte new file mode 100755 index 0000000..5a69dbe Binary files /dev/null and b/books/_build/find.byte differ diff --git a/books/_build/find.cmi b/books/_build/find.cmi new file mode 100644 index 0000000..65a94f4 Binary files /dev/null and b/books/_build/find.cmi differ diff --git a/books/_build/find.cmo b/books/_build/find.cmo new file mode 100644 index 0000000..dfac1ea Binary files /dev/null and b/books/_build/find.cmo differ diff --git a/books/_build/find.ml b/books/_build/find.ml new file mode 100644 index 0000000..d80faa3 --- /dev/null +++ b/books/_build/find.ml @@ -0,0 +1,70 @@ + +open Batteries_uni +exception Hidden of exn + +(** add a tag to exn *) +let hide_exn f x = try f x with exn -> raise (Hidden exn) + +(** strip the tag of exn *) +let reveal_exn f x = try f x with Hidden exn -> raise exn + +(* let find on_error on_path ?(follow=false) depth roots = *) +(* let stat = if follow then Unix.stat else Unix.lstat in *) +(* let rec find_rec depth visiting filename = *) +(* try *) +(* let {Unix.st_dev, st_ino, st_kind} = stat filename in *) +(* let continue = hide_exn (on_path filename) infos in *) +(* (\* a directory is identified by the id pair *\) *) +(* let id = st_dev, st_ino in *) +(* if st_kind = S_DIR && depth > 0 && continue && *) +(* (\* avoid cycle when it's symbol link *\) *) +(* (not follow || not (List.mem id visiting)) *) +(* then *) +(* let rec iter_dir f root = *) +(* let files = Sys.readdir root in *) +(* Array.iter f files *) +(* in *) +(* let process_child child = let open Filename in *) +(* if (child <> current_dir_name && *) +(* (\* remove the case "." or ".." *\) *) +(* child <> parent_dir_name ) then *) +(* let child_name = concat filename child in *) +(* let visiting = *) +(* (\* we only keep track when follow is specified *\) *) +(* if follow then id :: visiting else visiting in *) +(* find_rec (depth - 1) visiting child_name in *) +(* iter_dir process_child filename *) +(* with *) +(* Unix_error (e,b,c) -> hide_exn on_error (e,b,c) *) +(* in *) +(* reveal_exn (List.iter (find_rec depth [] )) roots *) + + +let buffer_size = 8192 +let buffer = String.create buffer_size + +let file_copy input output = Unix.( + let fd_in = openfile input [O_RDONLY] 0 in + let fd_out = openfile output [O_WRONLY; O_CREAT; O_TRUNC] 0o666 in + let rec copy_loop () = match read fd_in buffer 0 buffer_size with + |0 -> () + |r -> write fd_out buffer 0 r |> ignore; copy_loop () in + copy_loop (); + close fd_in ; + close fd_out +) + + +let copy () = + if Array.length Sys.argv = 3 then begin + file_copy Sys.argv.(1) Sys.argv.(2) + end + else begin + prerr_endline + ("Usage: " ^ Sys.argv.(0) ^ " "); + exit 1 + end + +let _ = Unix.handle_unix_error copy () + + diff --git a/books/_build/find.ml.depends b/books/_build/find.ml.depends new file mode 100644 index 0000000..bc260dc --- /dev/null +++ b/books/_build/find.ml.depends @@ -0,0 +1 @@ +find.ml: Array Batteries_uni String Sys Unix diff --git a/books/_build/myocamlbuild b/books/_build/myocamlbuild new file mode 100755 index 0000000..c6444d6 Binary files /dev/null and b/books/_build/myocamlbuild differ diff --git a/books/_build/myocamlbuild.cmi b/books/_build/myocamlbuild.cmi new file mode 100644 index 0000000..7667718 Binary files /dev/null and b/books/_build/myocamlbuild.cmi differ diff --git a/books/_build/myocamlbuild.cmx b/books/_build/myocamlbuild.cmx new file mode 100644 index 0000000..0ac20ae Binary files /dev/null and b/books/_build/myocamlbuild.cmx differ diff --git a/books/_build/myocamlbuild.ml b/books/_build/myocamlbuild.ml new file mode 100644 index 0000000..714ae04 --- /dev/null +++ b/books/_build/myocamlbuild.ml @@ -0,0 +1,184 @@ +open Ocamlbuild_plugin +open Command + +let run_and_read = Ocamlbuild_pack.My_unix.run_and_read +let blank_sep_strings = Ocamlbuild_pack.Lexers.blank_sep_strings + + +let find_packages () = + blank_sep_strings & + Lexing.from_string & + run_and_read "ocamlfind list | cut -d' ' -f1" + + + +exception Str of [`Found of int | `NotFound] + +(** Ocaml pervasives really suck *) +let str_find src sub = + let len_sub = String.length sub + and len_src = String.length src + in + if len_sub > len_src then -1 + else ( + try( + for i = 0 to len_src - len_sub do + try + ( + for j = 0 to len_sub - 1 do + if src.[i+j] = sub.[j] then () + else raise (Str `NotFound) + done ; + raise (Str (`Found i))) + with + |Str `NotFound -> () + done ; -1) + with Str (`Found i) -> i) + +(** ocamlfind can only handle these two flags *) +let find_syntaxes () = ["camlp4o"; "camlp4r"] + +let trim_endline str = + let len = String.length (str) in + if len = 0 then str + else if str.[len-1] = '\n' + then String.sub str 0 (len-1) + else str + +let extensions () = + let pas = List.filter + (fun x -> str_find x "pa_" <> -1) (find_packages ()) in + let tbl = List.map + (fun pkg -> + let dir = + trim_endline (run_and_read ("ocamlfind query " ^ pkg))in + (pkg, dir)) pas in + tbl + +let debug = false + +let site_lib () = + trim_endline (run_and_read ("ocamlfind printconf destdir")) + +let _ = + if debug then begin + List.iter (fun (pkg,dir) -> Printf.printf "%s,%s\n" pkg dir) + (extensions ()); + Printf.printf "%s\n" (site_lib()) + end + + + + +module Default = struct + let ocamlfind x = S[A"ocamlfind"; x] + let before_options () = + Options.ocamlc := ocamlfind & A"ocamlc"; + Options.ocamlopt := ocamlfind & A"ocamlopt"; + Options.ocamldep := ocamlfind & A"ocamldep"; + Options.ocamldoc := ocamlfind & A"ocamldoc"; + Options.ocamlmktop := ocamlfind & A"ocamlmktop" + + + let after_rules () = + (*when one link an ocaml library/binary/package, should use -linkpkg*) + flag ["ocaml"; "byte"; "link";"program"] & A"-linkpkg"; + flag ["ocaml"; "native"; "link";"program"] & A"-linkpkg"; + + (* For each ocamlfind package one inject the -package option when + * compiling, computing dependencies, generating documentation + * and linking. *) + List.iter begin fun pkg -> + flag ["ocaml"; "compile"; "pkg_"^pkg] & S[A"-package"; A pkg]; + flag ["ocaml"; "ocamldep"; "pkg_"^pkg] & S[A"-package"; A pkg]; + flag ["ocaml"; "doc"; "pkg_"^pkg] & S[A"-package"; A pkg]; + flag ["ocaml"; "link"; "pkg_"^pkg] & S[A"-package"; A pkg]; + flag ["ocaml"; "infer_interface"; "pkg_"^pkg] & S[A"-package"; A pkg]; + end (find_packages ()); + + (* Like -package but for extensions syntax. Morover -syntax is + * useless when linking. *) + List.iter begin fun syntax -> + flag ["ocaml"; "compile"; "syntax_"^syntax] & S[A"-syntax"; A syntax]; + flag ["ocaml"; "ocamldep"; "syntax_"^syntax] & S[A"-syntax"; A syntax]; + flag ["ocaml"; "doc"; "syntax_"^syntax] & S[A"-syntax"; A syntax]; + flag ["ocaml"; "infer_interface"; "syntax_"^syntax] & S[A"-syntax"; A syntax]; + end (find_syntaxes ()); + (* The default "thread" tag is not compatible with ocamlfind. + Indeed, the default rules add the "threads.cma" or + "threads.cmxa" options when using this tag. When using the + "-linkpkg" option with ocamlfind, this module will then be + added twice on the command line. + + To solve this, one approach is to add the "-thread" option when using + the "threads" package using the previous plugin. + *) + flag ["ocaml"; "pkg_threads"; "compile"] (S[A "-thread"]); + flag ["ocaml"; "pkg_threads"; "link"] (S[A "-thread"]); + flag ["ocaml"; "pkg_threads"; "infer_interface"] (S[A "-thread"]) +end + +module Batteries = struct + let before_options () = + () + let after_rules () = + let cl_use_batteries = [A"-package"; A"batteries"] + (* and cl_use_batteries_o = [] *) + (* and cl_camlp4o = [A"-syntax"; A"camlp4o"] *) + (* and cl_camlp4r = [A"-syntax"; A"camlp4r"] *) + in + flag ["ocaml"; "compile"; "use_batteries"] & S cl_use_batteries; + flag ["ocaml"; "ocamldep"; "use_batteries"] & S cl_use_batteries ; + flag ["ocaml"; "doc"; "use_batteries"] & S cl_use_batteries ; + flag ["ocaml"; "link"; "use_batteries"] & S cl_use_batteries + +end + + + +module Camlp4 = struct + + (** ocamlfind ocamlc -package str -c + -pp 'camlp4o pa_float.cmo' -o bar.cmo bar.ml + pa_comprehension, pp -> -pp '.... ' + *) + let before_options () = () + + (** + I linked pa_ulex.cma to camlp4 directory, to make life easier + if you have pa_xx.syntax, that will be awesome + so in your _tags file + : use_ulex + : pkg_ulex + *) + (** dispatch begin function | After_rules -> flag ["ocaml"; "pp"; + "use_ulex"] (S[A"camlp4o"; A"pa_ulex.cma"]); dep ["ocaml"; "ocamldep"; + "use_ulex"] ["pa_ulex.cma"]; ocaml_lib ~tag_name:"use_ulex" "ulexing"; + | _ -> () end;; + *) + let after_rules () = + () + (* flag ["ocaml"; "pp"; "use_lex"] (S[A"camlp4o"; A"pa_ulex.cma"]); *) + (* flag ["ocaml";"ocamldep"; "use_ulex";"pp"] (S[A"camlp4o"; A"pa_ulex.cma"]) *) +(* + let after_rules () = + let (@>) = Filename.concat in + + flag ["comprehension"] & + (A"'pa_comprehension.cmo'") +(* A( (site_lib () @> "batteries" @> "pa_comprehension.cmo")) *) + *) +end + +let _ = dispatch begin function + |Before_options -> + Default.before_options (); + Batteries.before_options (); + Camlp4.before_options () + |After_rules -> + Default.after_rules (); + Batteries.after_rules (); + Camlp4.after_rules () + | _ -> () +end + diff --git a/books/_build/myocamlbuild.o b/books/_build/myocamlbuild.o new file mode 100644 index 0000000..aa7f610 Binary files /dev/null and b/books/_build/myocamlbuild.o differ diff --git a/books/_build/ocamlc.where b/books/_build/ocamlc.where new file mode 100644 index 0000000..0928a2a --- /dev/null +++ b/books/_build/ocamlc.where @@ -0,0 +1 @@ +/Users/bob/SourceCode/ML/godi/lib/ocaml/std-lib diff --git a/books/_tags b/books/_tags new file mode 100644 index 0000000..a8dc59c --- /dev/null +++ b/books/_tags @@ -0,0 +1,3 @@ + + + : use_batteries \ No newline at end of file diff --git a/books/auto/caltech_ocaml.el b/books/auto/caltech_ocaml.el new file mode 100644 index 0000000..bbd7a51 --- /dev/null +++ b/books/auto/caltech_ocaml.el @@ -0,0 +1,5 @@ +(TeX-add-style-hook "caltech_ocaml" + (lambda () + (LaTeX-add-labels + "sec:caltech-ocaml-book"))) + diff --git a/books/auto/hol_light.el b/books/auto/hol_light.el new file mode 100644 index 0000000..643e2e1 --- /dev/null +++ b/books/auto/hol_light.el @@ -0,0 +1,5 @@ +(TeX-add-style-hook "hol_light" + (lambda () + (LaTeX-add-labels + "sec:hol-light"))) + diff --git a/books/auto/ocaml_for_scientists.el b/books/auto/ocaml_for_scientists.el new file mode 100644 index 0000000..eb44524 --- /dev/null +++ b/books/auto/ocaml_for_scientists.el @@ -0,0 +1,5 @@ +(TeX-add-style-hook "ocaml_for_scientists" + (lambda () + (LaTeX-add-labels + "sec:ocaml-scientists"))) + diff --git a/books/auto/practical_ocaml.el b/books/auto/practical_ocaml.el new file mode 100644 index 0000000..10819b7 --- /dev/null +++ b/books/auto/practical_ocaml.el @@ -0,0 +1,5 @@ +(TeX-add-style-hook "practical_ocaml" + (lambda () + (LaTeX-add-labels + "sec:practical-ocaml"))) + diff --git a/books/auto/the_functional_approach_to_programming.el b/books/auto/the_functional_approach_to_programming.el new file mode 100644 index 0000000..9df3d18 --- /dev/null +++ b/books/auto/the_functional_approach_to_programming.el @@ -0,0 +1,5 @@ +(TeX-add-style-hook "the_functional_approach_to_programming" + (lambda () + (LaTeX-add-labels + "sec:funct-appr-progr"))) + diff --git a/books/auto/unix_system_programming_in_ocaml.el b/books/auto/unix_system_programming_in_ocaml.el new file mode 100644 index 0000000..c95282d --- /dev/null +++ b/books/auto/unix_system_programming_in_ocaml.el @@ -0,0 +1,5 @@ +(TeX-add-style-hook "unix_system_programming_in_ocaml" + (lambda () + (LaTeX-add-labels + "sec:unix-syst-progr"))) + diff --git a/books/caltech_ocaml.tex b/books/caltech_ocaml.tex new file mode 100644 index 0000000..b871266 --- /dev/null +++ b/books/caltech_ocaml.tex @@ -0,0 +1,417 @@ + +\subsection{caltech ocaml book} +\label{sec:caltech-ocaml-book} + +\begin{enumerate}[(a)] +\item oo + \begin{itemize} + \item immediate object + +\begin{redcode} +let poly = object + val vertices = [|0,0;1,1;2,2|] + method draw = "test" +end +\end{redcode} + + \item dynamic lookup \\ + obj\#method, the actual method that gets called is determined + at \emph{runtime} + +\begin{alternate} +# let draw_list items = List.iter (fun item->item#draw) items;; +val draw_list : < draw : unit; .. > list -> unit = +\end{alternate} + + \item type annotation (very common in oo) + \item .. ellipse -- row variable \\ + \textbf{ \{<>\} }represents a \textbf{functional update} (only fields), + which produces a new object + + +\begin{alternate} +# type 'a blob = as 'a ;; +type 'a blob = 'a constraint 'a = < draw : unit; .. > +\end{alternate} + +\begin{redcode} +let transform = + object + val matrix = (1.,0.,0.,0.,1.,0.) + method new_scale sx sy = + {} + method new_rotate theta = + let s,c=sin theta, cos theta in + {} + method new_translate dx dy= + {} + method transform (x,y) = + let (m11,m12,m13,m21,m22,m23)=matrix in + (m11 *. x +. m12 *. y +. m13, + m21 *. x +. m22 *. y +. m23) + end ;; +\end{redcode} + +\begin{bluecode} + val transform : + < new_rotate : float -> 'a; new_scale : float -> float -> 'a; + new_translate : float -> float -> 'a; + transform : float * float -> float * float > + as 'a = +\end{bluecode} + + + +\begin{redcode} +# let new_collection () = + object + val mutable items = [] + method add item = items <- item::items + method transform mat = + { item#transform mat) items>} + end ;; + \end{redcode} + +\begin{bluecode} + val new_collection : + unit -> + (< add : (< transform : 'c -> 'b; .. > as 'b) -> unit; + transform : 'c -> 'a > + as 'a) = + +\end{bluecode} + + \item caveat + \begin{itemize} + \item field expression \textbf{could not} refer to other fields, nor to itself + \item after you get the object you can have initializer \\ + the object \textit{does not exist} when the field values are be computed + For the initializer, you can call \verb|self#blabla| + +\begin{redcode} +# object + val x = 1 + val mutable x_plus_1 = 0 + initializer + x_plus_1 <- x + 1 +end ;; +\end{redcode} + +\begin{bluecode} +- : < > = +\end{bluecode} + + + \item method private + \item subtyping \\ + supports \textit{width and depth subtyping, contravariant and covariant} + for subtyping of recursive object types, \textit{first assume it is right} + then prove it using such assumption + +\begin{bluecode} + e : t1 :> t2 +\end{bluecode} + +sometimes, type annotation and coersion both needed, when t2 is recursive or t2 has polymorphic structure + + + \item narrowing \\ (opposite to subtyping) (\textbf{not permitted} in Ocaml) + but you can simulate it. do runtime type testing + +\begin{bluecode} +type animal = < eat : unit; v : exn > +type dog = < bark : unit; eat : unit; v : exn > +type cat = < eat : unit; meow : unit; v : exn > +exception Dog of dog +exception Cat of cat +let fido : dog = object(self) method v=Dog self method eat = () method bark = () end;; +let miao : cat = object(self) method v = Cat self method eat = () method meow = () end;; +\end{bluecode} + + +then you dispatch on animal\#v, you can also encode using \textit{polymorphic variant} +sometimes ocaml's type annotation does not require its polymorphic is also +a feature, you just \textbf{hint}, and let it guess, this is +unlike haskell, always \textbf{universal quantifier} required. + +\begin{alternate} +type 'a animal = ] as 'a >;; +(** now we let the compiler to guess the type of 'a *) +let fido : 'a animal = object method eat = () method tag = `Dog 3 end;; +val fido : [> `Dog of int ] animal = + +(** +# let fido : [< `Dog of int] animal = object method eat = () method tag = `Dog 3 end;; +val fido : [ `Dog of int ] animal = +*) + +let miao : [> `Cat of int] animal = object method eat = () method tag = `Cat 2 end;; +val miao : [> `Cat of int ] animal = +# [fido;miao];; +- : [> `Cat of int | `Dog of int ] animal list = [; ] + + +List.map (fun v -> match v#tag with `Cat a -> a |`Dog a -> a) [fido;miao];; +- : int list = [3; 2] +\end{alternate} + + \item modules vs objects + \begin{enumerate}[(1)] + \item objects (data entirely hidden) + \item now both are first class (both can be used as arguments) + \item objects can bind type variable easier, especially when \textbf{self recursive + recursive} is so natural in objects (isomorphic-like equivalence is free in oo) + when we build an object of recursive type, but we don't care which type it is + (maybe called existential type), so coding existential types is easier in OO +\begin{redcode} +module type PolySig = sig +type poly +val create : (float*float) array -> poly +val draw : poly -> unit +val transform : poly -> poly +end +module Poly :PolySig = +type poly = (float * float) array +let create vertices = vertices +let draw vertices = () +let transform matrix = matrix +end +\end{redcode} +Here module Poly is more natural to model it as an object + +\begin{redcode} +# class type poly = object + method create : (float*float) array -> poly + method draw : poly -> unit + method transform : poly->poly +end +;; +\end{redcode} + +\begin{bluecode} +class type poly = + object + method create : (float * float) array -> poly + method draw : poly -> unit + method transform : poly -> poly +end +\end{bluecode} + +\begin{redcode} +class poly = object (self:'self) +method test (x:'self) = x end;; +\end{redcode} + +\begin{redcode} +class poly : object ('a) method test : 'a -> 'a end +# let v = new poly;; +\end{redcode} + +\begin{redcode} +type blob = unit; transform:unit-> blob>;; +type blob = < draw : unit -> unit; transform : unit -> blob > +type blob = {draw:unit-> unit; transform:unit-> blob};; +\end{redcode} + + \end{enumerate} + \item parameterized class \\ + template shows how to build an object + \item polymorphic class + +\begin{inverseverbatim} +class ['a] cell(x:'a) = object + method get = x +end ;; +class ['a] cell : 'a -> object method get : 'a end +\end{inverseverbatim} + + + \end{itemize} + \end{itemize} + +\item polymorphic variants + \begin{enumerate} + \item simple example + +\begin{alternate} +let string_of_number = function `Integer i -> i;; +val string_of_number : [< `Integer of 'a ] -> 'a = +\end{alternate} + +\begin{redcode} +# let string_of_number = function + |`Integer i -> i + |_ -> invalid_arg "string_of_number";; + \end{redcode} +\begin{bluecode} + val string_of_number : [> `Integer of 'a ] -> 'a = +\end{bluecode} + +\begin{redcode} +let test0 = function + |`Int i -> i + +let test1 = function + |`Int i -> i + | _ -> invalid_arg "invalid arg in test1" + +let test2 = function + |x -> test0 x + +let test3 = function + |x -> test1 x + +(* let test4 : [> `Real of 'a | `Int of 'a ] -> 'a = function + |`Real x -> x *) + | x -> test0 (x:> [< `Int of 'a]) *) + +let test5 = function + |`Real x -> x + | x -> test1 x + +\end{redcode} + +\begin{bluecode} +val test0 : [< `Int of 'a ] -> 'a = +val test1 : [> `Int of 'a ] -> 'a = +val test2 : [< `Int of 'a ] -> 'a = +val test3 : [> `Int of 'a ] -> 'a = +val test5 : [> `Int of 'a | `Real of 'a ] -> 'a = +\end{bluecode} + +for open union, it's easy to reuse, but \textbf{unsafe}, +for closed union, hard to use, since the type checker is +conservative + + +\begin{alternate} + +test1 `Test;; +Exception: Invalid_argument "invalid arg in test1". + +test0 `Test;; +Characters 6-11: + test0 `Test;; + ^^^^^ +Error: This expression has type [> `Test ] + but an expression was expected of type [< `Int of 'a ] + The second variant type does not allow tag(s) `Test +\end{alternate} + + + + + + + + \item \textbf{define polymorphic variant type } + +\begin{alternate} +type number = [> `Integer of int | `Real of float ];; + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Error: A type variable is unbound in this type declaration. +In type [> `Integer of int | `Real of float ] as 'a +the variable 'a is unbound + +type 'a number = 'a constraint 'a = [>`Integer of int | `Real of float] + +let zero : 'a number = `Zero;; +val zero : [> `Integer of int | `Real of float | `Zero ] number = `Zero + + +type number = [< `Integer of int | `Real of float ];; + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Error: A type variable is unbound in this type declaration. +In type [< `Integer of int | `Real of float ] as 'a +the variable 'a is unbound +# type number = [ `Integer of int | `Real of float ];; +type number = [ `Integer of int | `Real of float ] + + +\end{alternate} + + \item \textbf{sub-typing for polymorphic variants} + +\begin{bluecode} + [`A] :> [`A | `B] +\end{bluecode} +since you know how to handle A and B, then you know how to handle A + +\begin{alternate} +let f x = (x:[`A] :> [`A | `B ]);; +val f : [ `A ] -> [ `A | `B ] = +\end{alternate} + +ocaml does has width and depth subtyping +if t1 :> t1' and t2 :> t2' then (t1,t2) :> (t1',t2') + +\begin{alternate} +let f x = (x:[`A] * [`B] :> [`A|`C] * [`B | `D]);; +val f : [ `A ] * [ `B ] -> [ `A | `C ] * [ `B | `D ] = + + +let f x = (x : [ `A | `B ] -> [ `C ] :> [ `A ] -> [ `C | `D ]);; +val f : ([ `A | `B ] -> [ `C ]) -> [ `A ] -> [ `C | `D ] = +\end{alternate} + + \item variance notation \\ + if you don't write the + and -, ocaml will \textbf{infer} them for you , + but when you write abstract type in module type signatures, it makes sense. + variance annotations \textbf{allow you to expose the subtyping properties} of your type + in an interface, without exposing the representation. + +\begin{redcode} +type (+'a, +'b) t = 'a * 'b +type (-'a,+'b) t = 'a -> 'b +module M : sig + type (+'a,'+b) t +end = struct + type ('a,'b) t = 'a * 'b +end +\end{redcode} +ocaml did the check when you define it, so you can not define it arbitrarily + + \item \textbf{co-variant} helps polymorphism + +\begin{alternate} +module M : sig + type +'a t + val embed : 'a -> 'a t + end = struct + type 'a t = 'a + let embed x = x +end ;; +M.embed [] ;; +- : 'a list M.t = +\end{alternate} + + + \item example + +\begin{alternate} +type suit = [ `Club | `Diamond | `Heart | `Spade ] + +let winner = function `Heart -> true | #suit -> false;; +val winner : [< suit ] -> bool = +let winner2 = function `Unknown -> true |#suit -> false;; +val winner2 : [< `Club | `Diamond | `Heart | `Spade | `Unknown ] -> bool = + + +(* the variant tag does not belong to a particular type *) + +let winner3 : (suit -> bool) = function `Unknown -> true | #suit -> false;; + ^^^^^^^^ +Warning 11: this match case is unused. +val winner3 : suit -> bool = + +\end{alternate} + +\end{enumerate} + +\end{enumerate} + + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "../master" +%%% End: diff --git a/books/developing_application_with_ocaml.tex b/books/developing_application_with_ocaml.tex new file mode 100644 index 0000000..9b51748 --- /dev/null +++ b/books/developing_application_with_ocaml.tex @@ -0,0 +1,754 @@ +\subsection{Developing Applications with Objective Caml} + +\begin{enumerate} + \item caveat + \begin{enumerate} + \item + (modulo the boundary, \emph{will not be checked}) + \item $1.0/0.0 \rightarrow \infty $ + \item $+. -. *. /. **$ mod ceil floor sqrt exp log log10 cos sin tan acos asin atan + \item $asin 3.14 \rightarrow nan $ + \item \verb|char_of_int 255| $\rightarrow$ \verb|'\255'| (can not display) + \item \verb|char_of_int int_of_char string_of_int int_of_string| + \verb|string_of_int 2551 -> ``2551''| + \item string (length $\le 2^{24} - 6$ ) + \item == (\textit{physical equal}) (=, != <>) + + +\begin{alternate} +true == true;; +- : bool = true +# 3 == 3;; +- : bool = true +# 1. == 1.;; +- : bool = false +\end{alternate} + + \item int * int * int is different from (int * int ) * int + \item unreasonable parametric equality \verb|(=) : 'a -> 'a -> bool| + \item recursive declaration + +\begin{redcode} +let rec ones = 1 :: ones;; +\end{redcode} + +\begin{bluecode} +val ones : int list = + [1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; + 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; + 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; + 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; + 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; + 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; + 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; + 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; + 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; + 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; + 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; + 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; + ...] +\end{bluecode} + + +\begin{redcode} + let special_size l = + let rec size_aux prev = function + |[] -> 0 + |_ :: l1 -> if List.memq l1 prev then 1 else 1 + size_aux (l1::prev) l1 in size_aux [l] l;; + \end{redcode} +\begin{bluecode} + val special_size : 'a list -> int = +\end{bluecode} + +\begin{alternate} +# special_size ones;; +- : int = 1 +# let rec twos = 1 :: 2 :: twos in special_size twos;; +- : int = 2 +# special_size [];; +- : int = 0 +\end{alternate} +\item combine patterns \\ + p1 | .. | pn (all name is forbidden within these patterns) + 'a' .. 'e' + + \begin{alternate} +let test 'a' .. 'e' = true;; +^^^^^^^^^^^^^^^^^ + \end{alternate} + +\begin{bluecode} +Warning 8: this pattern-matching is not exhaustive. +Here is an example of a value that is not matched: +'f' +val test : char -> bool = +\end{bluecode} + + \item records + +\begin{alternate} +type complex = {re:float;img:float};; +type complex = { re : float; img : float; } +# let add {re; img} {re; img} = 3;; +val add : complex -> complex -> int = +# let add {re; img} {re; img} = {re = re +. re; img = img +. img};; +val add : complex -> complex -> complex = + \end{alternate} + + \item \emph{redefinition marsks the previous one, while values of the masked types + still exist, but it now turns to be an abstract type } + \item exception + \begin{enumerate} + \item \verb|Match_failure Division_by_zero Failure| + \item exception Name of t -- monomorphic , extensible sum Type \\ + when pattern match your exception, its type should be fixed + \item control flow + \end{enumerate} + \item {\bf disagree over interface} \\ + when toplevel loads the same module (only the name is the same), + it will check the interface is equal, this sucks since ocaml has + flat namespace for module + \end{enumerate} + \item sharing \\ + for structured values, it will be sharing , however, + \emph{vectors of floats don't share} + +\begin{alternate} +let a = Array.create 3 0.;; +val a : float array = [|0.; 0.; 0.|] +# a.(0)==a.(1);; +- : bool = false +\end{alternate} + + + \item weak type variables \\ + +\begin{alternate} + let b = ref [] + (* b should '_a list ref, since b is not pure, cannot be shared *) + let a = [] + (* a : 'a list *) + let a = None + (* a : 'a option *)n + let a = Array.create 3 None + (* '_a option array *) +# type ('a,'b) t ={ch1 : 'a list; mutable ch2 : 'b list};; +type ('a, 'b) t = { ch1 : 'a list; mutable ch2 : 'b list; } +# let v = {ch1=[];ch2=[]};; +val v : ('a, '_b) t = {ch1 = []; ch2 = []} +\end{alternate} + \textit{mutable sharing conflicts with polymorphism} + + \item library + \begin{enumerate} + \item List \\ + +\begin{bluecode} + @ length hd tl nth rev append rev_append concat flatten + iter map rev_map left_fold fold_right iter2 map2 rev_map2 + fold_left2 fold_right2 for_all exists for_all2 exists2 + mem memq find filter partition assoc assq remove_assoc remove_assq + split combine sort statble_sort fast_sort merge + \end{bluecode} + +\begin{alternate} +# List.assq 3 [3,4;1,2];; +- : int = 4 +# List.assq 3. [3.,4;1.,2];; +Exception: Not_found. +\end{alternate} + + \item Array \\ + \verb|Array.create_matrix creates Non-Rectangular matrices| + +\begin{bluecode} +length get set make create init -- when you don't want to initialize +make_matrix (int->int->'a -> 'a array array) create_matrix; +append concat sub copy fill ('a array -> int -> int -> 'a -> int) +blit (Array.Labels.blit), to_list, of_list map iteri mapi fold_left +fold_right sort stable_sort fast_sort unsafe_get unsafe_set copy +\end{bluecode} + + \item IO \\ + +\begin{bluecode} +open_in open_out close_in close_out input_line +input : Batteries.Legacy.in_channel -> string -> int -> int -> int = +output: Batteries.Legacy.out_channel -> string -> int -> int -> unit = +read_line print_string print_newline print_endline +\end{bluecode} + + \item stack (imperative data structure actually) + +\begin{bluecode} +exceptin Empty +create +type 'a t = { mutable c : 'a list } +(* mutable to delay initialization *) +push pop top clear copy is_empty length iter enum copy +of_enum print +module Exceptionless + top : 'a t -> 'a option, pop +\end{bluecode} + + \item stream \textbf{imperative} + +\begin{bluecode} +'a t +exception Failure +exception Error of string +from +of_list of_string of_channel iter empty peek junk count npeek +iapp icons ising lapp lcons lsing +sempty slazy dump npeek +\end{bluecode} + + syntax extension (for my experience, use it in shell, but not in + tuareg toplevel) +\begin{redcode} + let concat_stream a b = [] +\end{redcode} +\begin{bluecode} +val concat_stream : + 'a Batteries.Stream.t -> 'a Batteries.Stream.t -> 'a Batteries.Stream.t = +\end{bluecode} + expression not preceded by an \` considered to be sub-stream + destructive pattern matching (camlp5 or extended parser can merge) + consumed (error), failure + \item Array List String Hashtbl Buffer Queue + \item Sort + +\begin{redcode} +module X = Sort ;; +\end{redcode} + +\begin{bluecode} +module X : + sig + val list : ('a -> 'a -> bool) -> 'a list -> 'a list + val array : ('a -> 'a -> bool) -> 'a array -> unit + val merge : ('a -> 'a -> bool) -> 'a list -> 'a list -> 'a list + end +\end{bluecode} + + \item Weak (vector of weak pointers) abstract type + +\begin{bluecode} +sig + type 'a t = 'a Weak.t +end +\end{bluecode} + + + \item Printf + +\begin{bluecode} +%t -> (output->unit) +%t%s -> (output->unit)->string->unit +\end{bluecode} +they all should be processed at \textbf{compile time} + + + \item Digest \\ + hash functions return a fingerprint of their entry (reversible) + +\begin{bluecode} + val string : string -> t -- fingerprint of a string + val file : string -> t -- fingerprint of a file +\end{bluecode} + + \item Marshal estimate data size + +\begin{alternate} +type external_flag = No_sharing | Closures + +let size x = x |> flip Marshal.to_string [] |> flip Marshal.data_size 0;; ;; +val size : 'a -> int = +# size 3;; +- : int = 1 +# size 3.;; +- : int = 9 +# size "ghsogho";; +- : int = 8 +# size "ghsogho1";; +- : int = 9 +# size "ghsogho1ah";; +- : int = 11 +# size 111;; +- : int = 2 +\end{alternate} + + + \item Sys + +\begin{bluecode} +os_type interactive word_size max_string_length +max_array_length time argv getenv command file_exists +remove rename chdir getcwd +\end{bluecode} + +\begin{alternate} +# float (Sys.max_string_length ) /. (2. ** 57.);; +- : float = 0.999999999999999889 +\end{alternate} + + + \item Arg Filename Printexc + \item Printexc + +\begin{redcode} +# module P = Printexc;; +\end{redcode} + +\begin{bluecode} +module P : + sig + val to_string : exn -> string + val catch : ('a -> 'b) -> 'a -> 'b + val get_backtrace : unit -> string + val record_backtrace : bool -> unit + val backtrace_status : unit -> bool + val register_printer : (exn -> string option) -> unit + val pass : ('a -> 'b) -> 'a -> 'b + val print : 'a BatInnerIO.output -> exn -> unit + val print_backtrace : 'a BatInnerIO.output -> unit + end +\end{bluecode} + + + \item Num + \item \verb|Arith_status| + +\begin{redcode} +# module X = Arith_status;; +\end{redcode} +\begin{bluecode} +module X : + sig + val arith_status : unit -> unit + val get_error_when_null_denominator : unit -> bool + val set_error_when_null_denominator : bool -> unit + val get_normalize_ratio : unit -> bool + val set_normalize_ratio : bool -> unit + val get_normalize_ratio_when_printing : unit -> bool + val set_normalize_ratio_when_printing : bool -> unit + val get_approx_printing : unit -> bool + val set_approx_printing : bool -> unit + val get_floating_precision : unit -> int + val set_floating_precision : int -> unit + end +\end{bluecode} + + + \item Dynlink \\ + choice at execution time, load a new module and hide the + code code (hot-patch) + actually (\#load is kinda hot-patch), however to write it in programs + \emph{more flexible} than \#load , load requires its name are fixed, and + load will check .mli file, Dynlink \textbf{does not} do this check, while when you + want to do X.blabla, it still checks, so still don't work, only side + effects will work. + +\begin{redcode} +#direcotry "+dynlink";; +#load "dynlink.cma";; +Dynlink.loadfile "test.cmo";; +\end{redcode} + + \end{enumerate} + + \item syntaxes + \item expr + +\begin{bluecode} +exp ::=value-path -- value-name or module-path.value-name + | constant + | ( expr ) + | begin expr end + | ( expr : typexpr ) + | expr , expr { , expr } -- tuple + | constr expr -- constructor + | `tag-name expr -- polymorphic variant + | expr :: expr -- list + | [ expr { ; expr } ] + | [| expr { ; expr } |] + | { field = expr { ; field = expr } } + | { expr with field = expr { ; field = expr } } + | expr { argument }+ -- application + | prefix-symbol expr -- prefix operator + | expr infix-op expr + | expr . field + | expr . field <- expr -- still an expression + | expr .( expr ) + | expr .( expr ) <- expr + | expr .[ expr ] + | expr .[ expr ] <- expr + | if expr then expr [ else expr ] + | while expr do expr done + | for ident = expr ( to | downto ) expr do expr done + | expr ; expr + | match expr with pattern-matching + | function pattern-matching + | fun multiple-matching -- multiple parameters matching + | try expr with pattern-matching + | let [rec] let-binding { and let-binding } in expr + | new class-path + | object class-body end + | expr # method-name + | inst-var-name + | inst-var-name <- expr + | ( expr :> typexpr ) + | ( expr : typexpr :> typexpr ) + | {< inst-var-name = expr { ; inst-var-name = expr } >} + | assert expr + | lazy expr + +argument::=expr + | ~ label-name + | ~ label-name : expr + | ? label-name + | ? label-name : expr + +pattern-matching::= + [|] pattern [when expr]-> expr { |pattern [when expr] -> expr } + +multiple-matching::= { parameter }+ [when expr]-> expr + +let-binding::=pattern = expr + | value-name { parameter } [: typexpr] = expr + +parameter::=pattern + | ~ label-name + | ~ ( label-name [: typexpr] ) + | ~ label-name : pattern + | ? label-name + | ? ( label-name [: typexpr] [= expr] ) + | ? label-name : pattern + | ? label-name : ( pattern [: typexpr] [= expr] ) +\end{bluecode} + +\begin{alternate} + let f ?test:(Some x ) y = x + y;; + ^^^^^^^^^^^^^^^^^^^^^^^^^ +\end{alternate} + +\begin{bluecode} +Warning 8: this pattern-matching is not exhaustive. +Here is an example of a value that is not matched: +None +val f : ?test:int -> int -> int = +\end{bluecode} + + \item pattern + +\begin{bluecode} +pattern ::= value-name + | _ + | constant + | pattern as value-name + | ( pattern ) + | ( pattern : typexpr ) + | pattern | pattern + | constr pattern + | `tag-name pattern + | #typeconstr-name -- object ? + | pattern { , pattern } + | { field = pattern { ; field = pattern } } + | [ pattern { ; pattern } ] + | pattern :: pattern + | [| pattern { ; pattern } |] + | lazy pattern +\end{bluecode} + + \item toplevel-phrase + +\begin{bluecode} +toplevel-input::= { toplevel-phrase } ;; + +toplevel-phrase::=definition + | expr + | #ident directive-argument + +directive-argument::=epsilon + | string-literal + | integer-literal + | value-path +defition ::= let [rec] let-binding {and let-binding} + | external value-name : typexpr = external-declartion + | type-definition + | exception-defition + | class-definition + | classtype-definition + | module module-name {(module-name : module-type)} [:module-type] = module-expr + | module type module-name = module-type + | open module-path + | include module-expr +\end{bluecode} + + \item type-definition + +\begin{bluecode} + +type-definition ::= type typedef { and typedef } + +typedef ::= [type-params] typeconstr-name [type-information] + +type-information::= + [type-equation] [type-representation]{ type-constraint } +type-equation::= = typexpr + +type-representation::= + = constr-decl { | constr-decl } + | = { field-decl { ; field-decl } } + +type-params::= type-param + | ( type-param { , type-param } ) + +type-param::= ' ident + | + ' ident + | - ' ident + +constr-decl::= constr-name + | constr-name of typexpr { * typexpr } + +field-decl::= field-name : poly-typexpr + | mutable field-name : poly-typexpr +type-constraint ::=constraint ' ident = typexpr +\end{bluecode} + +\begin{alternate} +# type t;; +type t +\end{alternate} + +\item interoperating with C + + Difficutilies + \begin{enumerate} + \item Machine reperesentation of data + \item GC \\ + calling a c function from ocaml must not modify the memory in ways incompatible + with ocaml gc. + \item Exceptions \\ + C does not support exceptions, different mechanisms for aborting computations, + this complicates ocaml's exception handling + \item sharing common resources \\ + input-output. each language maintains its own input-output buffers. + \end{enumerate} + + Communications + \begin{enumerate} + \item external declarations \\ + it associates a c function definition with an ocaml name, while giving the + type of the latter. + + \begin{bluetext} + external caml_name : type = "C_name" + val caml_name : type + \end{bluetext} + both workds, but in the latter case, calls to the c function \textit{first go} + through the general function application mechanism of ocaml. This is slightly + less efficient, but hides the implementation of the function as a c function. + \item external functions with more than five arguments + \begin{bluetext} + external caml_name : type = "C_name_bytecode" "C_name_native" + \end{bluetext} + \end{enumerate} + + +\end{enumerate} + +\subsubsection{chap7 Development Tools} +\label{sec:chap7-devel-tools} +\begin{enumerate} + +\item Command names \\ + + \begin{tabular}{|c|c|} + \hline + ocaml & toplevel top \\ + \hline + ocamlrun & bytecode interpreter \\ + \hline + ocamlc & bytecode batch compiler \\ + \hline + ocamlopt & native code batch compiler \\ + \hline + ocamlc.opt & \textit{optimized} bytecode batch compiler \\ + \hline + ocamlopt.opt & \textit{optimized} native code batch compiler \\ + \hline + ocamlmktop & new \textit{toplevel} constructor \\ + \hline + \end{tabular} + + The optimized compilers are themselves compiled with the Objective Caml native compiler. + They compile \textit{faster} but are otherwise \textit{identical} to their unoptimized counterparts. +\item compilation unit \\ + For the interactive system, the unit of compilation corresponds to a phrase of the language. For the batch compiler, the unit of compilation is two files: the source file, and the interface file + + \begin{tabular}{|c|c|} + \hline + extension & meaning \\ + .ml & source \\ + .mli & interface \\ + .cmi & compiled interface \\ + .cmo & object file (byte) \\ + .cma & library object file(bytecode) \\ + .cmx & object file (native) \\ + .cmxa & library object file(native) \\ + \hline + .c & c source \\ + .o & c object file (native) \\ + .a & c library object file (native) \\ + \hline + \end{tabular} + + + The \textit{compiled interface} is used for both the bytecode and native code compiler. + +\item ocamlc \\ + + \begin{tabular}{|c|c|} + \hline + -a & construct a runtime library \\ + -c & compile \textit{without} linking \\ + -o name\_of\_executable & specify the name of the executable \\ + -linkall & link with \textit{all} libraries used \\ + -i & \textit{display all } compiled global declarations \\ + -pp command & preprocessor \\ + -unsafe & turn off index checking \\ + -v & display version \\ + -w list & choose among the list the level of warning message \\ + -impl file & indicate that \textit{file} is a caml source(.ml) \\ + -intf file & as a caml interface(.mli) \\ + -I dir & add directory in the list of directories \\ + \hline + -thread & light process \\ + -g, -noassert & linking \\ + -custom, -cclib, -ccopt, -cc & standalone executable \\ + -make-runtime, -use-runtime & runtime \\ + -output-obj & c interface \\ + \end{tabular} + + warning messages. + + \begin{tabular}{|c|c|} + A/a & enable/disable all messages \\ + F/f & partial application in a sequence \\ + P/p & incomplete pattern matching \\ + U/u & missing cases in pattern matching \\ + X/x & enable/disable all other messages \\ + M/m and V/v & for hidden object \\ + \end{tabular} + the compiler chooses the (A) by default. + turn off some warnings sometimes is helpful, for example + \begin{bluetext} + ocamlbuild -cflags -w,aPF top_level.cma + \end{bluetext} + +\item ocamlopt \\ + \begin{tabular}{|c|c|} + -compact & optimize the produced code for space \\ + -S & keeps the assembly code in a file \\ + -inline level & set the aggressiveness of inlining \\ + \end{tabular} + +\item Toplevel + \begin{tabular}{|c|c|} + -I dir & adds the directory \\ + -unsafe & no bounds checking \\ + \end{tabular} +\item ocamlmktop \\ + it's ofen used for pulling native object code libraries(typically written in C) into + a new toplevel. + \textit{ + -cclib libname, -ccopt optioin, -custom, -I dir -o exectuable + } + + \begin{bluetext} + ocamlmktop -custom -o mytoplevel graphics.cma \ + -cclib -I/usr/X11/lib -cclib -lX11 + \end{bluetext} + + This \textit{standalone} exe(-custom) wil be \textit{linked} to the library X11(libX11.a) which in turn will be looked up in the path \textit{/usr/X11/lib} + + A standalone exe is a program that \textit{does not } depend on OCaml installation to run. + The OCaml native compiler produces standalone executables by default. But without \textit{-custom} option, the bytecode compiler produces an executable which requires the \textit{bytecode interpreter ocamlrun} + + \begin{redcode} +ocamlc test.ml -o a +ocamlc -custom test.ml -o b +\end{redcode} + +\begin{bluecode} +-rwxr-xr-x 1 bob staff 12225 Dec 23 16:31 a +-rwxr-xr-x 1 bob staff 198804 Dec 23 16:31 b +\end{bluecode} + +\begin{alternate} +bash-3.2$ cat a | head -n 1 +#!/Users/bob/SourceCode/ML/godi/bin/ocamlrun +\end{alternate} +% $ + +without \textit{-custom}, it depends on \textit{ocamlrun}. With \textit{-custom}, it contains the \textit{Zinc} interpreter as well as the program bytecode, this file can be executed directly or copied to another machien(using the same CPU/Operating System). + +Still, the inclusion of machine code means that stand-alone executalbes are not protable +to other systems or other architectures. + +\item optimization \\ + It is necessary to not create \textit{intermediate closures} in the case of application on several arguments. For example, when the function \textit{add} is applied with two integers, it is not useful to create the first closure corresponding to the function of applying add to the first argument. It is necessary to note that the creation of a closure would \textit{allocate} certain memory space for the environment and would require the recovery of that memory space in the future. \textit{Automatic memory recovery} is the second major performance concern, along with environment. + + +\item chap10 Program Analysis Tool \\ + \begin{enumerate} + \item ocamldep \\ + + + \begin{tabular}{|c|c|} + -I & add dir \\ + -impl,-intf & \\ + -ml(i)-synonym & cosider as a synonym of .ml(i) extension \\ + -modules & Print module dependencies in raw form(not suitable for make) \\ + -native & generate dependencies for a pure native-code project \\ + -slash & for windows \& unix \\ + \end{tabular} + + +\begin{redcode} +ocamldep -modules *.ml +\end{redcode} + +\begin{bluecode} +ta.ml: Array Printf +tb.ml: Array Ta +\begin{bluecode} + + \begin{redcode} +ocamldep *.ml +\end{redcode} + + +\begin{bluecode} +ta.cmo: +ta.cmx: +tb.cmo: ta.cmo +tb.cmx: ta.cmx +\end{bluecode} + +other examples + +\begin{bluetext} +ocamlfind ocamldep -modules dir_top_level_util.ml > dir_top_level_util.ml.depends +ocamlfind ocamldep -pp 'camlp4of -parser pa_mikmatch_pcre.cma' -modules dir_top_level.ml > dir_top_level.ml.depends +\end{bluetext} + \end{enumerate} +\end{enumerate} +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "../master" +%%% End: + + + + diff --git a/books/find.ml b/books/find.ml new file mode 100644 index 0000000..d80faa3 --- /dev/null +++ b/books/find.ml @@ -0,0 +1,70 @@ + +open Batteries_uni +exception Hidden of exn + +(** add a tag to exn *) +let hide_exn f x = try f x with exn -> raise (Hidden exn) + +(** strip the tag of exn *) +let reveal_exn f x = try f x with Hidden exn -> raise exn + +(* let find on_error on_path ?(follow=false) depth roots = *) +(* let stat = if follow then Unix.stat else Unix.lstat in *) +(* let rec find_rec depth visiting filename = *) +(* try *) +(* let {Unix.st_dev, st_ino, st_kind} = stat filename in *) +(* let continue = hide_exn (on_path filename) infos in *) +(* (\* a directory is identified by the id pair *\) *) +(* let id = st_dev, st_ino in *) +(* if st_kind = S_DIR && depth > 0 && continue && *) +(* (\* avoid cycle when it's symbol link *\) *) +(* (not follow || not (List.mem id visiting)) *) +(* then *) +(* let rec iter_dir f root = *) +(* let files = Sys.readdir root in *) +(* Array.iter f files *) +(* in *) +(* let process_child child = let open Filename in *) +(* if (child <> current_dir_name && *) +(* (\* remove the case "." or ".." *\) *) +(* child <> parent_dir_name ) then *) +(* let child_name = concat filename child in *) +(* let visiting = *) +(* (\* we only keep track when follow is specified *\) *) +(* if follow then id :: visiting else visiting in *) +(* find_rec (depth - 1) visiting child_name in *) +(* iter_dir process_child filename *) +(* with *) +(* Unix_error (e,b,c) -> hide_exn on_error (e,b,c) *) +(* in *) +(* reveal_exn (List.iter (find_rec depth [] )) roots *) + + +let buffer_size = 8192 +let buffer = String.create buffer_size + +let file_copy input output = Unix.( + let fd_in = openfile input [O_RDONLY] 0 in + let fd_out = openfile output [O_WRONLY; O_CREAT; O_TRUNC] 0o666 in + let rec copy_loop () = match read fd_in buffer 0 buffer_size with + |0 -> () + |r -> write fd_out buffer 0 r |> ignore; copy_loop () in + copy_loop (); + close fd_in ; + close fd_out +) + + +let copy () = + if Array.length Sys.argv = 3 then begin + file_copy Sys.argv.(1) Sys.argv.(2) + end + else begin + prerr_endline + ("Usage: " ^ Sys.argv.(0) ^ " "); + exit 1 + end + +let _ = Unix.handle_unix_error copy () + + diff --git a/books/find.xxxx b/books/find.xxxx new file mode 100644 index 0000000..d80faa3 --- /dev/null +++ b/books/find.xxxx @@ -0,0 +1,70 @@ + +open Batteries_uni +exception Hidden of exn + +(** add a tag to exn *) +let hide_exn f x = try f x with exn -> raise (Hidden exn) + +(** strip the tag of exn *) +let reveal_exn f x = try f x with Hidden exn -> raise exn + +(* let find on_error on_path ?(follow=false) depth roots = *) +(* let stat = if follow then Unix.stat else Unix.lstat in *) +(* let rec find_rec depth visiting filename = *) +(* try *) +(* let {Unix.st_dev, st_ino, st_kind} = stat filename in *) +(* let continue = hide_exn (on_path filename) infos in *) +(* (\* a directory is identified by the id pair *\) *) +(* let id = st_dev, st_ino in *) +(* if st_kind = S_DIR && depth > 0 && continue && *) +(* (\* avoid cycle when it's symbol link *\) *) +(* (not follow || not (List.mem id visiting)) *) +(* then *) +(* let rec iter_dir f root = *) +(* let files = Sys.readdir root in *) +(* Array.iter f files *) +(* in *) +(* let process_child child = let open Filename in *) +(* if (child <> current_dir_name && *) +(* (\* remove the case "." or ".." *\) *) +(* child <> parent_dir_name ) then *) +(* let child_name = concat filename child in *) +(* let visiting = *) +(* (\* we only keep track when follow is specified *\) *) +(* if follow then id :: visiting else visiting in *) +(* find_rec (depth - 1) visiting child_name in *) +(* iter_dir process_child filename *) +(* with *) +(* Unix_error (e,b,c) -> hide_exn on_error (e,b,c) *) +(* in *) +(* reveal_exn (List.iter (find_rec depth [] )) roots *) + + +let buffer_size = 8192 +let buffer = String.create buffer_size + +let file_copy input output = Unix.( + let fd_in = openfile input [O_RDONLY] 0 in + let fd_out = openfile output [O_WRONLY; O_CREAT; O_TRUNC] 0o666 in + let rec copy_loop () = match read fd_in buffer 0 buffer_size with + |0 -> () + |r -> write fd_out buffer 0 r |> ignore; copy_loop () in + copy_loop (); + close fd_in ; + close fd_out +) + + +let copy () = + if Array.length Sys.argv = 3 then begin + file_copy Sys.argv.(1) Sys.argv.(2) + end + else begin + prerr_endline + ("Usage: " ^ Sys.argv.(0) ^ " "); + exit 1 + end + +let _ = Unix.handle_unix_error copy () + + diff --git a/books/hol_light.tex b/books/hol_light.tex new file mode 100644 index 0000000..6965f7b --- /dev/null +++ b/books/hol_light.tex @@ -0,0 +1,10 @@ +\subsection{hol-light} +\label{sec:hol-light} +\begin{itemize} +\item \href{http://code.google.com/p/hol-light/}{hol-light} +\end{itemize} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "../master" +%%% End: diff --git a/books/myocamlbuild.ml b/books/myocamlbuild.ml new file mode 120000 index 0000000..7922fbe --- /dev/null +++ b/books/myocamlbuild.ml @@ -0,0 +1 @@ +/Users/bob/myocamlbuild.ml \ No newline at end of file diff --git a/books/ocaml_for_scientists.log b/books/ocaml_for_scientists.log new file mode 100644 index 0000000..7d27d20 --- /dev/null +++ b/books/ocaml_for_scientists.log @@ -0,0 +1,1220 @@ +This is pdfTeX, Version 3.1415926-1.40.11 (TeX Live 2010) (format=latex 2010.10.24) 3 DEC 2011 11:46 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**\input ocaml_for_scientists.tex +(./ocaml_for_scientists.tex +! Undefined control sequence. +l.1 \subsection + {Ocaml for scientists} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + + +! LaTeX Error: Missing \begin{document}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.1 \subsection{O + caml for scientists} +You're in trouble here. Try typing to proceed. +If that doesn't work, type X to quit. + +Missing character: There is no O in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no s in font nullfont! + +Overfull \hbox (20.0pt too wide) in paragraph at lines 1--3 +[] + [] + +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! + +Overfull \hbox (62.99945pt too wide) in paragraph at lines 6--9 +[]\OT1/cmtt/m/n/10 'a' = '\097' + [] + + +Overfull \hbox (89.24922pt too wide) in paragraph at lines 6--9 +[]\OT1/cmtt/m/n/10 "Hello world".[4] + [] + + +! LaTeX Error: Environment inverseverbatim undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.10 \begin{inverseverbatim} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no [ in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no 3 in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no ] in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no 2 in font nullfont! + +! LaTeX Error: \begin{itemize} on input line 5 ended by \end{inverseverbatim}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.12 \end{inverseverbatim} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no j in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no s in font nullfont! + +! LaTeX Error: Environment inverseverbatim undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.16 \begin{inverseverbatim} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no ' in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no j in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no j in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no j in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no 3 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no . in font nullfont! +! You can't use `macro parameter character #' in vertical mode. +l.34 # + let b = new complex 3. 4.;; +Sorry, but I'm not programmed to handle this case; +I'll just pretend that you didn't ask for it. +If you're in the wrong mode, you might be able to +return to the right one by typing `I}' or `I$' or `I\par'. + +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no 3 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no j in font nullfont! +Missing character: There is no > in font nullfont! +! You can't use `macro parameter character #' in horizontal mode. +l.36 # + let b : number = new complex 3. 4.;; +Sorry, but I'm not programmed to handle this case; +I'll just pretend that you didn't ask for it. +If you're in the wrong mode, you might be able to +return to the right one by typing `I}' or `I$' or `I\par'. + +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no 3 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no j in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no j in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no s in font nullfont! +! You can't use `macro parameter character #' in horizontal mode. +l.40 # + let make_z x y = object +Sorry, but I'm not programmed to handle this case; +I'll just pretend that you didn't ask for it. +If you're in the wrong mode, you might be able to +return to the right one by typing `I}' or `I$' or `I\par'. + +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +! Missing $ inserted. + + $ +l.40 # let make_ + z x y = object +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <7> on input line 40. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <5> on input line 40. +! Missing $ inserted. + + $ +l.47 + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.47 + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (26.14006pt too wide) in paragraph at lines 39--47 +[]\OML/cmm/m/it/10 xy \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (51.36755pt too wide) in paragraph at lines 39--47 +\OML/cmm/m/it/10 objectvalx \OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (33.45258pt too wide) in paragraph at lines 39--47 +\OML/cmm/m/it/10 float \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (30.20483pt too wide) in paragraph at lines 39--47 +\OML/cmm/m/it/10 xvaly \OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (33.45258pt too wide) in paragraph at lines 39--47 +\OML/cmm/m/it/10 float \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (58.12393pt too wide) in paragraph at lines 39--47 +\OML/cmm/m/it/10 ymethodre \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (61.35724pt too wide) in paragraph at lines 39--47 +\OML/cmm/m/it/10 xmethodim \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (78.09268pt too wide) in paragraph at lines 39--47 +\OML/cmm/m/it/10 yend\OT1/cmr/m/n/10 ; ; \OML/cmm/m/it/10 valmake[] \OT1/cmr/m/ +n/10 : + [] + + +Overfull \hbox (41.23038pt too wide) in paragraph at lines 39--47 +\OML/cmm/m/it/10 float\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (49.00818pt too wide) in paragraph at lines 39--47 +\OML/cmm/m/it/10 float\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 >< + [] + + +Overfull \hbox (17.78076pt too wide) in paragraph at lines 39--47 +\OML/cmm/m/it/10 im \OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (42.3426pt too wide) in paragraph at lines 39--47 +\OML/cmm/m/it/10 float\OT1/cmr/m/n/10 ; \OML/cmm/m/it/10 re \OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (49.00818pt too wide) in paragraph at lines 39--47 +\OML/cmm/m/it/10 float >\OT1/cmr/m/n/10 =\OML/cmm/m/it/10 < + [] + + +Overfull \hbox (28.2547pt too wide) in paragraph at lines 39--47 +\OML/cmm/m/it/10 fun > + [] + +! Extra }, or forgotten \endgroup. +\par ...m \@noitemerr {\@@par }\fi \else {\@@par } + \fi +l.47 + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +! You can't use `macro parameter character #' in horizontal mode. +l.49 # + let abs_number (z:number) = +Sorry, but I'm not programmed to handle this case; +I'll just pretend that you didn't ask for it. +If you're in the wrong mode, you might be able to +return to the right one by typing `I}' or `I$' or `I\par'. + +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no s in font nullfont! +! Missing $ inserted. + + $ +l.49 # let abs_ + number (z:number) = +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! You can't use `macro parameter character #' in math mode. +l.51 sqrt (sqr z# + re +. sqr z#im);; +Sorry, but I'm not programmed to handle this case; +I'll just pretend that you didn't ask for it. +If you're in the wrong mode, you might be able to +return to the right one by typing `I}' or `I$' or `I\par'. + +! You can't use `macro parameter character #' in math mode. +l.51 sqrt (sqr z#re +. sqr z# + im);; +Sorry, but I'm not programmed to handle this case; +I'll just pretend that you didn't ask for it. +If you're in the wrong mode, you might be able to +return to the right one by typing `I}' or `I$' or `I\par'. + +! Missing $ inserted. + + $ +l.52 + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.52 + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (48.22003pt too wide) in paragraph at lines 48--52 +[]\OML/cmm/m/it/10 umber\OT1/cmr/m/n/10 (\OML/cmm/m/it/10 z \OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (48.68877pt too wide) in paragraph at lines 48--52 +\OML/cmm/m/it/10 number\OT1/cmr/m/n/10 ) = + [] + + +Overfull \hbox (42.01851pt too wide) in paragraph at lines 48--52 +\OML/cmm/m/it/10 letsqrx \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (10.71529pt too wide) in paragraph at lines 48--52 +\OML/cmm/m/it/10 x \OMS/cmsy/m/n/10 ^^C + [] + + +Overfull \hbox (76.35384pt too wide) in paragraph at lines 48--52 +\OML/cmm/m/it/10 :xinsqrt\OT1/cmr/m/n/10 (\OML/cmm/m/it/10 sqrzre \OT1/cmr/m/n/ +10 + + [] + + +Overfull \hbox (47.17085pt too wide) in paragraph at lines 48--52 +\OML/cmm/m/it/10 :sqrzim\OT1/cmr/m/n/10 ); ; []$ + [] + +! Extra }, or forgotten \endgroup. +\par ...m \@noitemerr {\@@par }\fi \else {\@@par } + \fi +l.52 + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! + +! LaTeX Error: \begin{itemize} on input line 5 ended by \end{inverseverbatim}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.54 \end{inverseverbatim} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no s in font nullfont! + +! LaTeX Error: Environment inverseverbatim undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.59 \begin{inverseverbatim} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no [ in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no 3 in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no ] in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no f in font nullfont! +! Missing $ inserted. + + $ +l.60 [1;2;3;4] |> Set.of_ + list |> Set.elements;; +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + + +! LaTeX Error: \begin{itemize} on input line 5 ended by \end{inverseverbatim}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.61 \end{inverseverbatim} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +! Missing $ inserted. + + $ +l.61 \end{inverseverbatim} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (28.1465pt too wide) in paragraph at lines 60--62 +[]\OML/cmm/m/it/10 ist\OMS/cmsy/m/n/10 j \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (65.20615pt too wide) in paragraph at lines 60--62 +\OML/cmm/m/it/10 Set:elements\OT1/cmr/m/n/10 ; ;$ + [] + +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no U in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no ) in font nullfont! + +! LaTeX Error: Environment inverseverbatim undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.68 \begin{inverseverbatim} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no T in font nullfont! +! Missing $ inserted. + + $ +l.69 module type INT_ + RANGE = sig +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + + +! LaTeX Error: \begin{itemize} on input line 3 ended by \end{inverseverbatim}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.73 \end{inverseverbatim} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +! Missing $ inserted. + + $ +l.73 \end{inverseverbatim} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (49.56139pt too wide) in paragraph at lines 69--74 +[]\OML/cmm/m/it/10 ANGE \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (78.90353pt too wide) in paragraph at lines 69--74 +\OML/cmm/m/it/10 sigtypetvalmake \OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (31.3919pt too wide) in paragraph at lines 69--74 +\OML/cmm/m/it/10 int\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (31.3919pt too wide) in paragraph at lines 69--74 +\OML/cmm/m/it/10 int\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (19.4746pt too wide) in paragraph at lines 69--74 +\OML/cmm/m/it/10 tend$ + [] + +Missing character: There is no H in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no H in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +! Undefined control sequence. +l.78 {\bf + to abstract types} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no H in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! + +Overfull \hbox (13.7999pt too wide) in paragraph at lines 76--81 +\OT1/cmr/m/it/10 Se- + [] + + +Overfull \hbox (22.48875pt too wide) in paragraph at lines 76--81 +\OT1/cmr/m/it/10 man- + [] + + +Overfull \hbox (9.96658pt too wide) in paragraph at lines 76--81 +\OT1/cmr/m/it/10 ti- + [] + + +Overfull \hbox (19.67763pt too wide) in paragraph at lines 76--81 +\OT1/cmr/m/it/10 cally + [] + + +Overfull \hbox (25.29979pt too wide) in paragraph at lines 76--81 +\OT1/cmr/m/it/10 equiv- + [] + + +Overfull \hbox (8.68883pt too wide) in paragraph at lines 76--81 +\OT1/cmr/m/it/10 a- + [] + + +Overfull \hbox (16.09988pt too wide) in paragraph at lines 76--81 +\OT1/cmr/m/it/10 lent + [] + + +Overfull \hbox (16.09988pt too wide) in paragraph at lines 76--81 +\OT1/cmr/m/it/10 sets + [] + + +Overfull \hbox (13.41655pt too wide) in paragraph at lines 76--81 +\OT1/cmr/m/it/10 are + [] + + +Overfull \hbox (22.23317pt too wide) in paragraph at lines 76--81 +\OT1/cmr/m/it/10 likely + [] + + +Overfull \hbox (8.43327pt too wide) in paragraph at lines 76--81 +\OT1/cmr/m/it/10 to + [] + + +Overfull \hbox (17.50542pt too wide) in paragraph at lines 76--81 +\OT1/cmr/m/it/10 pro- + [] + + +Overfull \hbox (19.16652pt too wide) in paragraph at lines 76--81 +\OT1/cmr/m/it/10 duce + [] + + +Overfull \hbox (14.82213pt too wide) in paragraph at lines 76--81 +\OT1/cmr/m/it/10 dif- + [] + + +Overfull \hbox (15.46098pt too wide) in paragraph at lines 76--81 +\OT1/cmr/m/it/10 fer- + [] + + +Overfull \hbox (13.54434pt too wide) in paragraph at lines 76--81 +\OT1/cmr/m/it/10 ent + [] + + +Overfull \hbox (28.11095pt too wide) in paragraph at lines 76--81 +\OT1/cmr/m/it/10 hashes + [] + +) +! Emergency stop. +<*> \input ocaml_for_scientists.tex + +*** (job aborted, no legal \end found) + + +Here is how much of TeX's memory you used: + 18 strings out of 493748 + 319 string characters out of 3143568 + 52070 words of memory out of 3000000 + 3408 multiletter control sequences out of 15000+200000 + 4154 words of font info for 16 fonts, out of 3000000 for 9000 + 714 hyphenation exceptions out of 8191 + 18i,2n,14p,126b,213s stack positions out of 5000i,500n,10000p,200000b,50000s +No pages of output. diff --git a/books/ocaml_for_scientists.tex b/books/ocaml_for_scientists.tex new file mode 100644 index 0000000..fb52d3a --- /dev/null +++ b/books/ocaml_for_scientists.tex @@ -0,0 +1,99 @@ +\subsection{Ocaml for scientists} +\label{sec:ocaml-scientists} +\begin{itemize} +\item caveat + \begin{itemize} + \item string char + \verb|'a' = '\097'| + \verb|"Hello world".[4]| + +\begin{alternate} + [|1;2;3|].(1) + 2 +\end{alternate} + + \item objects + +\begin{redcode} + +(* it's a type class type *) +class type number = object + method im:float + method re:float +end +\end{redcode} + +\begin{redcode} +class complex x y = object + val x = x + val y = y + method re:float = x + method im:float = y +end ;; +let b : number = new complex 3. 4. +\end{redcode} + +\begin{alternate} +# let b = new complex 3. 4.;; +val b : complex = +# let b : number = new complex 3. 4.;; +val b : number = + \end{alternate} + +\begin{redcode} +# let make_z x y = object + val x : float = x + val y : float = y + method re = x + method im = y + end;; + \end{redcode} +\begin{bluecode} +val make_z : float -> float -> < im : float; re : float > = +\end{bluecode} + +class type is kinda interface + + +\begin{redcode} +# let abs_number (z:number) = + let sqr x = x *. x in + sqrt (sqr z#re +. sqr z#im);; + \end{redcode} + +think class as a module + + + \item asr (arith) (**) lsr + \item elements + +\begin{alternate} + [1;2;3;4] |> Set.of_list |> Set.elements;; + - : int list = [1; 2; 3; 4] +\end{alternate} + + + \end{itemize} +\item convention +\item GMP (GNU library for arbitrary precision arithmetic) + +\begin{bluecode} +module type INT_RANGE = sig +type t +val make : int -> int -> t +end +\end{bluecode} + + +\item Hashtbl(create, Make) + Hahsing is another form of structural comparison and should not be applied + {\bf to abstract types} + \emph{Semantically equivalent sets are likely to produce different hashes} + notice \textit{Map.empty is polymorphic, Hashtbl.empty is monomorphic} +\end{itemize} + + +%%% Local Variables: +%%% mode: LaTex +%%% TeX-master: "../master" +%%% End: diff --git a/books/practical_ocaml.tex b/books/practical_ocaml.tex new file mode 100644 index 0000000..4c0f2ad --- /dev/null +++ b/books/practical_ocaml.tex @@ -0,0 +1,16 @@ +\subsection{practical ocaml} +\label{sec:practical-ocaml} + + +\begin{enumerate} +\item chap30 \\ + + \begin{bluetext} +external functions_can_be_defined: unit -> unit = "int_c_code" + \end{bluetext} +\end{enumerate} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "../master" +%%% End: diff --git a/books/texput.log b/books/texput.log new file mode 100644 index 0000000..664701c --- /dev/null +++ b/books/texput.log @@ -0,0 +1,21 @@ +This is pdfTeX, Version 3.1415926-1.40.11 (TeX Live 2010) (format=latex 2010.10.24) 3 DEC 2011 16:15 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**\input master.tex + +! Emergency stop. +<*> \input master.tex + +*** (job aborted, file error in nonstop mode) + + +Here is how much of TeX's memory you used: + 3 strings out of 493748 + 100 string characters out of 3143568 + 49070 words of memory out of 3000000 + 3397 multiletter control sequences out of 15000+200000 + 3640 words of font info for 14 fonts, out of 3000000 for 9000 + 714 hyphenation exceptions out of 8191 + 4i,0n,3p,1b,8s stack positions out of 5000i,500n,10000p,200000b,50000s +No pages of output. diff --git a/books/the_functional_approach_to_programming.tex b/books/the_functional_approach_to_programming.tex new file mode 100644 index 0000000..34211cb --- /dev/null +++ b/books/the_functional_approach_to_programming.tex @@ -0,0 +1,7 @@ +\subsection{The functional approach to programming} +\label{sec:funct-appr-progr} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "../master" +%%% End: diff --git a/books/unix_system_programming_in_ocaml.log b/books/unix_system_programming_in_ocaml.log new file mode 100644 index 0000000..49192a3 --- /dev/null +++ b/books/unix_system_programming_in_ocaml.log @@ -0,0 +1,4505 @@ +This is pdfTeX, Version 3.1415926-1.40.11 (TeX Live 2010) (format=pdflatex 2010.10.24) 15 DEC 2011 19:57 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**unix_system_programming_in_ocaml.tex +(./unix_system_programming_in_ocaml.tex +LaTeX2e <2009/09/24> +Babel and hyphenation patterns for english, dumylang, nohyphenation, ge +rman-x-2009-06-19, ngerman-x-2009-06-19, ancientgreek, ibycus, arabic, armenian +, basque, bulgarian, catalan, pinyin, coptic, croatian, czech, danish, dutch, u +kenglish, usenglishmax, esperanto, estonian, farsi, finnish, french, galician, +german, ngerman, swissgerman, monogreek, greek, hungarian, icelandic, assamese, + bengali, gujarati, hindi, kannada, malayalam, marathi, oriya, panjabi, tamil, +telugu, indonesian, interlingua, irish, italian, kurmanji, lao, latin, latvian, + lithuanian, mongolian, mongolianlmc, bokmal, nynorsk, polish, portuguese, roma +nian, russian, sanskrit, serbian, slovak, slovenian, spanish, swedish, turkish, + turkmen, ukrainian, uppersorbian, welsh, loaded. +! Undefined control sequence. +l.1 \subsection + {UNIX system programming in ocaml} +? q +OK, entering \batchmode... + +! LaTeX Error: Missing \begin{document}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.1 \subsection{U + NIX system programming in ocaml} +You're in trouble here. Try typing to proceed. +If that doesn't work, type X to quit. + +Missing character: There is no U in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no X in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! + +Overfull \hbox (20.0pt too wide) in paragraph at lines 1--3 +[] + [] + +! Undefined control sequence. +l.4 \subsubsection + {chap1} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + + +! LaTeX Error: Missing \begin{document}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.4 \subsubsection{c + hap1} +You're in trouble here. Try typing to proceed. +If that doesn't work, type X to quit. + +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 1 in font nullfont! + +Overfull \hbox (20.0pt too wide) in paragraph at lines 4--6 +[] + [] + + +! LaTeX Error: Missing \begin{document}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.7 \begin{enumerate} + +You're in trouble here. Try typing to proceed. +If that doesn't work, type X to quit. + + +Overfull \hbox (20.0pt too wide) in paragraph at lines 7--7 +[] + [] + +Missing character: There is no M in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no U in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no U in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no W in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no U in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no . in font nullfont! + +Overfull \hbox (16.99434pt too wide) in paragraph at lines 8--11 +\OT1/cmr/bx/n/10 Sys + [] + + +Overfull \hbox (24.49986pt too wide) in paragraph at lines 8--11 +\OT1/cmr/bx/n/10 Unix + [] + +Missing character: There is no T in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! + +! LaTeX Error: Environment alternate undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.14 \begin{alternate} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no U in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no B in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no U in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +! Missing $ inserted. + + $ +l.16 - : Batteries.Unix.file_ + descr = +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <7> on input line 16. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <5> on input line 16. + +! LaTeX Error: \begin{enumerate} on input line 7 ended by \end{alternate}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.19 \end{alternate} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +! Missing $ inserted. + + $ +l.19 \end{alternate} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (14.56657pt too wide) in paragraph at lines 12--20 +\OT1/cmr/m/it/10 Sys + [] + + +Overfull \hbox (20.761pt too wide) in paragraph at lines 12--20 +\OT1/cmr/m/it/10 Unix + [] + + +Overfull \hbox (19.17763pt too wide) in paragraph at lines 12--20 +\OT1/cmr/m/it/10 Per- + [] + + +Overfull \hbox (13.28879pt too wide) in paragraph at lines 12--20 +\OT1/cmr/m/it/10 va- + [] + + +Overfull \hbox (20.4443pt too wide) in paragraph at lines 12--20 +\OT1/cmr/m/it/10 sives + [] + + +Overfull \hbox (41.45688pt too wide) in paragraph at lines 12--20 +[]\OML/cmm/m/it/10 escr \OT1/cmr/m/n/10 =\OML/cmm/m/it/10 < + [] + + +Overfull \hbox (33.22104pt too wide) in paragraph at lines 12--20 +\OML/cmm/m/it/10 abstr > + [] + + +Overfull \hbox (98.37984pt too wide) in paragraph at lines 12--20 +\OML/cmm/m/it/10 Pervasives:stdin\OT1/cmr/m/n/10 ; ; \OMS/cmsy/m/n/10 ^^@ \OT1/ +cmr/m/n/10 : + [] + + +Overfull \hbox (62.74355pt too wide) in paragraph at lines 12--20 +\OML/cmm/m/it/10 in[]hannel \OT1/cmr/m/n/10 =\OML/cmm/m/it/10 < + [] + + +Overfull \hbox (33.22104pt too wide) in paragraph at lines 12--20 +\OML/cmm/m/it/10 abstr >$ + [] + + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.21 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no < in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +! Missing $ inserted. + + $ +l.22 : use_ + unix +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + + +! LaTeX Error: \begin{enumerate} on input line 7 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.24 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +! Missing $ inserted. + + $ +l.24 \end{bluecode} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (82.38057pt too wide) in paragraph at lines 22--25 +[]\OML/cmm/m/it/10 nixocamlmktop \OMS/cmsy/m/n/10 ^^@ + [] + + +Overfull \hbox (94.21465pt too wide) in paragraph at lines 22--25 +\OML/cmm/m/it/10 oocamlunixunix:cma$ + [] + +Missing character: There is no W in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no W in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no H in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no . in font nullfont! + +Overfull \hbox (14.15964pt too wide) in paragraph at lines 26--32 +\OT1/cmr/bx/n/10 ar- + [] + + +Overfull \hbox (15.97214pt too wide) in paragraph at lines 26--32 +\OT1/cmr/bx/n/10 gu- + [] + + +Overfull \hbox (29.93178pt too wide) in paragraph at lines 26--32 +\OT1/cmr/bx/n/10 ments + [] + + +Overfull \hbox (15.49298pt too wide) in paragraph at lines 26--32 +\OT1/cmr/bx/n/10 en- + [] + + +Overfull \hbox (13.09715pt too wide) in paragraph at lines 26--32 +\OT1/cmr/bx/n/10 vi- + [] + + +Overfull \hbox (20.70824pt too wide) in paragraph at lines 26--32 +\OT1/cmr/bx/n/10 ron- + [] + + +Overfull \hbox (25.3957pt too wide) in paragraph at lines 26--32 +\OT1/cmr/bx/n/10 ment + [] + + +Overfull \hbox (10.73328pt too wide) in paragraph at lines 26--32 +\OT1/cmr/m/it/10 an + [] + + +Overfull \hbox (12.81657pt too wide) in paragraph at lines 26--32 +\OT1/cmr/m/it/10 ex- + [] + + +Overfull \hbox (17.37762pt too wide) in paragraph at lines 26--32 +\OT1/cmr/m/it/10 cep- + [] + + +Overfull \hbox (17.12212pt too wide) in paragraph at lines 26--32 +\OT1/cmr/m/it/10 tion + [] + + +Overfull \hbox (15.84436pt too wide) in paragraph at lines 26--32 +\OT1/cmr/m/it/10 was + [] + + +Overfull \hbox (25.17203pt too wide) in paragraph at lines 26--32 +\OT1/cmr/m/it/10 raised + [] + + +Overfull \hbox (13.28879pt too wide) in paragraph at lines 26--32 +\OT1/cmr/m/it/10 but + [] + + +Overfull \hbox (14.05547pt too wide) in paragraph at lines 26--32 +\OT1/cmr/m/it/10 not + [] + + +Overfull \hbox (27.5998pt too wide) in paragraph at lines 26--32 +\OT1/cmr/m/it/10 caught + [] + + +Overfull \hbox (15.62767pt too wide) in paragraph at lines 26--32 +\OT1/cmr/m/it/10 exit + [] + + +Overfull \hbox (5.11108pt too wide) in paragraph at lines 26--32 +\OT1/cmr/m/it/10 2 + [] + + +Overfull \hbox (27.74092pt too wide) in paragraph at lines 26--32 +\OT1/cmr/m/it/10 at[]exit + [] + + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.33 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no S in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no U in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +! Missing $ inserted. + + $ +l.35 Pervasives.exit, Pervasives.at_ + exit, Unix.handle_unix_error +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + + +! LaTeX Error: \begin{enumerate} on input line 7 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.36 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +! Missing $ inserted. + + $ +l.36 \end{bluecode} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +! LaTeX Error: Environment alternate undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.37 \begin{alternate} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no S in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no ; in font nullfont! + +! LaTeX Error: \begin{enumerate} on input line 7 ended by \end{alternate}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.39 \end{alternate} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.40 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no - in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no U in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no + in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no 6 in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no 7 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no 9 in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no ] in font nullfont! + +! LaTeX Error: \begin{enumerate} on input line 7 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.44 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + + +! LaTeX Error: Environment alternate undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.45 \begin{alternate} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no U in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no ; in font nullfont! + +! LaTeX Error: \begin{enumerate} on input line 7 ended by \end{alternate}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.47 \end{alternate} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.48 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no - in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no R in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no H in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no R in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no R in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no R in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no X in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no H in font nullfont! +Missing character: There is no 6 in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no V in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no z in font nullfont! +Missing character: There is no U in font nullfont! +Missing character: There is no + in font nullfont! +Missing character: There is no + in font nullfont! +Missing character: There is no + in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no B in font nullfont! +Missing character: There is no R in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no R in font nullfont! +Missing character: There is no Y in font nullfont! +! Missing $ inserted. + + $ +l.52 "LIBRARY_ + PATH=/opt/local/lib/"; +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing { inserted. + + _ +l.59 "__ + CF_USER_TEXT_ENCODING=0x1F5:0:0"; "COLUMNS=68"; +A left brace was mandatory here, so I've put one in. +You might want to delete and/or insert some corrections +so that I will find a matching right brace soon. +(If you're confused by all this, try typing `I}' now.) + + +! LaTeX Error: \begin{enumerate} on input line 7 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.70 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +! Missing } inserted. + + } +l.70 \end{bluecode} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + +! Missing $ inserted. + + $ +l.70 \end{bluecode} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (121.36038pt too wide) in paragraph at lines 34--71 +[]\OML/cmm/m/it/10 xit; Unix:handle[]nix[]rror$ + [] + + +Overfull \hbox (41.08086pt too wide) in paragraph at lines 34--71 +[]\OML/cmm/m/it/10 ATH \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (161.8392pt too wide) in paragraph at lines 34--71 +\OML/cmm/m/it/10 =opt=local=lib=\OT1/cmr/m/n/10 "; "\OML/cmm/m/it/10 EMACSDATA +\OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (389.17946pt too wide) in paragraph at lines 34--71 +\OML/cmm/m/it/10 =Applications=Aquamacs:app=Contents=Resources=etc\OT1/cmr/m/n/ +10 "; "\OML/cmm/m/it/10 Apple[]ubSub[]ocket[]ender \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (65.48286pt too wide) in paragraph at lines 34--71 +\OML/cmm/m/it/10 =tmp=launch \OMS/cmsy/m/n/10 ^^@ + [] + + +Overfull \hbox (177.27576pt too wide) in paragraph at lines 34--71 +\OML/cmm/m/it/10 mcHkKo=Render\OT1/cmr/m/n/10 "; "\OML/cmm/m/it/10 EMACSPATH \O +T1/cmr/m/n/10 = + [] + + +Overfull \hbox (342.10779pt too wide) in paragraph at lines 34--71 +\OML/cmm/m/it/10 =Applications=Aquamacs:app=Contents=MacOS=bin\OT1/cmr/m/n/10 " +; "\OML/cmm/m/it/10 INCLUDE[]ATH \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (152.67354pt too wide) in paragraph at lines 34--71 +\OML/cmm/m/it/10 =opt=local=include=\OT1/cmr/m/n/10 "; "\OML/cmm/m/it/10 EMACS +\OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (58.86588pt too wide) in paragraph at lines 34--71 +\OML/cmm/m/it/10 t\OT1/cmr/m/n/10 "; "\OML/cmm/m/it/10 USER \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (131.93994pt too wide) in paragraph at lines 34--71 +\OML/cmm/m/it/10 bob\OT1/cmr/m/n/10 "; "\OML/cmm/m/it/10 LD[]IBRARY[]ATH \OT1/c +mr/m/n/10 = + [] + + +Overfull \hbox (185.7815pt too wide) in paragraph at lines 34--71 +\OML/cmm/m/it/10 =opt=local=lib=\OT1/cmr/m/n/10 "; "\OML/cmm/m/it/10 COMMAND[]O +DE \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (122.71165pt too wide) in paragraph at lines 34--71 +\OML/cmm/m/it/10 unix\OT1/cmr/m/n/10 2003"; "\OML/cmm/m/it/10 TERMCAP \OT1/cmr/ +m/n/10 = + [] + + +Overfull \hbox (107.47562pt too wide) in paragraph at lines 34--71 +\OT1/cmr/m/n/10 "; "\OML/cmm/m/it/10 SSH[]UTH[]OCK \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (65.48286pt too wide) in paragraph at lines 34--71 +\OML/cmm/m/it/10 =tmp=launch \OMS/cmsy/m/n/10 ^^@ + [] + + +Overfull \hbox (4572.34988pt too wide) in paragraph at lines 34--71 +\OML/cmm/m/it/10 g\OT1/cmr/m/n/10 9\OML/cmm/m/it/10 AcyQ=Listeners\OT1/cmr/m/n/ +10 "; "[]$ + [] + +Missing character: There is no E in font nullfont! +Missing character: There is no R in font nullfont! +Missing character: There is no R in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no R in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! + +! LaTeX Error: Environment bluetext undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.73 \begin{bluetext} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no U in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no x in font nullfont! +! Missing $ inserted. + + $ +l.74 exception Unix_ + error of error * string * string +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + + +! LaTeX Error: \begin{enumerate} on input line 7 ended by \end{bluetext}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.76 \end{bluetext} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +! Missing $ inserted. + + $ +l.76 \end{bluetext} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + +Missing character: There is no T in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no j in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! + +Overfull \hbox (63.20055pt too wide) in paragraph at lines 72--82 +[]\OML/cmm/m/it/10 rroroferror \OMS/cmsy/m/n/10 ^^C + [] + + +Overfull \hbox (32.66394pt too wide) in paragraph at lines 72--82 +\OML/cmm/m/it/10 string \OMS/cmsy/m/n/10 ^^C + [] + + +Overfull \hbox (80.65126pt too wide) in paragraph at lines 72--82 +\OML/cmm/m/it/10 stringtypeerror \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (157.2273pt too wide) in paragraph at lines 72--82 +\OML/cmm/m/it/10 E\OT1/cmr/m/n/10 2\OML/cmm/m/it/10 BIG\OMS/cmsy/m/n/10 j\OML/c +mm/m/it/10 :::\OMS/cmsy/m/n/10 j\OML/cmm/m/it/10 EUNKNOWERRofint$ + [] + + +Overfull \hbox (46.29079pt too wide) in paragraph at lines 72--82 +\OT1/cmr/m/it/10 Unix[]error + [] + + +Overfull \hbox (100.35382pt too wide) in paragraph at lines 72--82 +\OT1/cmr/m/it/10 Unix.handle[]unix[]error + [] + + +Overfull \hbox (46.29079pt too wide) in paragraph at lines 72--82 +\OT1/cmr/m/it/10 Unix[]error + [] + + +Overfull \hbox (15.62767pt too wide) in paragraph at lines 72--82 +\OT1/cmr/m/it/10 exit + [] + + +Overfull \hbox (6.46664pt too wide) in paragraph at lines 72--82 +\OT1/cmr/m/it/10 2 + [] + + +! LaTeX Error: Environment redcode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.84 \begin{redcode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +! Missing $ inserted. + + $ +l.85 let handle_ + unix_error2 f arg = let open Unix in +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + + +LaTeX Warning: Command \" invalid in math mode on input line 90. + + +LaTeX Warning: Command \" invalid in math mode on input line 90. + +LaTeX Font Info: Try loading font information for +cmr on input line 90. +LaTeX Font Info: No file cmr.fd. on input line 90. + +LaTeX Font Warning: Font shape `/cmr/m/n' undefined +(Font) using `/cmr/m/n' instead on input line 90. + +! Corrupted NFSS tables. +wrong@fontshape ...message {Corrupted NFSS tables} + error@fontshape else let f... +l.90 prerr_string ": \"" + ; +This error message was generated by an \errmessage +command, so I can't give any explicit help. +Pretend that you're Hercule Poirot: Examine all clues, +and deduce the truth by order and method. + + +LaTeX Font Warning: Font shape `/cmr/m/n' undefined +(Font) using `OT1/cmr/m/n' instead on input line 90. + +! Please use \mathaccent for accents in math mode. +\add@accent ...@spacefactor \spacefactor }\accent + #1 #2\egroup \spacefactor ... +l.90 prerr_string ": \"" + ; +I'm changing \accent to \mathaccent here; wish me luck. +(Accents are not the same in formulas as they are in text.) + +! Missing { inserted. + + \edef +l.90 prerr_string ": \"" + ; +A left brace was mandatory here, so I've put one in. +You might want to delete and/or insert some corrections +so that I will find a matching right brace soon. +(If you're confused by all this, try typing `I}' now.) + +! You can't use `\spacefactor' in math mode. +\add@accent ...}\accent #1 #2\egroup \spacefactor + \accent@spacefactor +l.90 prerr_string ": \"" + ; +Sorry, but I'm not programmed to handle this case; +I'll just pretend that you didn't ask for it. +If you're in the wrong mode, you might be able to +return to the right one by typing `I}' or `I$' or `I\par'. + + +LaTeX Warning: Command \" invalid in math mode on input line 92. + +! Please use \mathaccent for accents in math mode. +\add@accent ...@spacefactor \spacefactor }\accent + #1 #2\egroup \spacefactor ... +l.92 prerr_string "\" f + ailed"; +I'm changing \accent to \mathaccent here; wish me luck. +(Accents are not the same in formulas as they are in text.) + +! You can't use `\spacefactor' in math mode. +\add@accent ...}\accent #1 #2\egroup \spacefactor + \accent@spacefactor +l.92 prerr_string "\" f + ailed"; +Sorry, but I'm not programmed to handle this case; +I'll just pretend that you didn't ask for it. +If you're in the wrong mode, you might be able to +return to the right one by typing `I}' or `I$' or `I\par'. + + +LaTeX Warning: Command \" invalid in math mode on input line 94. + +! Please use \mathaccent for accents in math mode. +\add@accent ...@spacefactor \spacefactor }\accent + #1 #2\egroup \spacefactor ... +l.94 prerr_string " on \"" + ; +I'm changing \accent to \mathaccent here; wish me luck. +(Accents are not the same in formulas as they are in text.) + +! You can't use `\spacefactor' in math mode. +\add@accent ...}\accent #1 #2\egroup \spacefactor + \accent@spacefactor +l.94 prerr_string " on \"" + ; +Sorry, but I'm not programmed to handle this case; +I'll just pretend that you didn't ask for it. +If you're in the wrong mode, you might be able to +return to the right one by typing `I}' or `I$' or `I\par'. + + +LaTeX Warning: Command \" invalid in math mode on input line 96. + +! Please use \mathaccent for accents in math mode. +\add@accent ...@spacefactor \spacefactor }\accent + #1 #2\egroup \spacefactor ... +l.96 prerr_string "\"" + end; +I'm changing \accent to \mathaccent here; wish me luck. +(Accents are not the same in formulas as they are in text.) + +! You can't use `\spacefactor' in math mode. +\add@accent ...}\accent #1 #2\egroup \spacefactor + \accent@spacefactor +l.96 prerr_string "\"" + end; +Sorry, but I'm not programmed to handle this case; +I'll just pretend that you didn't ask for it. +If you're in the wrong mode, you might be able to +return to the right one by typing `I}' or `I$' or `I\par'. + + +! LaTeX Error: \begin{enumerate} on input line 7 ended by \end{redcode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.100 \end{redcode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +! Missing } inserted. + + } +l.100 \end{redcode} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + +! Missing $ inserted. + + $ +l.100 \end{redcode} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + +Missing character: There is no � in font cmex10! +Missing character: There is no � in font cmex10! +Missing character: There is no � in font cmex10! +Missing character: There is no � in font cmex10! + +Overfull \hbox (80.63176pt too wide) in paragraph at lines 85--101 +[]\OML/cmm/m/it/10 nix[]rror\/cmr/m/n/10 2\OML/cmm/m/it/10 farg \/cmr/m/n/10 = + [] + + +Overfull \hbox (271.93558pt too wide) in paragraph at lines 85--101 +\OML/cmm/m/it/10 letopenUnixintryfargwithUnix[]rror\/cmr/m/n/10 (\OML/cmm/m/it/ +10 err; fun[]ame; arg\/cmr/m/n/10 )\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (172.45761pt too wide) in paragraph at lines 85--101 +\OML/cmm/m/it/10 prerr[]tringSys:argv:\/cmr/m/n/10 (0); \OML/cmm/m/it/10 prerr[ +]tring\/cmr/m/n/10 " : + [] + + +Overfull \hbox (822.41716pt too wide) in paragraph at lines 85--101 +[]$ + [] + + +! LaTeX Error: Environment bluetext undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.102 \begin{bluetext} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no v in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +! Missing $ inserted. + + $ +l.103 val handle_ + unix_error2 : ('a -> 'b) -> 'a -> 'b = +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + + +! LaTeX Error: \begin{enumerate} on input line 7 ended by \end{bluetext}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.104 \end{bluetext} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +! Missing $ inserted. + + $ +l.104 \end{bluetext} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (54.45576pt too wide) in paragraph at lines 103--105 +[]\OML/cmm/m/it/10 nix[]rror\/cmr/m/n/10 2 : + [] + + +Overfull \hbox (33.11922pt too wide) in paragraph at lines 103--105 +\/cmr/m/n/10 ([]\OML/cmm/m/it/10 a\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 >[] + [] + + +Overfull \hbox (29.31943pt too wide) in paragraph at lines 103--105 +\OML/cmm/m/it/10 b\/cmr/m/n/10 )\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 >[] + [] + + +Overfull \hbox (26.42476pt too wide) in paragraph at lines 103--105 +\OML/cmm/m/it/10 a\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 >[] + [] + + +Overfull \hbox (22.62497pt too wide) in paragraph at lines 103--105 +\OML/cmm/m/it/10 b \/cmr/m/n/10 =\OML/cmm/m/it/10 < + [] + + +Overfull \hbox (28.2547pt too wide) in paragraph at lines 103--105 +\OML/cmm/m/it/10 fun >$ + [] + + +! LaTeX Error: Environment bluetext undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.106 \begin{bluetext} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no t in font nullfont! +! Missing $ inserted. + + $ +l.107 let rec restart_ + on_EINTR f x = +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Double subscript. +l.108 try f x with Unix_error (EINTR, _, _ + ) -> restart_on_EINTR f x +I treat `x_1_2' essentially like `x_1{}_2'. + + +! LaTeX Error: \begin{enumerate} on input line 7 ended by \end{bluetext}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.109 \end{bluetext} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +! Missing $ inserted. + + $ +l.109 \end{bluetext} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (68.6565pt too wide) in paragraph at lines 107--110 +[]\OML/cmm/m/it/10 n[]INTRfx \/cmr/m/n/10 = + [] + + +Overfull \hbox (162.51918pt too wide) in paragraph at lines 107--110 +\OML/cmm/m/it/10 tryfxwithUnix[]rror\/cmr/m/n/10 (\OML/cmm/m/it/10 EINTR;[] []\ +OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (89.5316pt too wide) in paragraph at lines 107--110 +\OML/cmm/m/it/10 restart[]n[]INTRfx$ + [] + + +! LaTeX Error: Environment alternate undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.111 \begin{alternate} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no ' in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no ' in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no ' in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no ' in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +! Missing $ inserted. + + $ +l.114 finally (fun _ + -> print_endline "finally") (fun _ -> failwith "haha") ... +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + + +! LaTeX Error: \begin{enumerate} on input line 7 ended by \end{alternate}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.115 \end{alternate} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +! Missing $ inserted. + + $ +l.115 \end{alternate} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.116 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no . in font nullfont! + +! LaTeX Error: \begin{enumerate} on input line 7 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.119 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + + +Overfull \hbox (17.30553pt too wide) in paragraph at lines 112--120 +[] \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (140.77577pt too wide) in paragraph at lines 112--120 +\OML/cmm/m/it/10 print[]ndline\/cmr/m/n/10 "\OML/cmm/m/it/10 finally\/cmr/m/n/1 +0 ")(\OML/cmm/m/it/10 fun[] > + [] + + +Overfull \hbox (89.1138pt too wide) in paragraph at lines 112--120 +\OML/cmm/m/it/10 failwith\/cmr/m/n/10 "\OML/cmm/m/it/10 haha\/cmr/m/n/10 ")(); +;$ + [] + +Missing character: There is no I in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no z in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no z in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no ' in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no . in font nullfont! + +Overfull \hbox (13.03323pt too wide) in paragraph at lines 121--124 +\OT1/cmr/m/it/10 the + [] + + +Overfull \hbox (9.19994pt too wide) in paragraph at lines 121--124 +\OT1/cmr/m/it/10 fi- + [] + + +Overfull \hbox (16.86656pt too wide) in paragraph at lines 121--124 +\OT1/cmr/m/it/10 nal- + [] + + +Overfull \hbox (15.9721pt too wide) in paragraph at lines 121--124 +\OT1/cmr/m/it/10 izer + [] + + +Overfull \hbox (7.15552pt too wide) in paragraph at lines 121--124 +\OT1/cmr/m/it/10 is + [] + + +Overfull \hbox (15.20546pt too wide) in paragraph at lines 121--124 +\OT1/cmr/m/it/10 run + [] + + +Overfull \hbox (15.84436pt too wide) in paragraph at lines 121--124 +\OT1/cmr/m/it/10 and + [] + + +Overfull \hbox (13.03323pt too wide) in paragraph at lines 121--124 +\OT1/cmr/m/it/10 the + [] + + +Overfull \hbox (12.81657pt too wide) in paragraph at lines 121--124 +\OT1/cmr/m/it/10 ex- + [] + + +Overfull \hbox (17.37762pt too wide) in paragraph at lines 121--124 +\OT1/cmr/m/it/10 cep- + [] + + +Overfull \hbox (17.12212pt too wide) in paragraph at lines 121--124 +\OT1/cmr/m/it/10 tion + [] + + +Overfull \hbox (9.23883pt too wide) in paragraph at lines 121--124 +\OT1/cmr/m/it/10 ex + [] + + +Overfull \hbox (7.15552pt too wide) in paragraph at lines 121--124 +\OT1/cmr/m/it/10 is + [] + + +Overfull \hbox (25.17203pt too wide) in paragraph at lines 121--124 +\OT1/cmr/m/it/10 raised + [] + + +Overfull \hbox (23.51097pt too wide) in paragraph at lines 121--124 +\OT1/cmr/m/it/10 again + [] + + +Overfull \hbox (23.31932pt too wide) in paragraph at lines 121--124 +\OT1/cmr/bx/n/10 both + [] + +! Undefined control sequence. +l.126 \subsubsection + {chap2} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 2 in font nullfont! + +Overfull \hbox (20.0pt too wide) in paragraph at lines 126--128 +[] + [] + + +Overfull \hbox (20.0pt too wide) in paragraph at lines 129--129 +[] + [] + +Missing character: There is no F in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! + +Overfull \hbox (18.89574pt too wide) in paragraph at lines 130--133 +\OT1/cmr/bx/n/10 File + [] + + +Overfull \hbox (21.72208pt too wide) in paragraph at lines 130--133 +\OT1/cmr/m/it/10 stan- + [] + + +Overfull \hbox (19.03876pt too wide) in paragraph at lines 130--133 +\OT1/cmr/m/it/10 dard + [] + + +Overfull \hbox (19.93321pt too wide) in paragraph at lines 130--133 +\OT1/cmr/m/it/10 files, + [] + + +Overfull \hbox (11.75548pt too wide) in paragraph at lines 130--133 +\OT1/cmr/m/it/10 di- + [] + + +Overfull \hbox (15.97205pt too wide) in paragraph at lines 130--133 +\OT1/cmr/m/it/10 rec- + [] + + +Overfull \hbox (12.01102pt too wide) in paragraph at lines 130--133 +\OT1/cmr/m/it/10 to- + [] + + +Overfull \hbox (19.03876pt too wide) in paragraph at lines 130--133 +\OT1/cmr/m/it/10 ries, + [] + + +Overfull \hbox (20.69986pt too wide) in paragraph at lines 130--133 +\OT1/cmr/m/it/10 sym- + [] + + +Overfull \hbox (19.42207pt too wide) in paragraph at lines 130--133 +\OT1/cmr/m/it/10 bolic + [] + + +Overfull \hbox (22.99986pt too wide) in paragraph at lines 130--133 +\OT1/cmr/m/it/10 links, + [] + + +Overfull \hbox (16.86653pt too wide) in paragraph at lines 130--133 +\OT1/cmr/m/it/10 spe- + [] + + +Overfull \hbox (15.33324pt too wide) in paragraph at lines 130--133 +\OT1/cmr/m/it/10 cial + [] + + +Overfull \hbox (58.26627pt too wide) in paragraph at lines 130--133 +\OT1/cmr/m/it/10 files(devices), + [] + + +Overfull \hbox (28.11093pt too wide) in paragraph at lines 130--133 +\OT1/cmr/m/it/10 named + [] + + +Overfull \hbox (24.53317pt too wide) in paragraph at lines 130--133 +\OT1/cmr/m/it/10 pipes, + [] + + +Overfull \hbox (21.46649pt too wide) in paragraph at lines 130--133 +\OT1/cmr/m/it/10 sock- + [] + + +Overfull \hbox (12.83183pt too wide) in paragraph at lines 130--133 +\OT1/cmr/m/it/10 ets + [] + +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no m in font nullfont! + +! LaTeX Error: Environment bluetext undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.135 \begin{bluetext} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no v in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +! Missing $ inserted. + + $ +l.136 val current_ + dir_name : string +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + + +! LaTeX Error: \begin{enumerate} on input line 129 ended by \end{bluetext}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.153 \end{bluetext} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +! Missing $ inserted. + + $ +l.153 \end{bluetext} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (45.72891pt too wide) in paragraph at lines 133--154 +\OT1/cmr/bx/n/10 Filename + [] + + +Overfull \hbox (42.3407pt too wide) in paragraph at lines 133--154 +[]\OML/cmm/m/it/10 ir[]ame \/cmr/m/n/10 : + [] + + +Overfull \hbox (113.05333pt too wide) in paragraph at lines 133--154 +\OML/cmm/m/it/10 stringvalparent[]ir[]ame \/cmr/m/n/10 : + [] + + +Overfull \hbox (74.0153pt too wide) in paragraph at lines 133--154 +\OML/cmm/m/it/10 stringvaldir[]ep \/cmr/m/n/10 : + [] + + +Overfull \hbox (75.2936pt too wide) in paragraph at lines 133--154 +\OML/cmm/m/it/10 stringvalconcat \/cmr/m/n/10 : + [] + + +Overfull \hbox (45.99724pt too wide) in paragraph at lines 133--154 +\OML/cmm/m/it/10 string\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (45.99724pt too wide) in paragraph at lines 133--154 +\OML/cmm/m/it/10 string\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (89.49402pt too wide) in paragraph at lines 133--154 +\OML/cmm/m/it/10 stringvalis[]elative \/cmr/m/n/10 : + [] + + +Overfull \hbox (45.99724pt too wide) in paragraph at lines 133--154 +\OML/cmm/m/it/10 string\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (79.67746pt too wide) in paragraph at lines 133--154 +\OML/cmm/m/it/10 boolvalis[]mplicit \/cmr/m/n/10 : + [] + + +Overfull \hbox (45.99724pt too wide) in paragraph at lines 133--154 +\OML/cmm/m/it/10 string\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (91.77748pt too wide) in paragraph at lines 133--154 +\OML/cmm/m/it/10 boolvalcheck[]uffix \/cmr/m/n/10 : + [] + + +Overfull \hbox (45.99724pt too wide) in paragraph at lines 133--154 +\OML/cmm/m/it/10 string\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (45.99724pt too wide) in paragraph at lines 133--154 +\OML/cmm/m/it/10 string\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (87.4661pt too wide) in paragraph at lines 133--154 +\OML/cmm/m/it/10 boolvalchop[]uffix \/cmr/m/n/10 : + [] + + +Overfull \hbox (45.99724pt too wide) in paragraph at lines 133--154 +\OML/cmm/m/it/10 string\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (45.99724pt too wide) in paragraph at lines 133--154 +\OML/cmm/m/it/10 string\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (110.12083pt too wide) in paragraph at lines 133--154 +\OML/cmm/m/it/10 stringvalchop[]xtension \/cmr/m/n/10 : + [] + + +Overfull \hbox (45.99724pt too wide) in paragraph at lines 133--154 +\OML/cmm/m/it/10 string\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (90.53784pt too wide) in paragraph at lines 133--154 +\OML/cmm/m/it/10 stringvalbasename \/cmr/m/n/10 : + [] + + +Overfull \hbox (45.99724pt too wide) in paragraph at lines 133--154 +\OML/cmm/m/it/10 string\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (85.0559pt too wide) in paragraph at lines 133--154 +\OML/cmm/m/it/10 stringvaldirname \/cmr/m/n/10 : + [] + + +Overfull \hbox (45.99724pt too wide) in paragraph at lines 133--154 +\OML/cmm/m/it/10 string\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (85.4367pt too wide) in paragraph at lines 133--154 +\OML/cmm/m/it/10 stringvaltemp[]ile \/cmr/m/n/10 : + [] + + +Overfull \hbox (45.25386pt too wide) in paragraph at lines 133--154 +\/cmr/m/n/10 ?\OML/cmm/m/it/10 temp[]ir \/cmr/m/n/10 : + [] + + +Overfull \hbox (45.99724pt too wide) in paragraph at lines 133--154 +\OML/cmm/m/it/10 string\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (45.99724pt too wide) in paragraph at lines 133--154 +\OML/cmm/m/it/10 string\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (45.99724pt too wide) in paragraph at lines 133--154 +\OML/cmm/m/it/10 string\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (105.88353pt too wide) in paragraph at lines 133--154 +\OML/cmm/m/it/10 stringvalopen[]emp[]ile \/cmr/m/n/10 : + [] + + +Overfull \hbox (33.76622pt too wide) in paragraph at lines 133--154 +\/cmr/m/n/10 ?\OML/cmm/m/it/10 mode \/cmr/m/n/10 : + [] + + +Overfull \hbox (72.57373pt too wide) in paragraph at lines 133--154 +\OML/cmm/m/it/10 open[]laglist\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (45.25386pt too wide) in paragraph at lines 133--154 +\/cmr/m/n/10 ?\OML/cmm/m/it/10 temp[]ir \/cmr/m/n/10 : + [] + + +Overfull \hbox (45.99724pt too wide) in paragraph at lines 133--154 +\OML/cmm/m/it/10 string\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (45.99724pt too wide) in paragraph at lines 133--154 +\OML/cmm/m/it/10 string\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (45.99724pt too wide) in paragraph at lines 133--154 +\OML/cmm/m/it/10 string\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (32.66394pt too wide) in paragraph at lines 133--154 +\OML/cmm/m/it/10 string \OMS/cmsy/m/n/10 ^^C + [] + + +Overfull \hbox (127.23761pt too wide) in paragraph at lines 133--154 +\OML/cmm/m/it/10 out[]hannelvaltemp[]ir[]ame \/cmr/m/n/10 : + [] + + +Overfull \hbox (70.55399pt too wide) in paragraph at lines 133--154 +\OML/cmm/m/it/10 stringvalquote \/cmr/m/n/10 : + [] + + +Overfull \hbox (45.99724pt too wide) in paragraph at lines 133--154 +\OML/cmm/m/it/10 string\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (27.66393pt too wide) in paragraph at lines 133--154 +\OML/cmm/m/it/10 string$ + [] + + +! LaTeX Error: The font size command \normalsize is not defined: + there is probably something wrong with the class file. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.154 + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + + [1 +! Undefined control sequence. + ...label{sec:unix-syst-progr}{{}{\thepage + }} +l.154 + +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +\newlabel{sec:unix-syst-progr}{{}{}} +! Undefined control sequence. + \newlabel{sec:chap1}{{}{\thepage + }} +l.154 + +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +\newlabel{sec:chap1}{{}{}} +{/usr/local/texlive/2010/texmf-var/fonts/map/pdftex/updmap/pdftex.map} +! Undefined control sequence. + \newlabel{sec:chap2}{{}{\thepage + }} +l.154 + +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +\newlabel{sec:chap2}{{}{}} +] +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no W in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no . in font nullfont! + +! LaTeX Error: Environment bluetext undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.162 \begin{bluetext} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no p in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no ) in font nullfont! + +! LaTeX Error: \begin{enumerate} on input line 129 ended by \end{bluetext}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.165 \end{bluetext} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + + +! LaTeX Error: Environment bluetext undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.166 \begin{bluetext} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no S in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no U in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! + +! LaTeX Error: \begin{enumerate} on input line 129 ended by \end{bluetext}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.168 \end{bluetext} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no . in font nullfont! + +Overfull \hbox (27.31233pt too wide) in paragraph at lines 155--174 +\OT1/cmr/bx/n/10 many + [] + + +Overfull \hbox (20.5485pt too wide) in paragraph at lines 155--174 +\OT1/cmr/bx/n/10 par- + [] + + +Overfull \hbox (20.3485pt too wide) in paragraph at lines 155--174 +\OT1/cmr/bx/n/10 ents + [] + + +Overfull \hbox (23.10403pt too wide) in paragraph at lines 155--174 +\OT1/cmr/bx/n/10 hard + [] + + +Overfull \hbox (23.3832pt too wide) in paragraph at lines 155--174 +\OT1/cmr/bx/n/10 links + [] + + +Overfull \hbox (20.69986pt too wide) in paragraph at lines 155--174 +\OT1/cmr/m/it/10 sym- + [] + + +Overfull \hbox (19.42207pt too wide) in paragraph at lines 155--174 +\OT1/cmr/m/it/10 bolic + [] + + +Overfull \hbox (19.93321pt too wide) in paragraph at lines 155--174 +\OT1/cmr/m/it/10 links + [] + + +Overfull \hbox (19.93321pt too wide) in paragraph at lines 155--174 +\OT1/cmr/m/it/10 non- + [] + + +Overfull \hbox (38.07745pt too wide) in paragraph at lines 155--174 +\OT1/cmr/m/it/10 directory + [] + + +Overfull \hbox (22.99988pt too wide) in paragraph at lines 155--174 +\OT1/cmr/bx/n/10 mid- + [] + + +Overfull \hbox (14.8541pt too wide) in paragraph at lines 155--174 +\OT1/cmr/bx/n/10 dle + [] + + +Overfull \hbox (50.27744pt too wide) in paragraph at lines 155--174 +\OT1/cmr/m/it/10 Unix.chroot + [] + + +Overfull \hbox (5.11108pt too wide) in paragraph at lines 155--174 +\OT1/cmr/m/it/10 p + [] + + +Overfull \hbox (11.88321pt too wide) in paragraph at lines 155--174 +\OT1/cmr/m/it/10 re- + [] + + +Overfull \hbox (31.8164pt too wide) in paragraph at lines 155--174 +\OT1/cmr/m/it/10 stricted + [] + + +! LaTeX Error: Environment redcode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.175 \begin{redcode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no U in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no ; in font nullfont! + +! LaTeX Error: \begin{enumerate} on input line 129 ended by \end{redcode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.177 \end{redcode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.178 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no - in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no ) in font nullfont! + +! LaTeX Error: \begin{enumerate} on input line 129 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.181 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! + +Overfull \hbox (26.83318pt too wide) in paragraph at lines 183--186 +[]\OT1/cmr/m/it/10 unlink + [] + + +Overfull \hbox (3.06665pt too wide) in paragraph at lines 183--186 +\OT1/cmr/m/it/10 f + [] + + +Overfull \hbox (12.39436pt too wide) in paragraph at lines 183--186 +\OT1/cmr/m/it/10 rm + [] + + +Overfull \hbox (3.57774pt too wide) in paragraph at lines 183--186 +\OT1/cmr/m/it/10 - + [] + + +Overfull \hbox (3.06665pt too wide) in paragraph at lines 183--186 +\OT1/cmr/m/it/10 f + [] + + +Overfull \hbox (3.06665pt too wide) in paragraph at lines 183--186 +\OT1/cmr/m/it/10 f + [] + + +Overfull \hbox (15.84435pt too wide) in paragraph at lines 183--186 +\OT1/cmr/m/it/10 link + [] + + +Overfull \hbox (8.17773pt too wide) in paragraph at lines 183--186 +\OT1/cmr/m/it/10 f1 + [] + + +Overfull \hbox (8.17773pt too wide) in paragraph at lines 183--186 +\OT1/cmr/m/it/10 f2 + [] + + +Overfull \hbox (8.17773pt too wide) in paragraph at lines 183--186 +\OT1/cmr/m/it/10 ln + [] + + +Overfull \hbox (8.17773pt too wide) in paragraph at lines 183--186 +\OT1/cmr/m/it/10 f1 + [] + + +Overfull \hbox (8.17773pt too wide) in paragraph at lines 183--186 +\OT1/cmr/m/it/10 f2 + [] + + +Overfull \hbox (20.69986pt too wide) in paragraph at lines 183--186 +\OT1/cmr/m/it/10 sym- + [] + + +Overfull \hbox (15.84435pt too wide) in paragraph at lines 183--186 +\OT1/cmr/m/it/10 link + [] + + +Overfull \hbox (8.17773pt too wide) in paragraph at lines 183--186 +\OT1/cmr/m/it/10 f1 + [] + + +Overfull \hbox (8.17773pt too wide) in paragraph at lines 183--186 +\OT1/cmr/m/it/10 f2 + [] + + +Overfull \hbox (8.17773pt too wide) in paragraph at lines 183--186 +\OT1/cmr/m/it/10 ln + [] + + +Overfull \hbox (3.57774pt too wide) in paragraph at lines 183--186 +\OT1/cmr/m/it/10 - + [] + + +Overfull \hbox (4.08887pt too wide) in paragraph at lines 183--186 +\OT1/cmr/m/it/10 s + [] + + +Overfull \hbox (8.17773pt too wide) in paragraph at lines 183--186 +\OT1/cmr/m/it/10 f1 + [] + + +Overfull \hbox (8.17773pt too wide) in paragraph at lines 183--186 +\OT1/cmr/m/it/10 f2 + [] + + +Overfull \hbox (12.7777pt too wide) in paragraph at lines 183--186 +\OT1/cmr/m/it/10 mv + [] + + +Overfull \hbox (8.17773pt too wide) in paragraph at lines 183--186 +\OT1/cmr/m/it/10 f1 + [] + + +Overfull \hbox (9.5333pt too wide) in paragraph at lines 183--186 +\OT1/cmr/m/it/10 f2 + [] + +Missing character: There is no A in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no . in font nullfont! + +Overfull \hbox (45.03699pt too wide) in paragraph at lines 187--190 +\OT1/cmr/bx/n/10 file[]descr + [] + + +! LaTeX Error: Environment redcode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.191 \begin{redcode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no U in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no ; in font nullfont! + +! LaTeX Error: \begin{enumerate} on input line 129 ended by \end{redcode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.193 \end{redcode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.195 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no - in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no B in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no U in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +! Missing $ inserted. + + $ +l.196 - : Batteries.Unix.file_ + descr * Batteries.Unix.file_descr * +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + + +! LaTeX Error: \begin{enumerate} on input line 129 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.198 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +! Missing $ inserted. + + $ +l.198 \end{bluecode} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + +Missing character: There is no w in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no . in font nullfont! + +! LaTeX Error: Environment bluetext undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.200 \begin{bluetext} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no c in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no f in font nullfont! + +! LaTeX Error: \begin{enumerate} on input line 129 ended by \end{bluetext}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.202 \end{bluetext} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + + +Overfull \hbox (28.12358pt too wide) in paragraph at lines 196--203 +[]\OML/cmm/m/it/10 escr \OMS/cmsy/m/n/10 ^^C + [] + + +Overfull \hbox (116.84361pt too wide) in paragraph at lines 196--203 +\OML/cmm/m/it/10 Batteries:Unix:file[]escr \OMS/cmsy/m/n/10 ^^C + [] + + +Overfull \hbox (111.8436pt too wide) in paragraph at lines 196--203 +\OML/cmm/m/it/10 Batteries:Unix:file[]escr$ + [] + +Missing character: There is no M in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! + +! LaTeX Error: Environment alternate undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.206 \begin{alternate} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no U in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no B in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no U in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no B in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no U in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no B in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no U in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +! Missing $ inserted. + + $ +l.208 ...ries.Unix.stats) * (Batteries.Unix.file_ + descr -> Batteries.Unix.st... +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + + +! LaTeX Error: \begin{enumerate} on input line 129 ended by \end{alternate}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.209 \end{alternate} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +! Missing $ inserted. + + $ +l.209 \end{alternate} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (41.45688pt too wide) in paragraph at lines 207--210 +[]\OML/cmm/m/it/10 escr\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (97.23782pt too wide) in paragraph at lines 207--210 +\OML/cmm/m/it/10 Batteries:Unix:stats\/cmr/m/n/10 )$ + [] + +) +! Emergency stop. +<*> unix_system_programming_in_ocaml.tex + +*** (job aborted, no legal \end found) + + +Here is how much of TeX's memory you used: + 35 strings out of 493747 + 530 string characters out of 3143545 + 59070 words of memory out of 3000000 + 3422 multiletter control sequences out of 15000+200000 + 4294 words of font info for 16 fonts, out of 3000000 for 9000 + 714 hyphenation exceptions out of 8191 + 18i,4n,16p,436b,168s stack positions out of 5000i,500n,10000p,200000b,50000s +! ==> Fatal error occurred, no output PDF file produced! diff --git a/books/unix_system_programming_in_ocaml.tex b/books/unix_system_programming_in_ocaml.tex new file mode 100644 index 0000000..eaffb67 --- /dev/null +++ b/books/unix_system_programming_in_ocaml.tex @@ -0,0 +1,577 @@ +\subsection{UNIX system programming in ocaml} +\label{sec:unix-syst-progr} + +\subsubsection{chap1} +\label{sec:chap1} + +\begin{enumerate} +\item Modules Sys and Unix \\ + \textbf{Sys} containts those functions common to Unix and Windows. + \textbf{Unix} contains everything specific to Unix. + + The \textit{Sys} and \textit{Unix} modules can override certain + functions of the \textit{Pervasives} module + \begin{alternate} +Unix.stdin;; +- : Batteries.Unix.file_descr = +Pervasives.stdin;; +- : in_channel = +\end{alternate} + +\begin{bluecode} + : use_unix + ocamlmktop -o ocamlunix unix.cma +\end{bluecode} + +When running a program from a shell, the shell passes \textbf{arguments} and +\textbf{environment} to the program. When a program terminates +prematurely because \textit{an exception was raised but not caught}, it makes +an implicit call to \textit{exit 2}. For \textit{at\_exit}, the last +function to be registered is called first, and it can not be +unregistered. However, we can walk around it using global variables. + +\begin{bluecode} + Sys.argv, Sys.getenv , Unix.environment, + Pervasives.exit, Pervasives.at_exit, Unix.handle_unix_error +\end{bluecode} +\begin{alternate} +Sys.argv;; +\end{alternate} +\begin{bluecode} +- : string array = +[|"/Users/bob/SourceCode/ML/godi/bin/ocaml"; "dynlink.cma"; +"camlp4of.cma"; "-warn-error"; "+a-4-6-27..29"|] +\end{bluecode} +\begin{alternate} + Unix.environment ();; +\end{alternate} +\begin{bluecode} +- : string array = +[|"TERM=dumb"; "SHELL=/bin/bash"; + "TMPDIR=/var/folders/R4/R4awSXDIH6GpuuMmaVeCzU+++TI/-Tmp-/"; + "LIBRARY_PATH=/opt/local/lib/"; + "EMACSDATA=/Applications/Aquamacs.app/Contents/Resources/etc"; + "Apple_PubSub_Socket_Render=/tmp/launch-mcHkKo/Render"; + "EMACSPATH=/Applications/Aquamacs.app/Contents/MacOS/bin"; + "INCLUDE_PATH=/opt/local/include/"; "EMACS=t"; "USER=bob"; + "LD_LIBRARY_PATH=/opt/local/lib/"; "COMMAND_MODE=unix2003"; "TERMCAP="; + "SSH_AUTH_SOCK=/tmp/launch-g9AcyQ/Listeners"; + "__CF_USER_TEXT_ENCODING=0x1F5:0:0"; "COLUMNS=68"; + "PATH=/opt/local/sbin:/usr/local/smlnj/bin:/usr/local/lib:/Applications/MATLAB_R2010b.app/bin:~/SourceCode/scala/scala-2.9.0.final/bin:/Users/bob/SourceCode/scripts:~/lib/emacs/customize:/usr/local/git/bin:/Users/bob/Racket/bin:/Users/bob/.cabal/bin:/Users/bob/SourceCode/ML/godi/bin:/Users/bob/SourceCode/ML/godi/sbin:/usr/texbin/:/bin:/usr/bin:/opt/local/bin/:/usr/local/lib/:/usr/local/bin/"; + "_=/usr/local/bin/ledit"; "C_INCLUDE_PATH=/opt/local/include/"; + "PWD=/Users/bob/SourceCode/Notes/ocaml-book"; + "TEXINPUTS=.:/Applications/Aquamacs.app/Contents/Resources/lisp/aquamacs/edit-modes/auctex/latex:"; + "EMACSLOADPATH=/Applications/Aquamacs.app/Contents/Resources/lisp:/Applications/Aquamacs.app/Contents/Resources/leim"; + "SHLVL=3"; "HOME=/Users/bob"; "LOGNAME=bob"; + "CAMLP4_EXAMPLE=/Users/bob/SourceCode/ML/godi/build/distfiles/ocaml-3.12.0/camlp4/examples/"; + "DISPLAY=/tmp/launch-sXEeNT/org.x:0"; "INSIDE_EMACS=23.3.50.1,comint"; + "EMACSDOC=/Applications/Aquamacs.app/Contents/Resources/etc"; + "SECURITYSESSIONID=616cd3"|] +\end{bluecode} + +\item ERROR handling \\ + \begin{bluetext} + exception Unix_error of error * string * string + type error = E2BIG | ... |EUNKNOWERR of int + \end{bluetext} + The second arg of \textit{Unix\_error} is the name of the system + call that raised the error, the third, if possible, identifies the + object on which the error occured (i.e. file name). + \textit{Unix.handle\_unix\_error}, if this raises the exception + \textit{Unix\_error}, displays the message, and \textit{exit 2} + + + \begin{redcode} +let handle_unix_error2 f arg = let open Unix in + try + f arg + with Unix_error(err, fun_name, arg) -> + prerr_string Sys.argv.(0); + prerr_string ": \""; + prerr_string fun_name; + prerr_string "\" failed"; + if String.length arg > 0 then begin + prerr_string " on \""; + prerr_string arg; + prerr_string "\"" end; + prerr_string ": "; + prerr_endline (error_message err); + exit 2;; + \end{redcode} + + \begin{bluetext} +val handle_unix_error2 : ('a -> 'b) -> 'a -> 'b = +\end{bluetext} + +\begin{bluetext} + let rec restart_on_EINTR f x = + try f x with Unix_error (EINTR, _, _) -> restart_on_EINTR f x +\end{bluetext} + +\begin{alternate} +finally;; +- : (unit -> unit) -> ('a -> 'b) -> 'a -> 'b = +finally (fun _ -> print_endline "finally") (fun _ -> failwith "haha") ();; +\end{alternate} +\begin{bluecode} +finally +Exception: Failure "haha". +\end{bluecode} + +In case the program fails, i.e. raises an exception, \textit{the finalizer is +run and the exception ex is raised again}. If \textbf{both} the main function +and the finalizer fail, the finalizer's exception is raised. +\end{enumerate} + +\subsubsection{chap2} +\label{sec:chap2} + +\begin{enumerate} +\item Files \\ + \textbf{File} covers \textit{standard files, directories, symbolic + links, special files(devices), named pipes, sockets} +\item \textbf{Filename} module \\ + makes filename cross platform + \begin{bluetext} + val current_dir_name : string + val parent_dir_name : string + val dir_sep : string + val concat : string -> string -> string + val is_relative : string -> bool + val is_implicit : string -> bool + val check_suffix : string -> string -> bool + val chop_suffix : string -> string -> string + val chop_extension : string -> string + val basename : string -> string + val dirname : string -> string + val temp_file : ?temp_dir:string -> string -> string -> string + val open_temp_file : + ?mode:open_flag list -> + ?temp_dir:string -> string -> string -> string * out_channel + val temp_dir_name : string + val quote : string -> string + \end{bluetext} + + non-directory files can have \textbf{many parents}(we say that they have many + \textbf{hard links}). There are also \textit{symbolic links} which + can be seen as \textit{non-directory} files containing a path, conceptually, + this path can be obtained by reading the contents of the symbolic + link like an ordinary file. Whenever a symbolic link occurs in the + \textbf{middle} of a path, we have to follow its path + transparently. + \begin{bluetext} + p/s/q -> l/q (l is absolute) + p/s/q -> p/l/q (l is relative) + \end{bluetext} + \begin{bluetext} + Sys.getcwd, Sys.chdir, Unix.chroot + \end{bluetext} + \textit{Unix.chroot p} makes the node p, which should be a + directory, the root of the \textit{restricted} view of the + hierarchy. Absolute paths are then interpreted according to this new + root p (and .. at the new root is itself). + Due to hard links, a file can have many different names. + +\begin{redcode} +Unix.(link, unlink,symlink,rename);; +\end{redcode} +\begin{bluecode} +- : (string -> string -> unit) * (string -> unit) * + (string -> string -> unit) * (string -> string -> unit) + \end{bluecode} + + \textit{unlink f} is like \textit{rm -f f}, \textit{link f1 f2} is + like \textit{ln f1 f2}, \textit{symlink f1 f2} is like \textit{ln -s + f1 f2}, rename f1 f2 is like \textit{mv f1 f2} + + A file descriptor represents a pointer to a file along with other + information like the current read/write position in the file, the + access rights, etc. \textbf{file\_descr} + + \begin{redcode} + Unix.(stdin,stdout,stderr);; + \end{redcode} + + \begin{bluecode} + - : Batteries.Unix.file_descr * Batteries.Unix.file_descr * + Batteries.Unix.file_descr + \end{bluecode} + without redirections, the three descriptors refer to the terminal. + \begin{bluetext} + cmd > f ; cmd 2 > f + \end{bluetext} +\item Meta attributes, types and permissions \\ + + + \begin{alternate} +Unix.(stat,lstat,fstat);; + \end{alternate} +\begin{bluecode} + (string -> Batteries.Unix.stats) * + (string -> Batteries.Unix.stats) * + (Batteries.Unix.file_descr -> Batteries.Unix.stats) +\end{bluecode} + \textit{lstat} returns information about the symbolic link itself, + while \textit{stat} returns information about the file that link + points to. + \begin{alternate} +Unix.(lstat &&& stat) "/usr/bin/al";; + \end{alternate} + \begin{bluecode} +({Batteries.Unix.st_dev = 234881026; Batteries.Unix.st_ino = 843893; + Batteries.Unix.st_kind = Batteries.Unix.S_LNK; (* link *) + Batteries.Unix.st_perm = 493; Batteries.Unix.st_nlink = 1; + Batteries.Unix.st_uid = 0; Batteries.Unix.st_gid = 0; + Batteries.Unix.st_rdev = 0; Batteries.Unix.st_size = 46; + (* pretty small as a link *) + Batteries.Unix.st_atime = 1273804908.; + Batteries.Unix.st_mtime = 1273804908.; + Batteries.Unix.st_ctime = 1273804908.}, + + {Batteries.Unix.st_dev = 234881026; Batteries.Unix.st_ino = 840746; + Batteries.Unix.st_kind = Batteries.Unix.S_REG; (* regular file *) + Batteries.Unix.st_perm = 493; Batteries.Unix.st_nlink = 1; + Batteries.Unix.st_uid = 0; Batteries.Unix.st_gid = 80; + Batteries.Unix.st_rdev = 0; Batteries.Unix.st_size = 163; + (* maybe bigger *) + Batteries.Unix.st_atime = 1323997427.; + Batteries.Unix.st_mtime = 1271968805.; + Batteries.Unix.st_ctime = 1273804911.}) +\end{bluecode} + + A file is uniquely identified by the pair made of its device + number(typically the disk partition where it is located) + \textit{st\_dev} and its inode number \textit{st\_ino} + + All the users and groups on the machine are usually described in the + \textit{/etc/passwd, /etc/groups} files. + \begin{bluetext} + st_uid + st_gid + getpwnam, getgrnam, (by name, get passwd_entry, group_entry) + getpwuid, getgrgid (by id) + getlogin, getgroups + chown, fchown + \end{bluetext} + + \begin{redcode} +Unix.getlogin () |> Unix.getpwnam;; +\end{redcode} + +\begin{bluecode} +{Batteries.Unix.pw_name = "bob"; Batteries.Unix.pw_passwd = "********"; + Batteries.Unix.pw_uid = 501; Batteries.Unix.pw_gid = 20; + Batteries.Unix.pw_gecos = "bobzhang"; Batteries.Unix.pw_dir = "/Users/bob"; + Batteries.Unix.pw_shell = "/bin/bash"} + +\end{bluecode} + +for access rights, executable, writable, readable by the user owner, +group owner, other users. For a directory, the executable permission +means the right to enter it, and read permission the right to list its +contents. The special bits do not have meaning unless the \textbf{x} +bit is set. The bit \textit{t} allows sub-directories to inherit the +permissions of the parent directory. On a directory, the bit +\textit{s} allows the use of the directory's \textit{uid} or +\textit{gid} rather than the user's to create directories. For an +executable file, the bit \textit{s} allows the chaning at executation +time of the user's effective identity or group with the system calls +\textit{setuid} and \textit{setgid} + +\begin{alternate} +Unix.(setuid, getuid);; +- : (int -> unit) * (unit -> int) = (, ) +\end{alternate} + +\item operations on directries \\ + only the kernel can write in directories(when files are + created). Opening a directory in write mode is \textit{prohibited}. + + \begin{alternate} +Unix.(opendir,readdir,rewinddir,closedir);; +\end{alternate} + +\begin{bluecode} +- : (string -> Batteries.Unix.dir_handle) * + (Batteries.Unix.dir_handle -> string) * + (Batteries.Unix.dir_handle -> unit) * (Batteries.Unix.dir_handle -> unit) + \end{bluecode} + + \textit{rewinddir} repositions the descriptor at the \textbf{beginning} of + the directory. + + \begin{bluecode} + mkdir, rmdir + \end{bluecode} + We can only remove a directory that is \textbf{already empty}. It is + thus necessary to first recursively empty the contents of the + directory and then remove the directory. + + \begin{bluecode} +exception Hidden of exn +(** add a tag to exn *) +let hide_exn f x = try f x with exn -> raise (Hidden exn) +(** strip the tag of exn *) +let reveal_exn f x = try f x with Hidden exn -> raise exn +\end{bluecode} +\item File manipulation \\ + + \begin{alternate} +Unix.openfile;; +\end{alternate} + +\begin{bluecode} +- : string -> + Batteries.Unix.open_flag list -> + Batteries.Unix.file_perm -> Batteries.Unix.file_descr + \end{bluecode} + Most programs use \textit{0o666} means \textit{rw-rw-rw-}. with the default + creation mask of \textit{0o022}, the file is thus created with the permission + \textit{rw-r--r--}. With a more lenient mask of 0o002, the file is + created with the permissions \textit{rw-rw-r--}. The third argument + can be anything as \textit{O\_CREATE} is not specified. + And to write to an empty file without caring any previous content, + we use + \begin{bluecode} + Unix.openfile filename [O_WRONLY; O_TRUNC; O_CREAT] 0o666 + \end{bluecode} + If the file is scripts, we create it with execution permission: + \begin{bluecode} + Unix.openfile filename [O_WRONLY; O_TRUNC; O_CREAT] 0o777 + \end{bluecode} + If we want it to be confidential, + \begin{bluecode} + Unix.openfile filename [O_WRONLY; O_TRUNC; O_CREAT] 0o600 + \end{bluecode} + The \textit{O\_NONBLOCK} flag guarantees that if the file is a named pipe or a + special file then the file opening and subsequent reads and writes + wil be non-blocking. The \textit{O\_NOCTYY} flag guarantees that if + the file is a control terminal, it won't become the controlling + terminal of the calling process. + + \begin{alternate} + Unix.(read,single_write);; + \end{alternate} + \begin{bluecode} + - : (Batteries.Unix.file_descr -> string -> int -> int -> int) * + (Batteries.Unix.file_descr -> string -> int -> int -> int) + \end{bluecode} + The \textit{string} hold the read bytes or the bytes to write. The 3rd + argument is the start, the forth is the number. + + For writes, the number of bytes actually written is usually the + number of bytes requested, with two exceptions + (i) not possible to write (i.e. disk is full) (ii) the descript is a + pipe or a socket open in non-blocking mode(async) (iii) due to + OCaml, too large. + + The reason for (iii) is that internally OCaml uses auxiliary buffer + whose size is bounded by a maximal value. + + OCaml also provides \textit{Unix.write} which iterates the writes + until all the data is written or an error occurs. The problem is + that in case of error there's no way to know the number of bytes + that were \textit{actually written}. \textit{single\_write} + preserves the atomicity of writes. + + For reads, when the current position is at the end of file, read + returns zero. The convention \textit{zero equals end of file} also + holds for special files, \textit{i.e. pipes and sockets}. For + example, read on a terminal returns zero if we issue a + \textit{Ctrl-D} on the input. + + But you may consider the blocking-mode in case. + + \begin{bluecode} + Unix.close : file_descr -> unit + \end{bluecode} + In contrast to Pervasives' channels, a file descriptor does not need + to be closed to ensure that all pending writes have been performed + as write requests are \textit{immediately} transmitted to the + kernel. On the other hand, the number of descriptors allocated by a + process is limited by the kernel(several hundreds to thousands). + + + \begin{bluecode} +let buffer_size = 8192 +let buffer = String.create buffer_size + +(** this is unsatisfactory, if we copy an executable file, we would +like the copy to be also executable. *) +let file_copy input output = Unix.( + let fd_in = openfile input [O_RDONLY] 0 in + let fd_out = openfile output [O_WRONLY; O_CREAT; O_TRUNC] 0o666 in + let rec copy_loop () = match read fd_in buffer 0 buffer_size with + |0 -> () + |r -> write fd_out buffer 0 r |> ignore; copy_loop () in + copy_loop (); + close fd_in ; + close fd_out +) + + +let copy () = + if Array.length Sys.argv = 3 then begin + file_copy Sys.argv.(1) Sys.argv.(2) + end + else begin + prerr_endline + ("Usage: " ^ Sys.argv.(0) ^ " "); + exit 1 + end + +let _ = Unix.handle_unix_error copy () +\end{bluecode} + +\begin{bluetext} +ocamlbuild find.byte -- find.ml find.xxxx +\end{bluetext} + +\begin{alternate} +ocamlbuild find.byte -- find.mlx find.xxxx +_build/find.byte: "open" failed on "find.mlx": No such file or directory +\end{alternate} +\item system call \\ + For a system call, even if it does very little work, cost dearly -- + much more than a normal function call. So we need buffer to reduce + the number of system call. For ocaml, the \textit{Pervasives} module + adds another layer \textit{in\_channel, out\_channel}. + +\item positioning and operations specific to certain file types + + \begin{alternate} +Unix.lseek;; +- : Batteries.Unix.file_descr -> int -> Batteries.Unix.seek_command -> int = +\end{alternate} + + File descriptors provide a uniform and media-independent interface + for data communicatioin. However this uniformity breaks when we need + to access all the features provided by a given media. + + For normal files, specific API + \begin{bluecode} +Unix.(truncate,ftruncate);; +- : (string -> int -> unit) * (Batteries.Unix.file_descr -> int -> unit) = +\end{bluecode} +For symbolic links +\begin{bluecode} +Unix.(symlink, readlink);; +- : (string -> string -> unit) * (string -> string) = (, ) +\end{bluecode} + +special files +\begin{enumerate} +\item /dev/null black hole. (useful for ignoring the result) +\item /dev/tty* control terminals +\item /dev/pty* pseudo-terminals +\item /dev/hd* disks +\item /proc Under linux, system parameters organized as a file system. +\end{enumerate} + +many special files ignore \textit{lseek} +\item terminals \\ + + \begin{alternate} +Unix.(tcgetattr, tcsetattr);; +\end{alternate} +\begin{bluecode} +(Batteries.Unix.file_descr -> Batteries.Unix.terminal_io) * +(Batteries.Unix.file_descr -> + Batteries.Unix.setattr_when -> Batteries.Unix.terminal_io -> unit) +\end{bluecode} + + \begin{alternate} +Unix.(tcgetattr stdout);; +\end{alternate} + +\begin{bluecode} +{Batteries.Unix.c_ignbrk = false; Batteries.Unix.c_brkint = true; + Batteries.Unix.c_ignpar = false; Batteries.Unix.c_parmrk = false; + Batteries.Unix.c_inpck = false; Batteries.Unix.c_istrip = false; + Batteries.Unix.c_inlcr = false; Batteries.Unix.c_igncr = false; + Batteries.Unix.c_icrnl = true; Batteries.Unix.c_ixon = false; + Batteries.Unix.c_ixoff = false; Batteries.Unix.c_opost = true; + Batteries.Unix.c_obaud = 9600; Batteries.Unix.c_ibaud = 9600; + Batteries.Unix.c_csize = 8; Batteries.Unix.c_cstopb = 1; + Batteries.Unix.c_cread = true; Batteries.Unix.c_parenb = false; + Batteries.Unix.c_parodd = false; Batteries.Unix.c_hupcl = true; + Batteries.Unix.c_clocal = false; Batteries.Unix.c_isig = false; + Batteries.Unix.c_icanon = false; Batteries.Unix.c_noflsh = false; + Batteries.Unix.c_echo = false; Batteries.Unix.c_echoe = true; + Batteries.Unix.c_echok = false; Batteries.Unix.c_echonl = false; + Batteries.Unix.c_vintr = '\003'; Batteries.Unix.c_vquit = '\028'; + Batteries.Unix.c_verase = '\255'; Batteries.Unix.c_vkill = '\255'; + Batteries.Unix.c_veof = '\004'; Batteries.Unix.c_veol = '\255'; + Batteries.Unix.c_vmin = 1; Batteries.Unix.c_vtime = 0; + Batteries.Unix.c_vstart = '\017'; Batteries.Unix.c_vstop = '\019'} +\end{bluecode} + +it seems that ledit will change your input, and you can not get +\textit{Unix.(tcgetattr stdin)} work. + +The code below works in real terminal, but does not work in +pseudo-terminals(like Emacs ) + +\begin{bluecode} +let read_passwd message = Unix.( +match + try + let default = tcgetattr stdin in + let silent = {default with c_echo = false; c_echoe = false ; + c_echok = false; c_echonl = false ; } in + Some (default, silent) + with _ -> None +with + |None -> Legacy.input_line Pervasives.stdin + |Some (default, silent) -> + print_string message ; + Legacy.flush Pervasives.stdout ; + tcsetattr stdin TCSANOW silent ; + try + let s = Legacy.input_line Pervasives.stdin in + tcsetattr stdin TCSANOW default; s + with x -> tcsetattr stdin TCSANOW default; raise x + +);; +\end{bluecode} + Sometimes a program needs to start another and connect its standard + input to a terminal (or pseudo-terminal). To achieve that, we must + manually look among the pseudo-terminals(/dev/tty[a-z][a-f0-9]) and + find one that is not already open. We can open this file and start + the program with this file on its standard input. + + The function \textit{tcsendbreak} sends an interrupt to the + peripheral. The second argument is the duration of the interrupt. + + + \begin{bluetext} + tcdrain, tcflush, tcflow, setsid + \end{bluetext} + +\item locks on files + \begin{bluetext} +Unix.lockf;; +- : Batteries.Unix.file_descr -> Batteries.Unix.lock_command -> int -> unit = +\end{bluetext} + +ocaml-expect +\begin{alternate} +let p = X.spawn "ocaml" [||];; +val p : X.t = +X.expect p ~fmatches:[(fun s -> Some s)] [] "";; +- : string = " Objective Caml version 3.12.1" +X.send p "3;;\n";; +- : unit = () +X.expect p ~fmatches:[(fun s -> Some s)] [] "";; +- : string = "- : int = 3" +\end{alternate} + +not very powerful +\end{enumerate} + + + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "../master" +%%% End: diff --git a/c/m4.tex b/c/m4.tex new file mode 100644 index 0000000..e2fa388 --- /dev/null +++ b/c/m4.tex @@ -0,0 +1,8 @@ + + + + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "../master" +%%% End: diff --git a/camlp4/camlp4_tutorial.dvi b/camlp4/camlp4_tutorial.dvi new file mode 100644 index 0000000..fed3cc8 Binary files /dev/null and b/camlp4/camlp4_tutorial.dvi differ diff --git a/camlp4/camlp4_tutorial.log b/camlp4/camlp4_tutorial.log new file mode 100644 index 0000000..6f4fa72 --- /dev/null +++ b/camlp4/camlp4_tutorial.log @@ -0,0 +1,17984 @@ +This is pdfTeX, Version 3.1415926-1.40.11 (TeX Live 2010) (format=latex 2010.10.24) 3 DEC 2011 17:29 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**\input camlp4_tutorial.tex +(./camlp4_tutorial.tex + +! LaTeX Error: Lonely \item--perhaps a missing list environment. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.1 \item t + utorial +Try typing to proceed. +If that doesn't work, type X to quit. + +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no ) in font nullfont! + +! LaTeX Error: Environment alternate undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.4 \begin{alternate} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no b in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no 3 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no 2 in font nullfont! +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <7> on input line 5. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <5> on input line 5. +Missing character: There is no w in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no U in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! + +! LaTeX Error: \begin{enumerate} on input line 2 ended by \end{alternate}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.9 \end{alternate} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + + +Overfull \hbox (24.27765pt too wide) in paragraph at lines 3--10 +\OT1/cmr/bx/n/10 com- + [] + + +Overfull \hbox (27.95122pt too wide) in paragraph at lines 3--10 +\OT1/cmr/bx/n/10 mand + [] + + +Overfull \hbox (22.5846pt too wide) in paragraph at lines 3--10 +\OT1/cmr/bx/n/10 lines + [] + + +Overfull \hbox (39.38322pt too wide) in paragraph at lines 3--10 +\OML/cmm/m/it/10 camlp\OT1/cmr/m/n/10 4 \OMS/cmsy/m/n/10 ^^@ + [] + + +Overfull \hbox (255.3726pt too wide) in paragraph at lines 3--10 +\OML/cmm/m/it/10 where=Users=bob=SourceCode=ML=godi=lib=ocaml=std \OMS/cmsy/m/n +/10 ^^@ + [] + + +Overfull \hbox (75.32722pt too wide) in paragraph at lines 3--10 +\OML/cmm/m/it/10 lib=camlp\OT1/cmr/m/n/10 4\OML/cmm/m/it/10 bash \OMS/cmsy/m/n/ +10 ^^@ + [] + + +Overfull \hbox (12.77782pt too wide) in paragraph at lines 3--10 +\OT1/cmr/m/n/10 3\OML/cmm/m/it/10 :\OT1/cmr/m/n/10 2$ + [] + + +! LaTeX Error: Environment redcode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.11 \begin{redcode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no U in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no + in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! + +! LaTeX Error: \begin{enumerate} on input line 2 ended by \end{redcode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.13 \end{redcode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.14 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no / in font nullfont! +Missing character: There is no U in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no U in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no U in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no U in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no U in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no U in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no U in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no U in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no U in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no U in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no U in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no U in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no U in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no U in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no U in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no U in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no U in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no e in font nullfont! +! Missing $ inserted. + + $ +l.31 /Users/bob/SourceCode/ML/godi/bin/safe_ + camlp4 +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + + +! LaTeX Error: \begin{enumerate} on input line 2 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.32 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +! Missing $ inserted. + + $ +l.32 \end{bluecode} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + +Missing character: There is no s in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! + +Overfull \hbox (31.35161pt too wide) in paragraph at lines 12--34 +[]\OML/cmm/m/it/10 amlp\OT1/cmr/m/n/10 4$ + [] + + +Overfull \hbox (38.81227pt too wide) in paragraph at lines 12--34 +\OT1/cmr/bx/n/10 camlp4, + [] + + +Overfull \hbox (44.56224pt too wide) in paragraph at lines 12--34 +\OT1/cmr/bx/n/10 camlp4o, + [] + + +Overfull \hbox (48.07611pt too wide) in paragraph at lines 12--34 +\OT1/cmr/bx/n/10 camlp4of, + [] + + +Overfull \hbox (54.14552pt too wide) in paragraph at lines 12--34 +\OT1/cmr/bx/n/10 camlp4oof, + [] + + +Overfull \hbox (52.81221pt too wide) in paragraph at lines 12--34 +\OT1/cmr/bx/n/10 camlp4orf, + [] + + +Overfull \hbox (43.54837pt too wide) in paragraph at lines 12--34 +\OT1/cmr/bx/n/10 camlp4r, + [] + + +Overfull \hbox (43.86781pt too wide) in paragraph at lines 12--34 +\OT1/cmr/bx/n/10 camlp4rf + [] + + +! LaTeX Error: Environment redcode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.35 \begin{redcode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no h in font nullfont! + +! LaTeX Error: \begin{enumerate} on input line 2 ended by \end{redcode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.37 \end{redcode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.38 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no U in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no ] in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no ] in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no ] in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no j in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no j in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no : in font nullfont! +! Missing $ inserted. + + $ +l.53 ... Name of the location variable (default: _ + loc). +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + + +! LaTeX Error: \begin{enumerate} on input line 2 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.66 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +! Missing $ inserted. + + $ +l.66 \end{bluecode} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (26.68874pt too wide) in paragraph at lines 36--67 +[]\OML/cmm/m/it/10 oc\OT1/cmr/m/n/10 )\OML/cmm/m/it/10 : \OMS/cmsy/m/n/10 ^^@ + [] + + +Overfull \hbox (27.018pt too wide) in paragraph at lines 36--67 +\OML/cmm/m/it/10 QD < + [] + + +Overfull \hbox (27.80974pt too wide) in paragraph at lines 36--67 +\OML/cmm/m/it/10 file > + [] + + +Overfull \hbox (241.9409pt too wide) in paragraph at lines 36--67 +\OML/cmm/m/it/10 Dumpquotationexpanderresultincaseofsyntaxerror: \OMS/cmsy/m/n/ +10 ^^@ + [] + + +Overfull \hbox (15.40274pt too wide) in paragraph at lines 36--67 +\OML/cmm/m/it/10 o < + [] + + +Overfull \hbox (27.80974pt too wide) in paragraph at lines 36--67 +\OML/cmm/m/it/10 file > + [] + + +Overfull \hbox (53.01328pt too wide) in paragraph at lines 36--67 +\OML/cmm/m/it/10 Outputon < + [] + + +Overfull \hbox (27.80974pt too wide) in paragraph at lines 36--67 +\OML/cmm/m/it/10 file > + [] + + +Overfull \hbox (122.8899pt too wide) in paragraph at lines 36--67 +\OML/cmm/m/it/10 insteadofstandardoutput: \OMS/cmsy/m/n/10 ^^@ + [] + + +Overfull \hbox (144.11368pt too wide) in paragraph at lines 36--67 +\OML/cmm/m/it/10 vPrintCamlp\OT1/cmr/m/n/10 4\OML/cmm/m/it/10 versionandexit: \ +OMS/cmsy/m/n/10 ^^@ + [] + + +Overfull \hbox (206.78587pt too wide) in paragraph at lines 36--67 +\OML/cmm/m/it/10 versionPrintCamlp\OT1/cmr/m/n/10 4\OML/cmm/m/it/10 versionnumb +erandexit: \OMS/cmsy/m/n/10 ^^@ + [] + + +Overfull \hbox (198.8651pt too wide) in paragraph at lines 36--67 +\OML/cmm/m/it/10 vnumPrintCamlp\OT1/cmr/m/n/10 4\OML/cmm/m/it/10 versionnumbera +ndexit: \OMS/cmsy/m/n/10 ^^@ + [] + + +Overfull \hbox (238.97273pt too wide) in paragraph at lines 36--67 +\OML/cmm/m/it/10 no[]uotDon[]tparsequotations; allowingtouse; e:g:\OT1/cmr/m/n/ +10 " \OML/cmm/m/it/10 <\OT1/cmr/m/n/10 :\OML/cmm/m/it/10 > + [] + + +Overfull \hbox (50.1668pt too wide) in paragraph at lines 36--67 +\OT1/cmr/m/n/10 "\OML/cmm/m/it/10 astoken: \OMS/cmsy/m/n/10 ^^@ + [] + + +Overfull \hbox (36.15749pt too wide) in paragraph at lines 36--67 +\OML/cmm/m/it/10 loaded \OMS/cmsy/m/n/10 ^^@ + [] + + +Overfull \hbox (178.52733pt too wide) in paragraph at lines 36--67 +\OML/cmm/m/it/10 modulesPrintthelistofloadedmodules: \OMS/cmsy/m/n/10 ^^@ + [] + + +Overfull \hbox (39.79515pt too wide) in paragraph at lines 36--67 +\OML/cmm/m/it/10 parser < + [] + + +Overfull \hbox (35.28015pt too wide) in paragraph at lines 36--67 +\OML/cmm/m/it/10 name > + [] + + +Overfull \hbox (152.81296pt too wide) in paragraph at lines 36--67 +\OML/cmm/m/it/10 LoadtheparserCamlp\OT1/cmr/m/n/10 4\OML/cmm/m/it/10 Parsers= < + + [] + + +Overfull \hbox (35.28015pt too wide) in paragraph at lines 36--67 +\OML/cmm/m/it/10 name > + [] + + +Overfull \hbox (57.53255pt too wide) in paragraph at lines 36--67 +\OML/cmm/m/it/10 :cm\OT1/cmr/m/n/10 (\OML/cmm/m/it/10 o\OMS/cmsy/m/n/10 j\OML/c +mm/m/it/10 a\OMS/cmsy/m/n/10 j\OML/cmm/m/it/10 xs\OT1/cmr/m/n/10 ) \OMS/cmsy/m/ +n/10 ^^@ + [] + + +Overfull \hbox (42.88036pt too wide) in paragraph at lines 36--67 +\OML/cmm/m/it/10 printer < + [] + + +Overfull \hbox (35.28015pt too wide) in paragraph at lines 36--67 +\OML/cmm/m/it/10 name > + [] + + +Overfull \hbox (158.98337pt too wide) in paragraph at lines 36--67 +\OML/cmm/m/it/10 LoadtheprinterCamlp\OT1/cmr/m/n/10 4\OML/cmm/m/it/10 Printers= + < + [] + + +Overfull \hbox (35.28015pt too wide) in paragraph at lines 36--67 +\OML/cmm/m/it/10 name > + [] + + +Overfull \hbox (57.53255pt too wide) in paragraph at lines 36--67 +\OML/cmm/m/it/10 :cm\OT1/cmr/m/n/10 (\OML/cmm/m/it/10 o\OMS/cmsy/m/n/10 j\OML/c +mm/m/it/10 a\OMS/cmsy/m/n/10 j\OML/cmm/m/it/10 xs\OT1/cmr/m/n/10 ) \OMS/cmsy/m/ +n/10 ^^@ + [] + + +Overfull \hbox (36.21022pt too wide) in paragraph at lines 36--67 +\OML/cmm/m/it/10 filter < + [] + + +Overfull \hbox (35.28015pt too wide) in paragraph at lines 36--67 +\OML/cmm/m/it/10 name > + [] + + +Overfull \hbox (144.71251pt too wide) in paragraph at lines 36--67 +\OML/cmm/m/it/10 LoadthefilterCamlp\OT1/cmr/m/n/10 4\OML/cmm/m/it/10 Filters= < + + [] + + +Overfull \hbox (35.28015pt too wide) in paragraph at lines 36--67 +\OML/cmm/m/it/10 name > + [] + + +Overfull \hbox (57.53255pt too wide) in paragraph at lines 36--67 +\OML/cmm/m/it/10 :cm\OT1/cmr/m/n/10 (\OML/cmm/m/it/10 o\OMS/cmsy/m/n/10 j\OML/c +mm/m/it/10 a\OMS/cmsy/m/n/10 j\OML/cmm/m/it/10 xs\OT1/cmr/m/n/10 ) \OMS/cmsy/m/ +n/10 ^^@ + [] + + +Overfull \hbox (143.50754pt too wide) in paragraph at lines 36--67 +\OML/cmm/m/it/10 ignoreignorethenextargument \OMS/cmsy/m/n/10 ^^@ + [] + + +Overfull \hbox (117.19208pt too wide) in paragraph at lines 36--67 +\OMS/cmsy/m/n/10 ^^@\OML/cmm/m/it/10 Deprecated; doesnothing$ + [] + +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no . in font nullfont! + +Overfull \hbox (3.83331pt too wide) in paragraph at lines 68--69 +\OT1/cmr/bx/n/10 - + [] + + +Overfull \hbox (13.74437pt too wide) in paragraph at lines 68--69 +\OT1/cmr/bx/n/10 str + [] + + +Overfull \hbox (3.83331pt too wide) in paragraph at lines 68--69 +\OT1/cmr/bx/n/10 - + [] + + +Overfull \hbox (36.41646pt too wide) in paragraph at lines 68--69 +\OT1/cmr/bx/n/10 loaded- + [] + + +Overfull \hbox (41.43172pt too wide) in paragraph at lines 68--69 +\OT1/cmr/bx/n/10 modules + [] + + +Overfull \hbox (3.83331pt too wide) in paragraph at lines 68--69 +\OT1/cmr/bx/n/10 - + [] + + +Overfull \hbox (31.25816pt too wide) in paragraph at lines 68--69 +\OT1/cmr/bx/n/10 parser + [] + + +Overfull \hbox (35.76369pt too wide) in paragraph at lines 68--69 +\OT1/cmr/bx/n/10 + [] + + +Overfull \hbox (20.92348pt too wide) in paragraph at lines 68--69 +\OT1/cmr/bx/n/10 load + [] + + +Overfull \hbox (16.13187pt too wide) in paragraph at lines 68--69 +\OT1/cmr/bx/n/10 the + [] + + +Overfull \hbox (31.25816pt too wide) in paragraph at lines 68--69 +\OT1/cmr/bx/n/10 parser + [] + + +Overfull \hbox (189.05168pt too wide) in paragraph at lines 68--69 +\OT1/cmr/bx/n/10 Camlp4Parsers/.cm(o|a|xs) + [] + + +Overfull \hbox (3.83331pt too wide) in paragraph at lines 68--69 +\OT1/cmr/bx/n/10 - + [] + + +Overfull \hbox (34.8679pt too wide) in paragraph at lines 68--69 +\OT1/cmr/bx/n/10 printer + [] + + +Overfull \hbox (35.76369pt too wide) in paragraph at lines 68--69 +\OT1/cmr/bx/n/10 + [] + + +Overfull \hbox (20.92348pt too wide) in paragraph at lines 68--69 +\OT1/cmr/bx/n/10 load + [] + + +Overfull \hbox (16.13187pt too wide) in paragraph at lines 68--69 +\OT1/cmr/bx/n/10 the + [] + + +Overfull \hbox (34.8679pt too wide) in paragraph at lines 68--69 +\OT1/cmr/bx/n/10 printer + [] + + +Overfull \hbox (197.51694pt too wide) in paragraph at lines 68--69 +\OT1/cmr/bx/n/10 Camlp4Printerss/.cm(o|a|xs) + [] + + +Overfull \hbox (3.83331pt too wide) in paragraph at lines 68--69 +\OT1/cmr/bx/n/10 - + [] + + +Overfull \hbox (24.0624pt too wide) in paragraph at lines 68--69 +\OT1/cmr/bx/n/10 filter + [] + + +Overfull \hbox (35.76369pt too wide) in paragraph at lines 68--69 +\OT1/cmr/bx/n/10 + [] + + +Overfull \hbox (20.92348pt too wide) in paragraph at lines 68--69 +\OT1/cmr/bx/n/10 load + [] + + +Overfull \hbox (16.13187pt too wide) in paragraph at lines 68--69 +\OT1/cmr/bx/n/10 the + [] + + +Overfull \hbox (13.4166pt too wide) in paragraph at lines 68--69 +\OT1/cmr/bx/n/10 fil- + [] + + +Overfull \hbox (14.47911pt too wide) in paragraph at lines 68--69 +\OT1/cmr/bx/n/10 ter + [] + + +Overfull \hbox (184.74478pt too wide) in paragraph at lines 68--69 +\OT1/cmr/bx/n/10 Camlp4Filters/.cm(o|a|xs) + [] + +Missing character: There is no - in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! + +Overfull \hbox (62.74965pt too wide) in paragraph at lines 70--72 +\OT1/cmr/m/it/10 Camlp4Bin.ml + [] + +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no j in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! + +Overfull \hbox (30.0276pt too wide) in paragraph at lines 73--79 +\OT1/cmr/bx/n/10 added + [] + + +Overfull \hbox (3.83331pt too wide) in paragraph at lines 73--79 +\OT1/cmr/bx/n/10 - + [] + + +Overfull \hbox (66.81458pt too wide) in paragraph at lines 73--79 +\OT1/cmr/bx/n/10 add[]locations + [] + + +Overfull \hbox (21.4721pt too wide) in paragraph at lines 73--79 +\OT1/cmr/bx/n/10 Add + [] + + +Overfull \hbox (12.77771pt too wide) in paragraph at lines 73--79 +\OT1/cmr/bx/n/10 lo- + [] + + +Overfull \hbox (14.53462pt too wide) in paragraph at lines 73--79 +\OT1/cmr/bx/n/10 ca- + [] + + +Overfull \hbox (24.34152pt too wide) in paragraph at lines 73--79 +\OT1/cmr/bx/n/10 tions + [] + + +Overfull \hbox (10.1263pt too wide) in paragraph at lines 73--79 +\OT1/cmr/bx/n/10 as + [] + + +Overfull \hbox (24.27765pt too wide) in paragraph at lines 73--79 +\OT1/cmr/bx/n/10 com- + [] + + +Overfull \hbox (25.3957pt too wide) in paragraph at lines 73--79 +\OT1/cmr/bx/n/10 ment + [] + + +Overfull \hbox (3.83331pt too wide) in paragraph at lines 73--79 +\OT1/cmr/bx/n/10 - + [] + + +Overfull \hbox (78.47429pt too wide) in paragraph at lines 73--79 +\OT1/cmr/bx/n/10 no[]comments| + [] + + +Overfull \hbox (3.83331pt too wide) in paragraph at lines 73--79 +\OT1/cmr/bx/n/10 - + [] + + +Overfull \hbox (30.87486pt too wide) in paragraph at lines 73--79 +\OT1/cmr/bx/n/10 curry- + [] + + +Overfull \hbox (30.99428pt too wide) in paragraph at lines 73--79 +\OT1/cmr/bx/n/10 constr + [] + + +Overfull \hbox (23.12625pt too wide) in paragraph at lines 73--79 +\OT1/cmr/bx/n/10 (Use + [] + + +Overfull \hbox (20.06935pt too wide) in paragraph at lines 73--79 +\OT1/cmr/bx/n/10 cur- + [] + + +Overfull \hbox (19.5902pt too wide) in paragraph at lines 73--79 +\OT1/cmr/bx/n/10 ried + [] + + +Overfull \hbox (21.08322pt too wide) in paragraph at lines 73--79 +\OT1/cmr/bx/n/10 con- + [] + + +Overfull \hbox (29.07762pt too wide) in paragraph at lines 73--79 +\OT1/cmr/bx/n/10 struc- + [] + + +Overfull \hbox (23.96654pt too wide) in paragraph at lines 73--79 +\OT1/cmr/bx/n/10 tors) + [] + + +Overfull \hbox (3.83331pt too wide) in paragraph at lines 73--79 +\OT1/cmr/bx/n/10 - + [] + + +Overfull \hbox (16.19574pt too wide) in paragraph at lines 73--79 +\OT1/cmr/bx/n/10 sep + [] + + +Overfull \hbox (18.65405pt too wide) in paragraph at lines 73--79 +\OT1/cmr/bx/n/10 Use + [] + + +Overfull \hbox (18.59155pt too wide) in paragraph at lines 73--79 +\OT1/cmr/bx/n/10 this + [] + + +Overfull \hbox (29.07762pt too wide) in paragraph at lines 73--79 +\OT1/cmr/bx/n/10 string + [] + + +Overfull \hbox (15.81242pt too wide) in paragraph at lines 73--79 +\OT1/cmr/bx/n/10 be- + [] + + +Overfull \hbox (29.0693pt too wide) in paragraph at lines 73--79 +\OT1/cmr/bx/n/10 tween + [] + + +Overfull \hbox (35.79424pt too wide) in paragraph at lines 73--79 +\OT1/cmr/bx/n/10 parsers + [] + +Missing character: There is no T in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +! Undefined control sequence. +l.81 will {\bf + also extend the embedded one} \\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no 3 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 9 in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no Y in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no Y in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no R in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no R in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no R in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no R in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no R in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no Q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no R in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no R in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no Q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! + +Overfull \hbox (21.1471pt too wide) in paragraph at lines 122--124 +\OT1/cmr/bx/n/10 sim- + [] + + +Overfull \hbox (14.8541pt too wide) in paragraph at lines 122--124 +\OT1/cmr/bx/n/10 ple + [] + + +Overfull \hbox (25.55542pt too wide) in paragraph at lines 122--124 +\OT1/cmr/bx/n/10 build + [] + + +Overfull \hbox (18.36794pt too wide) in paragraph at lines 122--124 +\OT1/cmr/bx/n/10 and + [] + + +Overfull \hbox (15.17354pt too wide) in paragraph at lines 122--124 +\OT1/cmr/bx/n/10 ex- + [] + + +Overfull \hbox (19.00682pt too wide) in paragraph at lines 122--124 +\OT1/cmr/bx/n/10 am- + [] + + +Overfull \hbox (14.8541pt too wide) in paragraph at lines 122--124 +\OT1/cmr/bx/n/10 ple + [] + + +! LaTeX Error: Environment alternate undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.126 \begin{alternate} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no ] in font nullfont! +Missing character: There is no ] in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no ] in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no ' in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +! Misplaced alignment tab character &. +l.129 camlp4o -str 'true & + & false' +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Misplaced alignment tab character &. +l.129 camlp4o -str 'true && + false' +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +Missing character: There is no f in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no ' in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +! Misplaced alignment tab character &. +l.130 true & + & false +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Misplaced alignment tab character &. +l.130 true && + false +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +Missing character: There is no f in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! + +! LaTeX Error: \begin{enumerate} on input line 2 ended by \end{alternate}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.131 \end{alternate} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + + +! LaTeX Error: Environment redcode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.134 \begin{redcode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +! Missing $ inserted. + + $ +l.135 camlp4of -str "let q = <:str_ + item< let f x = x >>" +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + + +! LaTeX Error: \begin{enumerate} on input line 2 ended by \end{redcode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.136 \end{redcode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +! Missing $ inserted. + + $ +l.136 \end{redcode} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.137 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no ( in font nullfont! +! Missing $ inserted. + + $ +l.139 Ast.StSem (_ + loc, +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + + +! LaTeX Error: \begin{enumerate} on input line 2 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.149 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +! Missing $ inserted. + + $ +l.149 \end{bluecode} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (30.93231pt too wide) in paragraph at lines 135--150 +[]\OML/cmm/m/it/10 tem < + [] + + +Overfull \hbox (33.691pt too wide) in paragraph at lines 135--150 +\OML/cmm/m/it/10 letfx \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (24.04858pt too wide) in paragraph at lines 135--150 +\OML/cmm/m/it/10 x >> + [] + + +Overfull \hbox (5.00002pt too wide) in paragraph at lines 135--150 +\OT1/cmr/m/n/10 "$ + [] + + +Overfull \hbox (1042.47565pt too wide) in paragraph at lines 135--150 +[]\OML/cmm/m/it/10 oc; \OT1/cmr/m/n/10 (\OML/cmm/m/it/10 Ast:StVal\OT1/cmr/m/n/ +10 ([]\OML/cmm/m/it/10 oc; Ast:ReNil; \OT1/cmr/m/n/10 (\OML/cmm/m/it/10 Ast:BiE +q\OT1/cmr/m/n/10 ([]\OML/cmm/m/it/10 oc; \OT1/cmr/m/n/10 (\OML/cmm/m/it/10 Ast: +PaId\OT1/cmr/m/n/10 ([]\OML/cmm/m/it/10 oc; \OT1/cmr/m/n/10 (\OML/cmm/m/it/10 A +st:IdLid\OT1/cmr/m/n/10 ([]\OML/cmm/m/it/10 oc; \OT1/cmr/m/n/10 "\OML/cmm/m/it/ +10 f\OT1/cmr/m/n/10 "))))\OML/cmm/m/it/10 ; \OT1/cmr/m/n/10 (\OML/cmm/m/it/10 A +st:ExFun\OT1/cmr/m/n/10 ([]\OML/cmm/m/it/10 oc; \OT1/cmr/m/n/10 (\OML/cmm/m/it/ +10 Ast:McArr\OT1/cmr/m/n/10 ([]\OML/cmm/m/it/10 oc; \OT1/cmr/m/n/10 (\OML/cmm/m +/it/10 Ast:PaId\OT1/cmr/m/n/10 ([]\OML/cmm/m/it/10 oc; \OT1/cmr/m/n/10 (\OML/cm +m/m/it/10 Ast:IdLid\OT1/cmr/m/n/10 ([]\OML/cmm/m/it/10 oc; \OT1/cmr/m/n/10 "\OM +L/cmm/m/it/10 x\OT1/cmr/m/n/10 "))))\OML/cmm/m/it/10 ; \OT1/cmr/m/n/10 (\OML/cm +m/m/it/10 Ast:ExNil[]oc\OT1/cmr/m/n/10 )\OML/cmm/m/it/10 ; \OT1/cmr/m/n/10 (\OM +L/cmm/m/it/10 Ast:ExId\OT1/cmr/m/n/10 ([]\OML/cmm/m/it/10 oc; \OT1/cmr/m/n/10 ( +\OML/cmm/m/it/10 Ast:IdLid\OT1/cmr/m/n/10 ([]\OML/cmm/m/it/10 oc; \OT1/cmr/m/n/ +10 "\OML/cmm/m/it/10 x\OT1/cmr/m/n/10 "))))))))))))\OML/cmm/m/it/10 ; \OT1/cmr/ +m/n/10 (\OML/cmm/m/it/10 Ast:StNil[]oc\OT1/cmr/m/n/10 ))$ + [] + +Missing character: There is no C in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! + +Overfull \hbox (33.64568pt too wide) in paragraph at lines 152--153 +\OT1/cmr/bx/n/10 Source + [] + +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.156 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no | in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no > in font nullfont! + +! LaTeX Error: \begin{enumerate} on input line 153 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.185 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no Q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! + +! LaTeX Error: Environment bluetext undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.196 \begin{bluetext} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no S in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no Q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! + +! LaTeX Error: \begin{enumerate} on input line 153 ended by \end{bluetext}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.212 \end{bluetext} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.216 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +! Missing $ inserted. + + $ +l.219 value version = Sys.ocaml_ + version; +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing $ inserted. + + $ +l.243 + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.243 + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (143.20003pt too wide) in paragraph at lines 217--243 +[]\OML/cmm/m/it/10 ersion\OT1/cmr/m/n/10 ; \OML/cmm/m/it/10 end\OT1/cmr/m/n/10 +; \OML/cmm/m/it/10 typecamlp\OT1/cmr/m/n/10 4[]\OML/cmm/m/it/10 oken \OT1/cmr/m +/n/10 = + [] + + +Overfull \hbox (92.54596pt too wide) in paragraph at lines 217--243 +\OML/cmm/m/it/10 Sig:camlp\OT1/cmr/m/n/10 4[]\OML/cmm/m/it/10 oken \OT1/cmr/m/n +/10 == + [] + + +Overfull \hbox (198.7863pt too wide) in paragraph at lines 217--243 +\OT1/cmr/m/n/10 [\OML/cmm/m/it/10 KEYWORDofstring\OMS/cmsy/m/n/10 j\OML/cmm/m/i +t/10 SYMBOLofstring \OMS/cmsy/m/n/10 ^^@ + [] + + +Overfull \hbox (371.74142pt too wide) in paragraph at lines 217--243 +\OMS/cmsy/m/n/10 ^^@\OML/cmm/m/it/10 interesting\OMS/cmsy/m/n/10 j\OML/cmm/m/it +/10 LIDENTofstring\OMS/cmsy/m/n/10 j\OML/cmm/m/it/10 UIDENTofstring\OMS/cmsy/m/ +n/10 j\OML/cmm/m/it/10 ESCAPED[]DENTofstring \OMS/cmsy/m/n/10 ^^@ + [] + + +Overfull \hbox (1475.33096pt too wide) in paragraph at lines 217--243 +\OMS/cmsy/m/n/10 ^^@\OML/cmm/m/it/10 interesting\OMS/cmsy/m/n/10 j\OML/cmm/m/it +/10 INTofintandstring\OMS/cmsy/m/n/10 j\OML/cmm/m/it/10 INT\OT1/cmr/m/n/10 32\O +ML/cmm/m/it/10 ofint\OT1/cmr/m/n/10 32\OML/cmm/m/it/10 andstring\OMS/cmsy/m/n/1 +0 j\OML/cmm/m/it/10 INT\OT1/cmr/m/n/10 64\OML/cmm/m/it/10 ofint\OT1/cmr/m/n/10 +64\OML/cmm/m/it/10 andstring\OMS/cmsy/m/n/10 j\OML/cmm/m/it/10 NATIVEINTofnativ +eintandstring\OMS/cmsy/m/n/10 j\OML/cmm/m/it/10 FLOAToffloatandstring\OMS/cmsy/ +m/n/10 j\OML/cmm/m/it/10 CHARofcharandstring\OMS/cmsy/m/n/10 j\OML/cmm/m/it/10 +STRINGofstringandstring\OMS/cmsy/m/n/10 j\OML/cmm/m/it/10 LABELofstring\OMS/cms +y/m/n/10 j\OML/cmm/m/it/10 OPTLABELofstring\OMS/cmsy/m/n/10 j\OML/cmm/m/it/10 Q +UOTATIONofSig:quotation\OMS/cmsy/m/n/10 j\OML/cmm/m/it/10 ANTIQUOTofstringandst +ring\OMS/cmsy/m/n/10 j\OML/cmm/m/it/10 COMMENTofstring \OMS/cmsy/m/n/10 ^^@ + [] + + +Overfull \hbox (154.28586pt too wide) in paragraph at lines 217--243 +\OMS/cmsy/m/n/10 ^^@\OML/cmm/m/it/10 interesting\OMS/cmsy/m/n/10 j\OML/cmm/m/it +/10 BLANKSofstring \OMS/cmsy/m/n/10 ^^@ + [] + + +Overfull \hbox (125.35446pt too wide) in paragraph at lines 217--243 +\OMS/cmsy/m/n/10 ^^@\OML/cmm/m/it/10 interesting\OMS/cmsy/m/n/10 j\OML/cmm/m/it +/10 NEWLINE \OMS/cmsy/m/n/10 ^^@ + [] + + +Overfull \hbox (257.0332pt too wide) in paragraph at lines 217--243 +\OMS/cmsy/m/n/10 ^^@\OML/cmm/m/it/10 interesting\OMS/cmsy/m/n/10 j\OML/cmm/m/it +/10 LINE[]IRECTIVEofintandoptionstring \OMS/cmsy/m/n/10 ^^@ + [] + + +Overfull \hbox (88.85724pt too wide) in paragraph at lines 217--243 +\OMS/cmsy/m/n/10 ^^@\OML/cmm/m/it/10 interesting\OMS/cmsy/m/n/10 j\OML/cmm/m/it +/10 EOI\OT1/cmr/m/n/10 ]; []$ + [] + +! Extra }, or forgotten \endgroup. +\par ...m \@noitemerr {\@@par }\fi \else {\@@par } + \fi +l.243 + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no Q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no Q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no ' in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no U in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no Q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no ; in font nullfont! + +! LaTeX Error: \begin{enumerate} on input line 153 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.270 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! + +Overfull \hbox (20.8971pt too wide) in paragraph at lines 276--277 +\OT1/cmr/bx/n/10 Ast, + [] + + +Overfull \hbox (32.14565pt too wide) in paragraph at lines 276--277 +\OT1/cmr/bx/n/10 Gram, + [] + + +Overfull \hbox (24.61098pt too wide) in paragraph at lines 276--277 +\OT1/cmr/bx/n/10 Quo- + [] + + +Overfull \hbox (13.89574pt too wide) in paragraph at lines 276--277 +\OT1/cmr/bx/n/10 ta- + [] + + +Overfull \hbox (19.80545pt too wide) in paragraph at lines 276--277 +\OT1/cmr/bx/n/10 tion + [] + + +Overfull \hbox (73.47179pt too wide) in paragraph at lines 276--277 +\OT1/cmr/bx/n/10 Camlp4Syntax + [] + + +Underfull \vbox (badness 2913) has occurred while \output is active [] + + + +! LaTeX Error: The font size command \normalsize is not defined: + there is probably something wrong with the class file. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.277 + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +[1] + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.278 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no ( in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no Q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +! Missing $ inserted. + + $ +l.282 with type Token.t = Sig.camlp4_ + token) +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing $ inserted. + + $ +l.299 + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.299 + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (83.16101pt too wide) in paragraph at lines 279--299 +[]\OML/cmm/m/it/10 oken\OT1/cmr/m/n/10 )(\OML/cmm/m/it/10 Quotation \OT1/cmr/m/ +n/10 : + [] + + +Overfull \hbox (142.33374pt too wide) in paragraph at lines 279--299 +\OML/cmm/m/it/10 Sig:QuotationwithmoduleAst \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (122.12021pt too wide) in paragraph at lines 279--299 +\OML/cmm/m/it/10 Sig:Camlp\OT1/cmr/m/n/10 4\OML/cmm/m/it/10 AstToAstAst\OT1/cmr +/m/n/10 ) : + [] + + +Overfull \hbox (164.96017pt too wide) in paragraph at lines 279--299 +\OML/cmm/m/it/10 Sig:Camlp\OT1/cmr/m/n/10 4\OML/cmm/m/it/10 SyntaxwithmoduleLoc + \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (93.30457pt too wide) in paragraph at lines 279--299 +\OML/cmm/m/it/10 Ast:LocmoduleAst \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (85.46567pt too wide) in paragraph at lines 279--299 +\OML/cmm/m/it/10 AstmoduleGram \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (97.92638pt too wide) in paragraph at lines 279--299 +\OML/cmm/m/it/10 GrammoduleToken \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (145.98434pt too wide) in paragraph at lines 279--299 +\OML/cmm/m/it/10 Gram:TokenmoduleQuotation \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (55.8357pt too wide) in paragraph at lines 279--299 +\OML/cmm/m/it/10 Quotation \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (144.53511pt too wide) in paragraph at lines 279--299 +\OML/cmm/m/it/10 struct:::blablavaluea[]IDENT \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (242.09904pt too wide) in paragraph at lines 279--299 +\OML/cmm/m/it/10 Gram:Entry:mk\OT1/cmr/m/n/10 "\OML/cmm/m/it/10 blabla\OT1/cmr/ +m/n/10 "\OML/cmm/m/it/10 :::EXTEND[]ramtop[]hrase \OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (47.71107pt too wide) in paragraph at lines 279--299 +\OT1/cmr/m/n/10 [[`\OML/cmm/m/it/10 EOI\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (64.71544pt too wide) in paragraph at lines 279--299 +\OML/cmm/m/it/10 None\OT1/cmr/m/n/10 ]]; \OML/cmm/m/it/10 END\OT1/cmr/m/n/10 ; +[]$ + [] + +! Extra }, or forgotten \endgroup. +\par ...m \@noitemerr {\@@par }\fi \else {\@@par } + \fi +l.299 + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no Q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +! Missing $ inserted. + + $ +l.308 value antiquot_ + expr = Gram.Entry.mk "antiquot_expr"; +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + + +! LaTeX Error: \begin{enumerate} on input line 153 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.326 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +! Missing $ inserted. + + $ +l.326 \end{bluecode} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (30.38551pt too wide) in paragraph at lines 300--327 +[]\OML/cmm/m/it/10 xpr \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (234.91153pt too wide) in paragraph at lines 300--327 +\OML/cmm/m/it/10 Gram:Entry:mk\OT1/cmr/m/n/10 "\OML/cmm/m/it/10 antiquot[]xpr\O +T1/cmr/m/n/10 "; \OML/cmm/m/it/10 valueantiquot[]att \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (281.06241pt too wide) in paragraph at lines 300--327 +\OML/cmm/m/it/10 Gram:Entry:mk\OT1/cmr/m/n/10 "\OML/cmm/m/it/10 antiquot[]att\O +T1/cmr/m/n/10 "; \OML/cmm/m/it/10 EXTEND[]ramantiquot[]xpr \OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (21.82635pt too wide) in paragraph at lines 300--327 +\OT1/cmr/m/n/10 [[\OML/cmm/m/it/10 x \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (66.79207pt too wide) in paragraph at lines 300--327 +\OML/cmm/m/it/10 expr\OT1/cmr/m/n/10 ; `\OML/cmm/m/it/10 EOI\OMS/cmsy/m/n/10 ^^ +@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (75.75153pt too wide) in paragraph at lines 300--327 +\OML/cmm/m/it/10 x\OT1/cmr/m/n/10 ]]; \OML/cmm/m/it/10 antiquot[]att \OT1/cmr/m +/n/10 : + [] + + +Overfull \hbox (21.82635pt too wide) in paragraph at lines 300--327 +\OT1/cmr/m/n/10 [[\OML/cmm/m/it/10 x \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (64.13928pt too wide) in paragraph at lines 300--327 +\OML/cmm/m/it/10 patt\OT1/cmr/m/n/10 ; `\OML/cmm/m/it/10 EOI\OMS/cmsy/m/n/10 ^^ +@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (145.68793pt too wide) in paragraph at lines 300--327 +\OML/cmm/m/it/10 x\OT1/cmr/m/n/10 ]]\OML/cmm/m/it/10 END\OT1/cmr/m/n/10 ; \OML/ +cmm/m/it/10 valueparse[]xprlocstr \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (269.89766pt too wide) in paragraph at lines 300--327 +\OML/cmm/m/it/10 Gram:parse[]tringantiquot[]xprlocstr\OT1/cmr/m/n/10 ; \OML/cmm +/m/it/10 valueparse[]attlocstr \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (269.65804pt too wide) in paragraph at lines 300--327 +\OML/cmm/m/it/10 Gram:parse[]tringantiquot[]attlocstr\OT1/cmr/m/n/10 ; \OML/cmm +/m/it/10 endmoduleQuotation \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (485.28505pt too wide) in paragraph at lines 300--327 +\OML/cmm/m/it/10 Quotation\OT1/cmr/m/n/10 ; \OML/cmm/m/it/10 valueparse[]mplem: +::valueparse[]nterf:::valueprint[]nterf:::valueprint[]mplem:::moduleQuotation \ +OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (65.58807pt too wide) in paragraph at lines 300--327 +\OML/cmm/m/it/10 Quotation\OT1/cmr/m/n/10 ; \OML/cmm/m/it/10 end$ + [] + +Missing character: There is no N in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! + +Overfull \hbox (16.29158pt too wide) in paragraph at lines 329--330 +\OT1/cmr/bx/n/10 dy- + [] + + +Overfull \hbox (33.0623pt too wide) in paragraph at lines 329--330 +\OT1/cmr/bx/n/10 namic, + [] + + +Overfull \hbox (15.17354pt too wide) in paragraph at lines 329--330 +\OT1/cmr/bx/n/10 ex- + [] + + +Overfull \hbox (19.96518pt too wide) in paragraph at lines 329--330 +\OT1/cmr/bx/n/10 ten- + [] + + +Overfull \hbox (11.56381pt too wide) in paragraph at lines 329--330 +\OT1/cmr/bx/n/10 si- + [] + + +Overfull \hbox (14.8541pt too wide) in paragraph at lines 329--330 +\OT1/cmr/bx/n/10 ble + [] + +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no ) in font nullfont! + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.334 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no ; in font nullfont! + +! LaTeX Error: \begin{enumerate} on input line 153 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.340 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no f in font nullfont! + +Overfull \hbox (13.4166pt too wide) in paragraph at lines 342--343 +\OT1/cmr/bx/n/10 fil- + [] + + +Overfull \hbox (14.47911pt too wide) in paragraph at lines 342--343 +\OT1/cmr/bx/n/10 ter + [] + + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.344 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no c in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no ; in font nullfont! + +! LaTeX Error: \begin{enumerate} on input line 153 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.347 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no T in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no . in font nullfont! + +Overfull \hbox (96.43549pt too wide) in paragraph at lines 350--354 +\OT1/cmr/m/it/10 Camlp4MapGenerator + [] + + +Overfull \hbox (30.66649pt too wide) in paragraph at lines 350--354 +\OT1/cmr/m/it/10 OCaml + [] + + +Overfull \hbox (18.3999pt too wide) in paragraph at lines 350--354 +\OT1/cmr/m/it/10 map + [] + + +Overfull \hbox (29.13307pt too wide) in paragraph at lines 350--354 +\OT1/cmr/m/it/10 traver- + [] + + +Overfull \hbox (11.7555pt too wide) in paragraph at lines 350--354 +\OT1/cmr/m/it/10 sal + [] + +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no j in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no ) in font nullfont! + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.357 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no o in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no j in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +! You can't use `macro parameter character #' in horizontal mode. +l.361 method expr e = match super# + expr e with +Sorry, but I'm not programmed to handle this case; +I'll just pretend that you didn't ask for it. +If you're in the wrong mode, you might be able to +return to the right one by typing `I}' or `I$' or `I\par'. + +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no + in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no + in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +! Missing $ inserted. + + $ +l.364 end in AstFilters.register_ + str_item_filter simplify#str_item +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! You can't use `macro parameter character #' in math mode. +l.364 ...ilters.register_str_item_filter simplify# + str_item +Sorry, but I'm not programmed to handle this case; +I'll just pretend that you didn't ask for it. +If you're in the wrong mode, you might be able to +return to the right one by typing `I}' or `I$' or `I\par'. + + +! LaTeX Error: \begin{enumerate} on input line 153 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.365 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +! Missing $ inserted. + + $ +l.365 \end{bluecode} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (5.71527pt too wide) in paragraph at lines 355--366 +\OML/cmm/m/it/10 x$ + [] + + +Overfull \hbox (5.71527pt too wide) in paragraph at lines 355--366 +\OML/cmm/m/it/10 x$ + [] + + +Overfull \hbox (130.63092pt too wide) in paragraph at lines 355--366 +[]\OML/cmm/m/it/10 tr[]tem[]iltersimplifystr[]tem$ + [] + +Missing character: There is no T in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no , in font nullfont! + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.368 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no o in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no p in font nullfont! +! Missing $ inserted. + + $ +l.370 let simplify = Ast.map_ + expr begin function +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +Missing character: There is no x in font nullfont! +Missing character: There is no x in font nullfont! +! You can't use `macro parameter character #' in math mode. +l.373 ...ilters.register_str_item_filter simplify# + str_item +Sorry, but I'm not programmed to handle this case; +I'll just pretend that you didn't ask for it. +If you're in the wrong mode, you might be able to +return to the right one by typing `I}' or `I$' or `I\par'. + + +! LaTeX Error: \begin{enumerate} on input line 153 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.379 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +! Missing $ inserted. + + $ +l.379 \end{bluecode} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (99.39752pt too wide) in paragraph at lines 367--380 +[]\OML/cmm/m/it/10 xprbeginfunction\OMS/cmsy/m/n/10 j \OML/cmm/m/it/10 <\OT1/cm +r/m/n/10 : + [] + + +Overfull \hbox (61.8588pt too wide) in paragraph at lines 367--380 +\OML/cmm/m/it/10 expr <$$\OT1/cmr/m/n/10 +0 \OML/cmm/m/it/10 >> + [] + + +Overfull \hbox (16.11108pt too wide) in paragraph at lines 367--380 +\OMS/cmsy/m/n/10 j \OML/cmm/m/it/10 <\OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (30.74767pt too wide) in paragraph at lines 367--380 +\OML/cmm/m/it/10 expr < + [] + + +Overfull \hbox (28.33342pt too wide) in paragraph at lines 367--380 +\OT1/cmr/m/n/10 0+$$\OML/cmm/m/it/10 >> + [] + + +Overfull \hbox (18.33331pt too wide) in paragraph at lines 367--380 +\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (32.54164pt too wide) in paragraph at lines 367--380 +\OML/cmm/m/it/10 x\OMS/cmsy/m/n/10 j\OML/cmm/m/it/10 x\OMS/cmsy/m/n/10 ^^@ \OML +/cmm/m/it/10 > + [] + + +Overfull \hbox (261.79759pt too wide) in paragraph at lines 367--380 +\OML/cmm/m/it/10 xendinAstFilters:register[]tr[]tem[]iltersimplifystr[]tem\OT1/ +cmr/m/n/10 (\OMS/cmsy/m/n/10 ^^C ^^C + [] + + +Overfull \hbox (349.96233pt too wide) in paragraph at lines 367--380 +\OML/cmm/m/it/10 AstFilters:register[]tr[]tem[]ilterregister[]ig[]tem[]ilterreg +ister[]opphrase[]ilter\OMS/cmsy/m/n/10 ^^C\OT1/cmr/m/n/10 )$ + [] + +Missing character: There is no y in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.384 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no t in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no ; in font nullfont! + +! LaTeX Error: \begin{enumerate} on input line 153 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.389 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.390 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no p in font nullfont! +! Missing $ inserted. + + $ +l.391 tags : "map_ + filter_r.ml" : pp(camlp4r -filter map) +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + + +! LaTeX Error: \begin{enumerate} on input line 153 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.392 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +! Missing $ inserted. + + $ +l.392 \end{bluecode} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (13.79991pt too wide) in paragraph at lines 382--393 +\OT1/cmr/m/it/10 put + [] + + +Overfull \hbox (19.54987pt too wide) in paragraph at lines 382--393 +\OT1/cmr/m/it/10 your + [] + + +Overfull \hbox (17.37762pt too wide) in paragraph at lines 382--393 +\OT1/cmr/m/it/10 type + [] + + +Overfull \hbox (16.35544pt too wide) in paragraph at lines 382--393 +\OT1/cmr/m/it/10 def- + [] + + +Overfull \hbox (6.6444pt too wide) in paragraph at lines 382--393 +\OT1/cmr/m/it/10 i- + [] + + +Overfull \hbox (12.26659pt too wide) in paragraph at lines 382--393 +\OT1/cmr/m/it/10 ni- + [] + + +Overfull \hbox (17.12212pt too wide) in paragraph at lines 382--393 +\OT1/cmr/m/it/10 tion + [] + + +Overfull \hbox (12.26654pt too wide) in paragraph at lines 382--393 +\OT1/cmr/m/it/10 be- + [] + + +Overfull \hbox (16.4832pt too wide) in paragraph at lines 382--393 +\OT1/cmr/m/it/10 fore + [] + + +Overfull \hbox (54.311pt too wide) in paragraph at lines 382--393 +[]\OML/cmm/m/it/10 ilter[]:ml\OT1/cmr/m/n/10 " : + [] + + +Overfull \hbox (58.124pt too wide) in paragraph at lines 382--393 +\OML/cmm/m/it/10 pp\OT1/cmr/m/n/10 (\OML/cmm/m/it/10 camlp\OT1/cmr/m/n/10 4\OML +/cmm/m/it/10 r \OMS/cmsy/m/n/10 ^^@ + [] + + +Overfull \hbox (48.64088pt too wide) in paragraph at lines 382--393 +\OML/cmm/m/it/10 filtermap\OT1/cmr/m/n/10 )$ + [] + + +! LaTeX Error: Environment redcode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.394 \begin{redcode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no p in font nullfont! +! Missing $ inserted. + + $ +l.395 cat map_ + filter_r.ml +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + + +! LaTeX Error: \begin{enumerate} on input line 153 ended by \end{redcode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.396 \end{redcode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +! Missing $ inserted. + + $ +l.396 \end{redcode} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (43.7555pt too wide) in paragraph at lines 395--397 +[]\OML/cmm/m/it/10 ilter[]:ml$ + [] + + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.398 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no t in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no ] in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no B in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no ] in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no ] in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no B in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no ] in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no j in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no ' in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no f in font nullfont! +! Missing $ inserted. + + $ +l.405 object ((o : 'self_ + type)) +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! You can't use `macro parameter character #' in math mode. +l.406 ...od b : b -> b = fun [ B _x -> let _x = o# + a _x in B _x | D -> D ]; +Sorry, but I'm not programmed to handle this case; +I'll just pretend that you didn't ask for it. +If you're in the wrong mode, you might be able to +return to the right one by typing `I}' or `I$' or `I\par'. + +! You can't use `macro parameter character #' in math mode. +l.407 ...od a : a -> a = fun [ A _x -> let _x = o# + b _x in A _x | C -> C ]; +Sorry, but I'm not programmed to handle this case; +I'll just pretend that you didn't ask for it. +If you're in the wrong mode, you might be able to +return to the right one by typing `I}' or `I$' or `I\par'. + + +! LaTeX Error: \begin{enumerate} on input line 153 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.411 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +! Missing $ inserted. + + $ +l.411 \end{bluecode} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (68.9561pt too wide) in paragraph at lines 399--412 +[]\OML/cmm/m/it/10 ype\OT1/cmr/m/n/10 ))\OML/cmm/m/it/10 methodb \OT1/cmr/m/n/1 +0 : + [] + + +Overfull \hbox (22.62497pt too wide) in paragraph at lines 399--412 +\OML/cmm/m/it/10 b\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (14.84717pt too wide) in paragraph at lines 399--412 +\OML/cmm/m/it/10 b \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (51.4301pt too wide) in paragraph at lines 399--412 +\OML/cmm/m/it/10 fun\OT1/cmr/m/n/10 [\OML/cmm/m/it/10 B[]\OMS/cmsy/m/n/10 ^^@ \ +OML/cmm/m/it/10 > + [] + + +Overfull \hbox (27.0382pt too wide) in paragraph at lines 399--412 +\OML/cmm/m/it/10 let[] \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (66.90318pt too wide) in paragraph at lines 399--412 +\OML/cmm/m/it/10 oa[]inB[]\OMS/cmsy/m/n/10 j\OML/cmm/m/it/10 D\OMS/cmsy/m/n/10 +^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (59.48172pt too wide) in paragraph at lines 399--412 +\OML/cmm/m/it/10 D\OT1/cmr/m/n/10 ]; \OML/cmm/m/it/10 methoda \OT1/cmr/m/n/10 : + + [] + + +Overfull \hbox (23.6192pt too wide) in paragraph at lines 399--412 +\OML/cmm/m/it/10 a\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (15.8414pt too wide) in paragraph at lines 399--412 +\OML/cmm/m/it/10 a \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (51.34503pt too wide) in paragraph at lines 399--412 +\OML/cmm/m/it/10 fun\OT1/cmr/m/n/10 [\OML/cmm/m/it/10 A[]\OMS/cmsy/m/n/10 ^^@ \ +OML/cmm/m/it/10 > + [] + + +Overfull \hbox (27.0382pt too wide) in paragraph at lines 399--412 +\OML/cmm/m/it/10 let[] \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (65.12943pt too wide) in paragraph at lines 399--412 +\OML/cmm/m/it/10 ob[]inA[]\OMS/cmsy/m/n/10 j\OML/cmm/m/it/10 C\OMS/cmsy/m/n/10 +^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (95.02933pt too wide) in paragraph at lines 399--412 +\OML/cmm/m/it/10 C\OT1/cmr/m/n/10 ]; \OML/cmm/m/it/10 methodunknown \OT1/cmr/m/ +n/10 : + [] + + +Overfull \hbox (42.87733pt too wide) in paragraph at lines 399--412 +\OT1/cmr/m/n/10 ![]\OML/cmm/m/it/10 a:[]a\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 +>[] + [] + + +Overfull \hbox (15.8414pt too wide) in paragraph at lines 399--412 +\OML/cmm/m/it/10 a \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (41.74777pt too wide) in paragraph at lines 399--412 +\OML/cmm/m/it/10 funx\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (39.35649pt too wide) in paragraph at lines 399--412 +\OML/cmm/m/it/10 x\OT1/cmr/m/n/10 ; \OML/cmm/m/it/10 end\OT1/cmr/m/n/10 ; \OMS/ +cmsy/m/n/10 ^^C\OT1/cmr/m/n/10 )$ + [] + + +! LaTeX Error: Environment redcode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.413 \begin{redcode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +! Missing $ inserted. + + $ +l.414 cat _ + build/map_filter_r.inferred.mli +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + + +! LaTeX Error: \begin{enumerate} on input line 153 ended by \end{redcode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.415 \end{redcode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +! Missing $ inserted. + + $ +l.415 \end{redcode} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (135.16338pt too wide) in paragraph at lines 414--416 +[]\OML/cmm/m/it/10 uild=map[]ilter[]:inferred:mli$ + [] + + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.417 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no t in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no B in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no j in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no ' in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no ' in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! + +! LaTeX Error: \begin{enumerate} on input line 153 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.422 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no Q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.427 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no v in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +! Missing $ inserted. + + $ +l.428 value antiquot_ + expander = object +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! You can't use `macro parameter character #' in math mode. +l.436 let exp_ast = antiquot_expander# + expr meta_ast in +Sorry, but I'm not programmed to handle this case; +I'll just pretend that you didn't ask for it. +If you're in the wrong mode, you might be able to +return to the right one by typing `I}' or `I$' or `I\par'. + + +! LaTeX Error: \begin{enumerate} on input line 153 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.438 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +! Missing $ inserted. + + $ +l.438 \end{bluecode} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (89.24922pt too wide) in paragraph at lines 424--439 +[]\OT1/cmtt/m/n/10 antiquot_expander + [] + + +Overfull \hbox (68.2494pt too wide) in paragraph at lines 424--439 +[]\OT1/cmtt/m/n/10 add_quotation + [] + + +Overfull \hbox (51.53488pt too wide) in paragraph at lines 424--439 +[]\OML/cmm/m/it/10 xpander \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (191.07176pt too wide) in paragraph at lines 424--439 +\OML/cmm/m/it/10 objectinheritAst:mapassuper\OT1/cmr/m/n/10 ; \OML/cmm/m/it/10 +methodpatt \OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (35.87268pt too wide) in paragraph at lines 424--439 +\OML/cmm/m/it/10 patt\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (84.48157pt too wide) in paragraph at lines 424--439 +\OML/cmm/m/it/10 patt:::methodexpr \OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (38.52547pt too wide) in paragraph at lines 424--439 +\OML/cmm/m/it/10 expr\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (168.35274pt too wide) in paragraph at lines 424--439 +\OML/cmm/m/it/10 expr:::letexpand[]xprlocloc[]ame[]pts \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (35.58797pt too wide) in paragraph at lines 424--439 +\OML/cmm/m/it/10 letast \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (163.12027pt too wide) in paragraph at lines 424--439 +\OML/cmm/m/it/10 parse[]uot[]tringentry[]oilocsinlet\OT1/cmr/m/n/10 () = + [] + + +Overfull \hbox (109.40761pt too wide) in paragraph at lines 424--439 +\OML/cmm/m/it/10 MetaLoc:loc[]ame:val \OT1/cmr/m/n/10 := + [] + + +Overfull \hbox (116.53117pt too wide) in paragraph at lines 424--439 +\OML/cmm/m/it/10 loc[]ame[]ptinletmeta[]st \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (114.90215pt too wide) in paragraph at lines 424--439 +\OML/cmm/m/it/10 mexprlocastinletexp[]st \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (181.4255pt too wide) in paragraph at lines 424--439 +\OML/cmm/m/it/10 antiquot[]xpanderexprmeta[]stinexp[]stin$ + [] + +Missing character: There is no N in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no ! in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no z in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! + +Overfull \hbox (89.24922pt too wide) in paragraph at lines 441--445 +[]\OT1/cmtt/m/n/10 parse_quot_string + [] + + +Overfull \hbox (28.65398pt too wide) in paragraph at lines 441--445 +\OT1/cmr/bx/n/10 that's + [] + + +Overfull \hbox (20.1249pt too wide) in paragraph at lines 441--445 +\OT1/cmr/bx/n/10 how + [] + + +Overfull \hbox (22.04155pt too wide) in paragraph at lines 441--445 +\OT1/cmr/bx/n/10 quo- + [] + + +Overfull \hbox (13.89574pt too wide) in paragraph at lines 441--445 +\OT1/cmr/bx/n/10 ta- + [] + + +Overfull \hbox (19.80545pt too wide) in paragraph at lines 441--445 +\OT1/cmr/bx/n/10 tion + [] + + +Overfull \hbox (29.07762pt too wide) in paragraph at lines 441--445 +\OT1/cmr/bx/n/10 works + [] + + +Overfull \hbox (21.1471pt too wide) in paragraph at lines 441--445 +\OT1/cmr/bx/n/10 host + [] + + +Overfull \hbox (19.00682pt too wide) in paragraph at lines 441--445 +\OT1/cmr/bx/n/10 lan- + [] + + +Overfull \hbox (28.74983pt too wide) in paragraph at lines 441--445 +\OT1/cmr/bx/n/10 guage + [] + + +Overfull \hbox (31.25816pt too wide) in paragraph at lines 441--445 +\OT1/cmr/bx/n/10 parser + [] + + +Overfull \hbox (13.84023pt too wide) in paragraph at lines 441--445 +\OT1/cmr/bx/n/10 re- + [] + + +Overfull \hbox (21.5624pt too wide) in paragraph at lines 441--445 +\OT1/cmr/bx/n/10 flex- + [] + + +Overfull \hbox (13.09715pt too wide) in paragraph at lines 441--445 +\OT1/cmr/bx/n/10 iv- + [] + + +Overfull \hbox (13.4166pt too wide) in paragraph at lines 441--445 +\OT1/cmr/bx/n/10 ity + [] + + +Overfull \hbox (20.66794pt too wide) in paragraph at lines 441--445 +\OT1/cmr/bx/n/10 nest + [] + + +Overfull \hbox (22.6249pt too wide) in paragraph at lines 441--445 +\OT1/cmr/bx/n/10 your + [] + + +Overfull \hbox (22.04155pt too wide) in paragraph at lines 441--445 +\OT1/cmr/bx/n/10 quo- + [] + + +Overfull \hbox (13.89574pt too wide) in paragraph at lines 441--445 +\OT1/cmr/bx/n/10 ta- + [] + + +Overfull \hbox (19.80545pt too wide) in paragraph at lines 441--445 +\OT1/cmr/bx/n/10 tion + [] + + +Overfull \hbox (28.5901pt too wide) in paragraph at lines 441--445 +\OT1/cmr/bx/n/10 what- + [] + + +Overfull \hbox (21.0277pt too wide) in paragraph at lines 441--445 +\OT1/cmr/bx/n/10 ever + [] + + +Overfull \hbox (17.8888pt too wide) in paragraph at lines 441--445 +\OT1/cmr/bx/n/10 you + [] + + +Overfull \hbox (27.31233pt too wide) in paragraph at lines 441--445 +\OT1/cmr/bx/n/10 want. + [] + +Missing character: There is no W in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +! Undefined control sequence. +l.453 \item Writing {\bf + real code} ! \\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no ! in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.458 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no ( in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +! Missing $ inserted. + + $ +l.459 (**pa_ + second_r.ml*) +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + + +! LaTeX Error: \begin{enumerate} on input line 2 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.463 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +! Missing $ inserted. + + $ +l.463 \end{bluecode} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (205.82263pt too wide) in paragraph at lines 459--464 +[]$[]\OML/cmm/m/it/10 econd[]:ml\OMS/cmsy/m/n/10 ^^C\OT1/cmr/m/n/10 )\OML/cmm/m +/it/10 openCamlp\OT1/cmr/m/n/10 4\OML/cmm/m/it/10 :PreCast\OT1/cmr/m/n/10 ; \OM +L/cmm/m/it/10 value[]oc \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (97.22577pt too wide) in paragraph at lines 459--464 +\OML/cmm/m/it/10 Loc:ghost\OT1/cmr/m/n/10 ; \OML/cmm/m/it/10 valueq \OT1/cmr/m/ +n/10 =\OML/cmm/m/it/10 <\OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (43.74251pt too wide) in paragraph at lines 459--464 +\OML/cmm/m/it/10 str[]tem < + [] + + +Overfull \hbox (46.29636pt too wide) in paragraph at lines 459--464 +\OML/cmm/m/it/10 valuefx \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (25.71529pt too wide) in paragraph at lines 459--464 +\OML/cmm/m/it/10 x\OT1/cmr/m/n/10 ; \OML/cmm/m/it/10 >> + [] + + +Overfull \hbox (2.77779pt too wide) in paragraph at lines 459--464 +\OT1/cmr/m/n/10 ;$ + [] + + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.467 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +! Missing $ inserted. + + $ +l.468 camlp4rf pa_ + second_r.ml -printer o +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + + +! LaTeX Error: \begin{enumerate} on input line 2 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.469 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +! Missing $ inserted. + + $ +l.469 \end{bluecode} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (56.25714pt too wide) in paragraph at lines 468--470 +[]\OML/cmm/m/it/10 econd[]:ml \OMS/cmsy/m/n/10 ^^@ + [] + + +Overfull \hbox (37.17207pt too wide) in paragraph at lines 468--470 +\OML/cmm/m/it/10 printero$ + [] + + +Overfull \hbox (10.00002pt too wide) in paragraph at lines 472--473 +[]$\OMS/cmsy/m/n/10 !$ + [] + + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.475 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no o in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +! Missing $ inserted. + + $ +l.477 let _ + loc = Loc.ghost +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + + +! LaTeX Error: \begin{enumerate} on input line 2 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.486 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +! Missing $ inserted. + + $ +l.486 \end{bluecode} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (22.79976pt too wide) in paragraph at lines 476--487 +[]\OML/cmm/m/it/10 oc \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (69.6204pt too wide) in paragraph at lines 476--487 +\OML/cmm/m/it/10 Loc:ghostletq \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (1095.4051pt too wide) in paragraph at lines 476--487 +\OML/cmm/m/it/10 Ast:StSem\OT1/cmr/m/n/10 ([]\OML/cmm/m/it/10 oc; \OT1/cmr/m/n/ +10 (\OML/cmm/m/it/10 Ast:StVal\OT1/cmr/m/n/10 ([]\OML/cmm/m/it/10 oc; Ast:ReNil +; \OT1/cmr/m/n/10 (\OML/cmm/m/it/10 Ast:BiEq\OT1/cmr/m/n/10 ([]\OML/cmm/m/it/10 + oc; \OT1/cmr/m/n/10 (\OML/cmm/m/it/10 Ast:PaId\OT1/cmr/m/n/10 ([]\OML/cmm/m/it +/10 oc; \OT1/cmr/m/n/10 (\OML/cmm/m/it/10 Ast:IdLid\OT1/cmr/m/n/10 ([]\OML/cmm/ +m/it/10 oc; \OT1/cmr/m/n/10 "\OML/cmm/m/it/10 f\OT1/cmr/m/n/10 "))))\OML/cmm/m/ +it/10 ; \OT1/cmr/m/n/10 (\OML/cmm/m/it/10 Ast:ExFun\OT1/cmr/m/n/10 ([]\OML/cmm/ +m/it/10 oc; \OT1/cmr/m/n/10 (\OML/cmm/m/it/10 Ast:McArr\OT1/cmr/m/n/10 ([]\OML/ +cmm/m/it/10 oc; \OT1/cmr/m/n/10 (\OML/cmm/m/it/10 Ast:PaId\OT1/cmr/m/n/10 ([]\O +ML/cmm/m/it/10 oc; \OT1/cmr/m/n/10 (\OML/cmm/m/it/10 Ast:IdLid\OT1/cmr/m/n/10 ( +[]\OML/cmm/m/it/10 oc; \OT1/cmr/m/n/10 "\OML/cmm/m/it/10 x\OT1/cmr/m/n/10 ")))) +\OML/cmm/m/it/10 ; \OT1/cmr/m/n/10 (\OML/cmm/m/it/10 Ast:ExNil[]oc\OT1/cmr/m/n/ +10 )\OML/cmm/m/it/10 ; \OT1/cmr/m/n/10 (\OML/cmm/m/it/10 Ast:ExId\OT1/cmr/m/n/1 +0 ([]\OML/cmm/m/it/10 oc; \OT1/cmr/m/n/10 (\OML/cmm/m/it/10 Ast:IdLid\OT1/cmr/m +/n/10 ([]\OML/cmm/m/it/10 oc; \OT1/cmr/m/n/10 "\OML/cmm/m/it/10 x\OT1/cmr/m/n/1 +0 "))))))))))))\OML/cmm/m/it/10 ; \OT1/cmr/m/n/10 (\OML/cmm/m/it/10 Ast:StNil[] +oc\OT1/cmr/m/n/10 ))$ + [] + + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.490 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +! Missing $ inserted. + + $ +l.491 camlp4rf pa_ + second_r.ml -printer r (* revised syntax*) +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + + +! LaTeX Error: \begin{enumerate} on input line 2 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.492 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +! Missing $ inserted. + + $ +l.492 \end{bluecode} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (56.25714pt too wide) in paragraph at lines 491--493 +[]\OML/cmm/m/it/10 econd[]:ml \OMS/cmsy/m/n/10 ^^@ + [] + + +Overfull \hbox (118.10117pt too wide) in paragraph at lines 491--493 +\OML/cmm/m/it/10 printerr\OT1/cmr/m/n/10 (\OMS/cmsy/m/n/10 ^^C\OML/cmm/m/it/10 +revisedsyntax\OMS/cmsy/m/n/10 ^^C\OT1/cmr/m/n/10 )$ + [] + +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.498 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no o in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +! Missing $ inserted. + + $ +l.500 value _ + loc = Loc.ghost; +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + + +! LaTeX Error: \begin{enumerate} on input line 2 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.511 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +! Missing $ inserted. + + $ +l.511 \end{bluecode} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (22.79976pt too wide) in paragraph at lines 499--512 +[]\OML/cmm/m/it/10 oc \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (86.67018pt too wide) in paragraph at lines 499--512 +\OML/cmm/m/it/10 Loc:ghost\OT1/cmr/m/n/10 ; \OML/cmm/m/it/10 valueq \OT1/cmr/m/ +n/10 = + [] + + +Overfull \hbox (1265.3656pt too wide) in paragraph at lines 499--512 +\OML/cmm/m/it/10 Ast:StSem[]oc\OT1/cmr/m/n/10 (\OML/cmm/m/it/10 Ast:StVal[]ocAs +t:ReNil\OT1/cmr/m/n/10 (\OML/cmm/m/it/10 Ast:BiEq[]oc\OT1/cmr/m/n/10 (\OML/cmm/ +m/it/10 Ast:PaId[]oc\OT1/cmr/m/n/10 (\OML/cmm/m/it/10 Ast:IdLid[]oc\OT1/cmr/m/n +/10 "\OML/cmm/m/it/10 f\OT1/cmr/m/n/10 "))(\OML/cmm/m/it/10 Ast:ExFun[]oc\OT1/c +mr/m/n/10 (\OML/cmm/m/it/10 Ast:McArr[]oc\OT1/cmr/m/n/10 (\OML/cmm/m/it/10 Ast: +PaId[]oc\OT1/cmr/m/n/10 (\OML/cmm/m/it/10 Ast:IdLid[]oc\OT1/cmr/m/n/10 "\OML/cm +m/m/it/10 x\OT1/cmr/m/n/10 "))(\OML/cmm/m/it/10 Ast:ExNil[]oc\OT1/cmr/m/n/10 )( +\OML/cmm/m/it/10 Ast:ExId[]oc\OT1/cmr/m/n/10 (\OML/cmm/m/it/10 Ast:IdLid[]oc\OT +1/cmr/m/n/10 "\OML/cmm/m/it/10 x\OT1/cmr/m/n/10 "))))))(\OML/cmm/m/it/10 Ast:St +Nil[]oc\OT1/cmr/m/n/10 ); \OML/cmm/m/it/10 so; youthenocamlc; andlinks\OT1/cmr/ +m/n/10 (\OML/cmm/m/it/10 hereyourlinkextensionstillneedscamlp\OT1/cmr/m/n/10 4\ +OML/cmm/m/it/10 :lib\OT1/cmr/m/n/10 )$ + [] + +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +! Undefined control sequence. +l.518 for the {\bf + printer }, +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no , in font nullfont! + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.521 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no + in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no - in font nullfont! +! Missing $ inserted. + + $ +l.527 (* MakeMore does not bring you too much -_ + - *) +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing $ inserted. + + $ +l.536 + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.536 + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (112.27489pt too wide) in paragraph at lines 527--536 +[]\OMS/cmsy/m/n/10 ^^C\OT1/cmr/m/n/10 )\OML/cmm/m/it/10 Camlp\OT1/cmr/m/n/10 4\ +OML/cmm/m/it/10 :Sig:Printer \OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (60.51749pt too wide) in paragraph at lines 527--536 +\OML/cmm/m/it/10 functor\OT1/cmr/m/n/10 (\OML/cmm/m/it/10 Ast \OT1/cmr/m/n/10 : + + [] + + +Overfull \hbox (93.99867pt too wide) in paragraph at lines 527--536 +\OML/cmm/m/it/10 Camlp\OT1/cmr/m/n/10 4\OML/cmm/m/it/10 :Sig:Ast\OT1/cmr/m/n/10 + )\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (83.72891pt too wide) in paragraph at lines 527--536 +\OML/cmm/m/it/10 sigvalprint[]nterf \OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (50.5582pt too wide) in paragraph at lines 527--536 +\OT1/cmr/m/n/10 ?\OML/cmm/m/it/10 input[]ile \OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (45.99724pt too wide) in paragraph at lines 527--536 +\OML/cmm/m/it/10 string\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (55.29364pt too wide) in paragraph at lines 527--536 +\OT1/cmr/m/n/10 ?\OML/cmm/m/it/10 output[]ile \OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (45.99724pt too wide) in paragraph at lines 527--536 +\OML/cmm/m/it/10 string\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (70.18884pt too wide) in paragraph at lines 527--536 +\OML/cmm/m/it/10 Ast:sig[]tem\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (94.648pt too wide) in paragraph at lines 527--536 +\OML/cmm/m/it/10 unitvalprint[]mplem \OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (50.5582pt too wide) in paragraph at lines 527--536 +\OT1/cmr/m/n/10 ?\OML/cmm/m/it/10 input[]ile \OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (45.99724pt too wide) in paragraph at lines 527--536 +\OML/cmm/m/it/10 string\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (55.29364pt too wide) in paragraph at lines 527--536 +\OT1/cmr/m/n/10 ?\OML/cmm/m/it/10 output[]ile \OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (45.99724pt too wide) in paragraph at lines 527--536 +\OML/cmm/m/it/10 string\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (70.09673pt too wide) in paragraph at lines 527--536 +\OML/cmm/m/it/10 Ast:str[]tem\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (50.51013pt too wide) in paragraph at lines 527--536 +\OML/cmm/m/it/10 unitendend[]$ + [] + +! Extra }, or forgotten \endgroup. +\@par ... \@noitemerr {\@@par }\fi \else {\@@par } + \fi +l.536 + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + + +! LaTeX Error: \begin{enumerate} on input line 2 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.537 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +! Undefined control sequence. +l.540 in the {\bf + precast} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.543 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +! Missing $ inserted. + + $ +l.544 Camlp4.PreCast.Printers.OCamlr.print_ + implem +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + + +! LaTeX Error: \begin{enumerate} on input line 2 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.546 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +! Missing $ inserted. + + $ +l.546 \end{bluecode} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (254.21143pt too wide) in paragraph at lines 544--547 +[]$[]\OML/cmm/m/it/10 mplemCamlp\OT1/cmr/m/n/10 4\OML/cmm/m/it/10 :PreCast:Prin +ters:OCamlr:print[]nterf\OT1/cmr/m/n/10 ; ;$ + [] + +Missing character: There is no f in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +! Undefined control sequence. +l.549 \item for the ast {\bf + transformation } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.552 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no A in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no r in font nullfont! +! Missing $ inserted. + + $ +l.553 Ast.tyOr_ + of_list : ctyp list -> ctyp +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + + +! LaTeX Error: \begin{enumerate} on input line 2 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.555 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +! Missing $ inserted. + + $ +l.555 \end{bluecode} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (29.71178pt too wide) in paragraph at lines 553--556 +[]$[]\OML/cmm/m/it/10 f[]ist \OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (51.48915pt too wide) in paragraph at lines 553--556 +\OML/cmm/m/it/10 ctyplist\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (66.03212pt too wide) in paragraph at lines 553--556 +\OML/cmm/m/it/10 ctyplist[]f[]typ \OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (36.56483pt too wide) in paragraph at lines 553--556 +\OML/cmm/m/it/10 ctyp\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (51.48915pt too wide) in paragraph at lines 553--556 +\OML/cmm/m/it/10 ctyplist\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (33.15584pt too wide) in paragraph at lines 553--556 +\OML/cmm/m/it/10 ctyplist$ + [] + +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no p in font nullfont! + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.561 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +! Missing $ inserted. + + $ +l.562 match_ + case = +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + + +! LaTeX Error: \begin{enumerate} on input line 2 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.567 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +! Missing $ inserted. + + $ +l.567 \end{bluecode} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (29.25891pt too wide) in paragraph at lines 562--568 +[]$[]\OML/cmm/m/it/10 ase \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (110.03374pt too wide) in paragraph at lines 562--568 +\OML/cmm/m/it/10 McNiloflocMcOrofloc \OMS/cmsy/m/n/10 ^^C + [] + + +Overfull \hbox (51.4697pt too wide) in paragraph at lines 562--568 +\OML/cmm/m/it/10 match[]ase \OMS/cmsy/m/n/10 ^^C + [] + + +Overfull \hbox (106.84251pt too wide) in paragraph at lines 562--568 +\OML/cmm/m/it/10 match[]aseMcArrofloc \OMS/cmsy/m/n/10 ^^C + [] + + +Overfull \hbox (22.53938pt too wide) in paragraph at lines 562--568 +\OML/cmm/m/it/10 patt \OMS/cmsy/m/n/10 ^^C + [] + + +Overfull \hbox (25.19217pt too wide) in paragraph at lines 562--568 +\OML/cmm/m/it/10 expr \OMS/cmsy/m/n/10 ^^C + [] + + +Overfull \hbox (253.36359pt too wide) in paragraph at lines 562--568 +\OML/cmm/m/it/10 expr\OT1/cmr/m/n/10 (\OMS/cmsy/m/n/10 ^^C\OML/cmm/m/it/10 thes +econdargumentisguardpattern\OMS/cmsy/m/n/10 ^^C\OT1/cmr/m/n/10 )\OML/cmm/m/it/1 +0 McAntofloc \OMS/cmsy/m/n/10 ^^C + [] + + +Overfull \hbox (27.66393pt too wide) in paragraph at lines 562--568 +\OML/cmm/m/it/10 string$ + [] + +Missing character: There is no f in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no , in font nullfont! + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.573 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no ( in font nullfont! +! Missing $ inserted. + + $ +l.576 Ast.ExFun (_ + loc, +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing $ inserted. + + $ +l.583 + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.583 + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (563.15108pt too wide) in paragraph at lines 574--583 +[]\OML/cmm/m/it/10 oc; \OT1/cmr/m/n/10 (\OML/cmm/m/it/10 Ast:McArr\OT1/cmr/m/n/ +10 ([]\OML/cmm/m/it/10 oc; \OT1/cmr/m/n/10 (\OML/cmm/m/it/10 Ast:PaId\OT1/cmr/m +/n/10 ([]\OML/cmm/m/it/10 oc; \OT1/cmr/m/n/10 (\OML/cmm/m/it/10 Ast:IdLid\OT1/c +mr/m/n/10 ([]\OML/cmm/m/it/10 oc; \OT1/cmr/m/n/10 "\OML/cmm/m/it/10 x\OT1/cmr/m +/n/10 "))))\OML/cmm/m/it/10 ; \OT1/cmr/m/n/10 (\OML/cmm/m/it/10 Ast:ExApp\OT1/c +mr/m/n/10 ([]\OML/cmm/m/it/10 oc; \OT1/cmr/m/n/10 (\OML/cmm/m/it/10 Ast:ExApp\O +T1/cmr/m/n/10 ([]\OML/cmm/m/it/10 oc; \OT1/cmr/m/n/10 (\OML/cmm/m/it/10 Ast:ExI +d\OT1/cmr/m/n/10 ([]\OML/cmm/m/it/10 oc; \OT1/cmr/m/n/10 (\OML/cmm/m/it/10 Ast: +IdLid\OT1/cmr/m/n/10 ([]\OML/cmm/m/it/10 oc; \OT1/cmr/m/n/10 " \OML/cmm/m/it/10 + > + [] + + +Overfull \hbox (416.94441pt too wide) in paragraph at lines 574--583 +\OT1/cmr/m/n/10 "))))\OML/cmm/m/it/10 ; \OT1/cmr/m/n/10 (\OML/cmm/m/it/10 Ast:E +xId\OT1/cmr/m/n/10 ([]\OML/cmm/m/it/10 oc; \OT1/cmr/m/n/10 (\OML/cmm/m/it/10 As +t:IdLid\OT1/cmr/m/n/10 ([]\OML/cmm/m/it/10 oc; \OT1/cmr/m/n/10 "\OML/cmm/m/it/1 +0 x\OT1/cmr/m/n/10 "))))))\OML/cmm/m/it/10 ; \OT1/cmr/m/n/10 (\OML/cmm/m/it/10 +Ast:ExInt\OT1/cmr/m/n/10 ([]\OML/cmm/m/it/10 oc; \OT1/cmr/m/n/10 "0"))))\OML/cm +m/m/it/10 ; \OT1/cmr/m/n/10 (\OML/cmm/m/it/10 Ast:ExInt\OT1/cmr/m/n/10 ([]\OML/ +cmm/m/it/10 oc; \OT1/cmr/m/n/10 "1")))))[]$ + [] + +! Extra }, or forgotten \endgroup. +\@par ... \@noitemerr {\@@par }\fi \else {\@@par } + \fi +l.583 + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + + +! LaTeX Error: \begin{enumerate} on input line 2 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.584 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.592 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no [ in font nullfont! +Missing character: There is no ` in font nullfont! +Missing character: There is no Q in font nullfont! +Missing character: There is no U in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no Q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +! Missing $ inserted. + + $ +l.593 [`QUOTATION x -> Quotation.expand _ + loc x Quotation.DynAst.expr_tag ] +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + + +! LaTeX Error: \begin{enumerate} on input line 2 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.594 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +! Missing $ inserted. + + $ +l.594 \end{bluecode} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (141.04214pt too wide) in paragraph at lines 593--595 +[]\OML/cmm/m/it/10 ocxQuotation:DynAst:expr[]ag\OT1/cmr/m/n/10 ]$ + [] + +Missing character: There is no w in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! + +Overfull \hbox (41.99963pt too wide) in paragraph at lines 597--603 +[]\OT1/cmtt/m/n/10 > + [] + + +Overfull \hbox (377.9967pt too wide) in paragraph at lines 597--603 +[]\OT1/cmtt/m/n/10 add_quotation "sig_item" sig_item_quot ME.meta_sig_item MP.m +eta_sig_item + [] + + +Overfull \hbox (41.99963pt too wide) in paragraph at lines 597--603 +[]\OT1/cmtt/m/n/10 sig_item + [] + + +Overfull \hbox (68.2494pt too wide) in paragraph at lines 597--603 +[]\OT1/cmtt/m/n/10 sig_item_quot + [] + +Missing character: There is no s in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +! Undefined control sequence. +l.605 {\color + {red} oco} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.608 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +! Missing $ inserted. + + $ +l.610 ledit -x -h ~/.ocaml_ + history ocaml dynlink.cma camlp4of.cma -warn-erro... +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + + +! LaTeX Error: \begin{enumerate} on input line 2 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.611 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +! Missing $ inserted. + + $ +l.611 \end{bluecode} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (184.85268pt too wide) in paragraph at lines 609--612 +[]\OML/cmm/m/it/10 istoryocamldynlink:cmacamlp\OT1/cmr/m/n/10 4\OML/cmm/m/it/10 + of:cma \OMS/cmsy/m/n/10 ^^@ + [] + + +Overfull \hbox (31.28366pt too wide) in paragraph at lines 609--612 +\OML/cmm/m/it/10 warn \OMS/cmsy/m/n/10 ^^@ + [] + + +Overfull \hbox (31.6494pt too wide) in paragraph at lines 609--612 +\OML/cmm/m/it/10 error \OT1/cmr/m/n/10 + + [] + + +Overfull \hbox (13.06369pt too wide) in paragraph at lines 609--612 +\OML/cmm/m/it/10 a \OMS/cmsy/m/n/10 ^^@ + [] + + +Overfull \hbox (12.77782pt too wide) in paragraph at lines 609--612 +\OT1/cmr/m/n/10 4 \OMS/cmsy/m/n/10 ^^@ + [] + + +Overfull \hbox (12.77782pt too wide) in paragraph at lines 609--612 +\OT1/cmr/m/n/10 6 \OMS/cmsy/m/n/10 ^^@ + [] + + +Overfull \hbox (25.55563pt too wide) in paragraph at lines 609--612 +\OT1/cmr/m/n/10 27\OML/cmm/m/it/10 ::\OT1/cmr/m/n/10 29$ + [] + +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +! Undefined control sequence. +l.614 under oco some {\bf + useful} functions +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.617 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no ! in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no ' in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no ' in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +! Missing $ inserted. + + $ +l.622 Gram.parse_ + string +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + + +! LaTeX Error: \begin{enumerate} on input line 2 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.631 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +! Missing $ inserted. + + $ +l.631 \end{bluecode} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (43.3896pt too wide) in paragraph at lines 618--632 +[]\OML/cmm/m/it/10 tring\OMS/cmsy/m/n/10 ^^@ \OT1/cmr/m/n/10 :[] + [] + + +Overfull \hbox (87.12651pt too wide) in paragraph at lines 618--632 +\OML/cmm/m/it/10 aGram:Entry:t\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (70.19824pt too wide) in paragraph at lines 618--632 +\OML/cmm/m/it/10 Gram:Loc:t\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (48.8028pt too wide) in paragraph at lines 618--632 +\OML/cmm/m/it/10 string\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 >[] + [] + + +Overfull \hbox (190.90784pt too wide) in paragraph at lines 618--632 +\OML/cmm/m/it/10 aCamlp\OT1/cmr/m/n/10 4\OML/cmm/m/it/10 :PreCast:Gram:parse[]t +ring\OT1/cmr/m/n/10 ; ; \OMS/cmsy/m/n/10 ^^@ \OT1/cmr/m/n/10 :[] + [] + + +Overfull \hbox (166.5241pt too wide) in paragraph at lines 618--632 +\OML/cmm/m/it/10 aCamlp\OT1/cmr/m/n/10 4\OML/cmm/m/it/10 :PreCast:Gram:Entry:t\ +OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (149.59583pt too wide) in paragraph at lines 618--632 +\OML/cmm/m/it/10 Camlp\OT1/cmr/m/n/10 4\OML/cmm/m/it/10 :PreCast:Gram:Loc:t\OMS +/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (48.8028pt too wide) in paragraph at lines 618--632 +\OML/cmm/m/it/10 string\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 >[] + [] + + +Overfull \hbox (146.99046pt too wide) in paragraph at lines 618--632 +\OML/cmm/m/it/10 aCamlp\OT1/cmr/m/n/10 4\OML/cmm/m/it/10 :PreCast:Gram:parse \O +T1/cmr/m/n/10 :[] + [] + + +Overfull \hbox (57.63084pt too wide) in paragraph at lines 618--632 +\OML/cmm/m/it/10 aEntry:t\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (40.70258pt too wide) in paragraph at lines 618--632 +\OML/cmm/m/it/10 Loc:t\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (81.52325pt too wide) in paragraph at lines 618--632 +\OML/cmm/m/it/10 charStream:t\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 >[] + [] + + +Overfull \hbox (407.79037pt too wide) in paragraph at lines 618--632 +\OML/cmm/m/it/10 aRegister:loaded[]odules\OT1/cmr/m/n/10 ; ; \OML/cmm/m/it/10 C +amlp\OT1/cmr/m/n/10 4\OML/cmm/m/it/10 :PreCast:Printers:OCaml:print[]mplem\OT1/ +cmr/m/n/10 ; ; \OML/cmm/m/it/10 letmoduleM \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (261.43808pt too wide) in paragraph at lines 618--632 +\OML/cmm/m/it/10 Camlp\OT1/cmr/m/n/10 4\OML/cmm/m/it/10 :Printers:OCaml:MakeSyn +taxinM:print[]mplem\OT1/cmr/m/n/10 ; ;$ + [] + + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.636 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no o in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no d in font nullfont! +! Missing $ inserted. + + $ +l.638 Gram.Entry.print Format.std_ + formatter Syntax.implem ;; +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! You can't use `macro parameter character #' in math mode. +l.641 [ "# + "; a_LIDENT; opt_expr; semi +Sorry, but I'm not programmed to handle this case; +I'll just pretend that you didn't ask for it. +If you're in the wrong mode, you might be able to +return to the right one by typing `I}' or `I$' or `I\par'. + +! You can't use `macro parameter character #' in math mode. +l.647 [ "# + "; a_LIDENT; opt_expr; ";;" +Sorry, but I'm not programmed to handle this case; +I'll just pretend that you didn't ask for it. +If you're in the wrong mode, you might be able to +return to the right one by typing `I}' or `I$' or `I\par'. + +! You can't use `macro parameter character #' in math mode. +l.653 [ "# + "; a_LIDENT; opt_expr; semi +Sorry, but I'm not programmed to handle this case; +I'll just pretend that you didn't ask for it. +If you're in the wrong mode, you might be able to +return to the right one by typing `I}' or `I$' or `I\par'. + +! Missing $ inserted. + + $ +l.655 + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.655 + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (137.0125pt too wide) in paragraph at lines 637--655 +[]\OML/cmm/m/it/10 ormatterSyntax:implem\OT1/cmr/m/n/10 ; ; \OMS/cmsy/m/n/10 ^^ +@ \OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (39.42899pt too wide) in paragraph at lines 637--655 +\OML/cmm/m/it/10 implem \OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (308.84428pt too wide) in paragraph at lines 637--655 +\OT1/cmr/m/n/10 [\OML/cmm/m/it/10 LEFTA\OT1/cmr/m/n/10 [""; \OML/cmm/m/it/10 a[ +]IDENT\OT1/cmr/m/n/10 ; \OML/cmm/m/it/10 opt[]xpr\OT1/cmr/m/n/10 ; \OML/cmm/m/i +t/10 semi\OMS/cmsy/m/n/10 j\OML/cmm/m/it/10 EOI\OMS/cmsy/m/n/10 j\OML/cmm/m/it/ +10 str[]tem\OT1/cmr/m/n/10 ; \OML/cmm/m/it/10 semi\OT1/cmr/m/n/10 ; \OML/cmm/m/ +it/10 SELF\OT1/cmr/m/n/10 ]]\OMS/cmsy/m/n/10 ^^@ \OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (316.13615pt too wide) in paragraph at lines 637--655 +\OML/cmm/m/it/10 Gram:Entry:printFormat:std[]ormatterSyntax:top[]hrase\OT1/cmr/ +m/n/10 ; ; \OML/cmm/m/it/10 top[]hrase \OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (300.67496pt too wide) in paragraph at lines 637--655 +\OT1/cmr/m/n/10 [\OML/cmm/m/it/10 LEFTA\OT1/cmr/m/n/10 [""; \OML/cmm/m/it/10 a[ +]IDENT\OT1/cmr/m/n/10 ; \OML/cmm/m/it/10 opt[]xpr\OT1/cmr/m/n/10 ; "; ; "\OMS/c +msy/m/n/10 j\OML/cmm/m/it/10 EOI\OMS/cmsy/m/n/10 j\OML/cmm/m/it/10 LIST\OT1/cmr +/m/n/10 1\OML/cmm/m/it/10 str[]tem\OT1/cmr/m/n/10 ; "; ; "]]\OMS/cmsy/m/n/10 ^^ +@ \OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (289.97478pt too wide) in paragraph at lines 637--655 +\OML/cmm/m/it/10 Gram:Entry:printFormat:std[]ormatterSyntax:phrase\OT1/cmr/m/n/ +10 ; ; \OML/cmm/m/it/10 phrase \OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (237.95273pt too wide) in paragraph at lines 637--655 +\OT1/cmr/m/n/10 [\OML/cmm/m/it/10 LEFTA\OT1/cmr/m/n/10 [""; \OML/cmm/m/it/10 a[ +]IDENT\OT1/cmr/m/n/10 ; \OML/cmm/m/it/10 opt[]xpr\OT1/cmr/m/n/10 ; \OML/cmm/m/i +t/10 semi\OMS/cmsy/m/n/10 j\OML/cmm/m/it/10 str[]tem\OT1/cmr/m/n/10 ; \OML/cmm/ +m/it/10 semi\OT1/cmr/m/n/10 ]][]$ + [] + +! Extra }, or forgotten \endgroup. +\@par ... \@noitemerr {\@@par }\fi \else {\@@par } + \fi +l.655 + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +Missing character: There is no G in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no d in font nullfont! +! Missing $ inserted. + + $ +l.656 Gram.Entry.print Format.std_ + formatter Syntax.semi;; +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing $ inserted. + + $ +l.660 + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.660 + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (138.49927pt too wide) in paragraph at lines 656--660 +[]\OML/cmm/m/it/10 ormatterSyntax:semi\OT1/cmr/m/n/10 ; ; \OML/cmm/m/it/10 semi + \OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (70.0938pt too wide) in paragraph at lines 656--660 +\OT1/cmr/m/n/10 [\OML/cmm/m/it/10 LEFTA\OT1/cmr/m/n/10 ["; ; "\OMS/cmsy/m/n/10 +j\OT1/cmr/m/n/10 ]][]$ + [] + +! Extra }, or forgotten \endgroup. +\@par ... \@noitemerr {\@@par }\fi \else {\@@par } + \fi +l.660 + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +Missing character: There is no G in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no d in font nullfont! +! Missing $ inserted. + + $ +l.661 Gram.Entry.print Format.std_ + formatter Syntax.expr ;; +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + + +! LaTeX Error: \begin{enumerate} on input line 2 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.662 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +! Missing $ inserted. + + $ +l.662 \end{bluecode} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (108.33124pt too wide) in paragraph at lines 661--663 +[]\OML/cmm/m/it/10 ormatterSyntax:expr\OT1/cmr/m/n/10 ; ;$ + [] + +Missing character: There is no A in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no W in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +! Undefined control sequence. +l.665 ...u define your own ast, one way is to {\bf + use MetaExpr to map your ... +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no Q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no Q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no ' in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no . in font nullfont! + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.670 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +! Missing $ inserted. + + $ +l.671 module Python_ + ast = struct +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing $ inserted. + + $ +l.679 + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.679 + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (23.69177pt too wide) in paragraph at lines 671--679 +[]\OML/cmm/m/it/10 st \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (76.05913pt too wide) in paragraph at lines 671--679 +\OML/cmm/m/it/10 structtypeexpr \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (177.2431pt too wide) in paragraph at lines 671--679 +\OT1/cmr/m/n/10 [\OML/cmm/m/it/10 Varofstring\OMS/cmsy/m/n/10 j\OML/cmm/m/it/10 + Stringofstring\OT1/cmr/m/n/10 ]\OML/cmm/m/it/10 andstm \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (199.03276pt too wide) in paragraph at lines 671--679 +\OT1/cmr/m/n/10 [\OML/cmm/m/it/10 Defofstringandexpr\OMS/cmsy/m/n/10 j\OML/cmm/ +m/it/10 Printoflistexpr\OT1/cmr/m/n/10 ]; \OML/cmm/m/it/10 end\OT1/cmr/m/n/10 ; + []$ + [] + +! Extra }, or forgotten \endgroup. +\@par ... \@noitemerr {\@@par }\fi \else {\@@par } + \fi +l.679 + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +! Missing $ inserted. + + $ +l.680 include Python_ + ast; +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing $ inserted. + + $ +l.681 + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.681 + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (17.58067pt too wide) in paragraph at lines 680--681 +[]\OML/cmm/m/it/10 st\OT1/cmr/m/n/10 ; []$ + [] + +! Extra }, or forgotten \endgroup. +\@par ... \@noitemerr {\@@par }\fi \else {\@@par } + \fi +l.681 + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +Missing character: There is no o in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +! Missing $ inserted. + + $ +l.685 ...e Camlp4Filters.MetaGeneratorExpr(Python_ + ast); +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing $ inserted. + + $ +l.690 + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.690 + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (129.3887pt too wide) in paragraph at lines 684--690 +[]\OML/cmm/m/it/10 st\OT1/cmr/m/n/10 ); \OML/cmm/m/it/10 end\OT1/cmr/m/n/10 ; \ +OML/cmm/m/it/10 moduleMetaPatt \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (299.52179pt too wide) in paragraph at lines 684--690 +\OML/cmm/m/it/10 structincludeCamlp\OT1/cmr/m/n/10 4\OML/cmm/m/it/10 Filters:Me +taGeneratorPatt\OT1/cmr/m/n/10 (\OML/cmm/m/it/10 Python[]st\OT1/cmr/m/n/10 ); \ +OML/cmm/m/it/10 end\OT1/cmr/m/n/10 ; []$ + [] + +! Extra }, or forgotten \endgroup. +\@par ... \@noitemerr {\@@par }\fi \else {\@@par } + \fi +l.690 + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +Missing character: There is no ( in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no X in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no X in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no X in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no V in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no R in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no ] in font nullfont! +Missing character: There is no ] in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no ] in font nullfont! +Missing character: There is no ] in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no X in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +! Missing $ inserted. + + $ +l.711 [[ s = stm -> MetaExpr.meta_ + stm _loc s]]; +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing $ inserted. + + $ +l.713 + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.713 + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (73.68195pt too wide) in paragraph at lines 691--713 +[]\OML/cmm/m/it/10 tm[]ocs\OT1/cmr/m/n/10 ]]; \OML/cmm/m/it/10 END\OT1/cmr/m/n/ +10 ; []$ + [] + +! Extra }, or forgotten \endgroup. +\@par ... \@noitemerr {\@@par }\fi \else {\@@par } + \fi +l.713 + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + + +! LaTeX Error: \begin{enumerate} on input line 2 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.714 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no T in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +! Undefined control sequence. +l.718 Another way is to define {\bf + your own mapping} from your ast to OCaml... +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no y in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no e in font nullfont! + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.721 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +! Missing $ inserted. + + $ +l.722 module Python_ + ast = struct +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +! Missing { inserted. + + $ +l.738 ...d_left (fun e e' -> <:expr< $e$ ^ " " ^ $ + e'$ >>) e es +A left brace was mandatory here, so I've put one in. +You might want to delete and/or insert some corrections +so that I will find a matching right brace soon. +(If you're confused by all this, try typing `I}' now.) + +! Missing } inserted. + + } +l.738 ...d_left (fun e e' -> <:expr< $e$ ^ " " ^ $ + e'$ >>) e es +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + +Missing character: There is no e in font nullfont! +Missing character: There is no ' in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +! Missing $ inserted. + + $ +l.741 ...r -> <:str_item< value $lid:str$ = $meta_ + expr _loc expr$ ; >> +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +Missing character: There is no ; in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +! Missing $ inserted. + + $ +l.743 let es = List.map (fun e -> meta_ + expr _loc e) es in +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +! Missing $ inserted. + + $ +l.744 <:str_item< print_endline $concat_ + exprs _loc es $ >> +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +Missing character: There is no > in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no ] in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no X in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no V in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no R in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no ] in font nullfont! +Missing character: There is no ] in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no ] in font nullfont! +Missing character: There is no ] in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +! Missing $ inserted. + + $ +l.760 (* value _ + = Printf.printf "fuck"; *) +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing $ inserted. + + $ +l.766 + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.766 + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (23.69177pt too wide) in paragraph at lines 722--766 +[]\OML/cmm/m/it/10 st \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (76.05913pt too wide) in paragraph at lines 722--766 +\OML/cmm/m/it/10 structtypeexpr \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (177.2431pt too wide) in paragraph at lines 722--766 +\OT1/cmr/m/n/10 [\OML/cmm/m/it/10 Varofstring\OMS/cmsy/m/n/10 j\OML/cmm/m/it/10 + Stringofstring\OT1/cmr/m/n/10 ]\OML/cmm/m/it/10 andstm \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (472.78766pt too wide) in paragraph at lines 722--766 +\OT1/cmr/m/n/10 [\OML/cmm/m/it/10 Defofstringandexpr\OMS/cmsy/m/n/10 j\OML/cmm/ +m/it/10 Printoflistexpr\OT1/cmr/m/n/10 ]; \OML/cmm/m/it/10 end\OT1/cmr/m/n/10 ; + \OML/cmm/m/it/10 includePython[]st\OT1/cmr/m/n/10 ; \OML/cmm/m/it/10 openCamlp +\OT1/cmr/m/n/10 4\OML/cmm/m/it/10 :PreCast\OT1/cmr/m/n/10 ; \OML/cmm/m/it/10 va +luemeta[]xpr[]oc \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (80.58467pt too wide) in paragraph at lines 722--766 +\OML/cmm/m/it/10 fun\OT1/cmr/m/n/10 [\OML/cmm/m/it/10 Varstr\OMS/cmsy/m/n/10 ^^ +@ \OML/cmm/m/it/10 ><\OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (46.30327pt too wide) in paragraph at lines 722--766 +\OML/cmm/m/it/10 expr <$$>> + [] + + +Overfull \hbox (74.4394pt too wide) in paragraph at lines 722--766 +\OMS/cmsy/m/n/10 j\OML/cmm/m/it/10 Stringstr\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/ +10 ><\OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (46.30327pt too wide) in paragraph at lines 722--766 +\OML/cmm/m/it/10 expr <$$>> + [] + + +Overfull \hbox (106.99448pt too wide) in paragraph at lines 722--766 +\OT1/cmr/m/n/10 ]; \OML/cmm/m/it/10 valueconcat[]xprs[]oc \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (44.36586pt too wide) in paragraph at lines 722--766 +\OML/cmm/m/it/10 fun\OT1/cmr/m/n/10 [[]\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (119.59428pt too wide) in paragraph at lines 722--766 +\OML/cmm/m/it/10 failwith\OT1/cmr/m/n/10 "\OML/cmm/m/it/10 concat[]xprs\OT1/cmr +/m/n/10 "\OMS/cmsy/m/n/10 j\OT1/cmr/m/n/10 [\OML/cmm/m/it/10 e \OT1/cmr/m/n/10 +:: + [] + + +Overfull \hbox (30.45486pt too wide) in paragraph at lines 722--766 +\OML/cmm/m/it/10 es\OT1/cmr/m/n/10 ]\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (120.4362pt too wide) in paragraph at lines 722--766 +\OML/cmm/m/it/10 List:fold[]eft\OT1/cmr/m/n/10 (\OML/cmm/m/it/10 funee[]\OMS/cm +sy/m/n/10 ^^@ \OML/cmm/m/it/10 ><\OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (56.28941pt too wide) in paragraph at lines 722--766 +\OML/cmm/m/it/10 expr <$$[]\OT1/cmr/m/n/10 "[]$$\OML/cmm/m/it/10 >> + [] + + +Overfull \hbox (110.96318pt too wide) in paragraph at lines 722--766 +\OT1/cmr/m/n/10 )\OML/cmm/m/it/10 ees\OT1/cmr/m/n/10 ]; \OML/cmm/m/it/10 valuem +eta[]tm[]oc \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (101.83148pt too wide) in paragraph at lines 722--766 +\OML/cmm/m/it/10 fun\OT1/cmr/m/n/10 [\OML/cmm/m/it/10 Defstrexpr\OMS/cmsy/m/n/1 +0 ^^@ \OML/cmm/m/it/10 ><\OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (43.74251pt too wide) in paragraph at lines 722--766 +\OML/cmm/m/it/10 str[]tem < + [] + + +Overfull \hbox (83.81973pt too wide) in paragraph at lines 722--766 +\OML/cmm/m/it/10 value$$\OT1/cmr/m/n/10 =$$[]\OML/cmm/m/it/10 xpr[]ocexpr$ + [] + + +Overfull \hbox (72.46617pt too wide) in paragraph at lines 722--766 +[]\OML/cmm/m/it/10 xpr[]oce\OT1/cmr/m/n/10 )\OML/cmm/m/it/10 esin <\OT1/cmr/m/n +/10 : + [] + + +Overfull \hbox (43.74251pt too wide) in paragraph at lines 722--766 +\OML/cmm/m/it/10 str[]tem < + [] + + +Overfull \hbox (101.77037pt too wide) in paragraph at lines 722--766 +\OML/cmm/m/it/10 print[]ndline$$[]xprs[]oces$ + [] + + +Overfull \hbox (420.07336pt too wide) in paragraph at lines 722--766 +[]\OML/cmm/m/it/10 Printf:printf\OT1/cmr/m/n/10 "\OML/cmm/m/it/10 fuck\OT1/cmr/ +m/n/10 "; \OMS/cmsy/m/n/10 ^^C\OT1/cmr/m/n/10 )\OML/cmm/m/it/10 Gram:Entry:clea +rSyntax:str[]tem\OT1/cmr/m/n/10 ; \OML/cmm/m/it/10 EXTENDGramSyntax:str[]tem \O +T1/cmr/m/n/10 : + [] + + +Overfull \hbox (20.79858pt too wide) in paragraph at lines 722--766 +\OT1/cmr/m/n/10 [[\OML/cmm/m/it/10 s \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (35.41206pt too wide) in paragraph at lines 722--766 +\OML/cmm/m/it/10 stm\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (96.01535pt too wide) in paragraph at lines 722--766 +\OML/cmm/m/it/10 meta[]tm[]ocs\OT1/cmr/m/n/10 ]]; \OML/cmm/m/it/10 END\OT1/cmr/ +m/n/10 ; []$ + [] + +! Extra }, or forgotten \endgroup. +\@par ... \@noitemerr {\@@par }\fi \else {\@@par } + \fi +l.766 + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +! Missing $ inserted. + + $ +l.770 + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.770 + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (128.64287pt too wide) in paragraph at lines 767--770 +[]$\OML/cmm/m/it/10 casttest[]iki\OT1/cmr/m/n/10 2[]\OML/cmm/m/it/10 :mldefname + \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (128.01366pt too wide) in paragraph at lines 767--770 +\OT1/cmr/m/n/10 "\OML/cmm/m/it/10 world\OT1/cmr/m/n/10 "; \OML/cmm/m/it/10 prin +t\OT1/cmr/m/n/10 "\OML/cmm/m/it/10 hello\OT1/cmr/m/n/10 "\OML/cmm/m/it/10 ; nam +e\OT1/cmr/m/n/10 ; []$ + [] + +! Extra }, or forgotten \endgroup. +\@par ... \@noitemerr {\@@par }\fi \else {\@@par } + \fi +l.770 + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +! Missing $ inserted. + + $ +l.776 + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.776 + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (50.14485pt too wide) in paragraph at lines 771--776 +[]$\OML/cmm/m/it/10 camlp\OT1/cmr/m/n/10 4\OML/cmm/m/it/10 rf \OMS/cmsy/m/n/10 +^^@ + [] + + +Overfull \hbox (172.92908pt too wide) in paragraph at lines 771--776 +\OML/cmm/m/it/10 parser[]uild=wiki\OT1/cmr/m/n/10 2[]\OML/cmm/m/it/10 :cmotest[ +]iki\OT1/cmr/m/n/10 2[]\OML/cmm/m/it/10 :ml \OMS/cmsy/m/n/10 ^^@ + [] + + +Overfull \hbox (105.3366pt too wide) in paragraph at lines 771--776 +\OML/cmm/m/it/10 printerr\OT1/cmr/m/n/10 (\OMS/cmsy/m/n/10 ^^C\OML/cmm/m/it/10 +valuename \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (189.97653pt too wide) in paragraph at lines 771--776 +\OT1/cmr/m/n/10 "\OML/cmm/m/it/10 world\OT1/cmr/m/n/10 "; \OML/cmm/m/it/10 prin +t[]ndline\OT1/cmr/m/n/10 ("\OML/cmm/m/it/10 hello\OT1/cmr/m/n/10 "[]""[]\OML/cm +m/m/it/10 ame\OT1/cmr/m/n/10 )); \OMS/cmsy/m/n/10 ^^C\OT1/cmr/m/n/10 )[]$ + [] + +! Extra }, or forgotten \endgroup. +\@par ... \@noitemerr {\@@par }\fi \else {\@@par } + \fi +l.776 + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + + +! LaTeX Error: \begin{enumerate} on input line 2 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.777 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no T in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +! Undefined control sequence. +l.782 ...ole file is a functor, we programmed {\bf + based on Camlp4.Sig} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no b in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no g in font nullfont! + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.785 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +! Missing $ inserted. + + $ +l.786 module Python_ + ast = struct +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +! Missing { inserted. + + $ +l.809 ...d_left (fun e e' -> <:expr< $e$ ^ " " ^ $ + e'$ >>) e es +A left brace was mandatory here, so I've put one in. +You might want to delete and/or insert some corrections +so that I will find a matching right brace soon. +(If you're confused by all this, try typing `I}' now.) + +! Missing } inserted. + + } +l.809 ...d_left (fun e e' -> <:expr< $e$ ^ " " ^ $ + e'$ >>) e es +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + +Missing character: There is no e in font nullfont! +Missing character: There is no ' in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +! Missing $ inserted. + + $ +l.812 ...r -> <:str_item< value $lid:str$ = $meta_ + expr _loc expr$ ; >> +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +Missing character: There is no ; in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +! Missing $ inserted. + + $ +l.814 let es = List.map (fun e -> meta_ + expr _loc e) es in +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +! Missing $ inserted. + + $ +l.815 <:str_item< print_endline $concat_ + exprs _loc es $ >> +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +Missing character: There is no > in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no ] in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no X in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no V in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no R in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no ] in font nullfont! +Missing character: There is no ] in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no ] in font nullfont! +Missing character: There is no ] in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +! Missing $ inserted. + + $ +l.831 (* value _ + = Printf.printf "fuck"; *) +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + + +! LaTeX Error: \begin{enumerate} on input line 2 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.841 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +! Missing $ inserted. + + $ +l.841 \end{bluecode} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (23.69177pt too wide) in paragraph at lines 786--842 +[]\OML/cmm/m/it/10 st \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (76.05913pt too wide) in paragraph at lines 786--842 +\OML/cmm/m/it/10 structtypeexpr \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (177.2431pt too wide) in paragraph at lines 786--842 +\OT1/cmr/m/n/10 [\OML/cmm/m/it/10 Varofstring\OMS/cmsy/m/n/10 j\OML/cmm/m/it/10 + Stringofstring\OT1/cmr/m/n/10 ]\OML/cmm/m/it/10 andstm \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (455.16136pt too wide) in paragraph at lines 786--842 +\OT1/cmr/m/n/10 [\OML/cmm/m/it/10 Defofstringandexpr\OMS/cmsy/m/n/10 j\OML/cmm/ +m/it/10 Printoflistexpr\OT1/cmr/m/n/10 ]; \OML/cmm/m/it/10 end\OT1/cmr/m/n/10 ; + \OML/cmm/m/it/10 includePython[]st\OT1/cmr/m/n/10 ; (\OMS/cmsy/m/n/10 ^^C\OML/ +cmm/m/it/10 openCamlp\OT1/cmr/m/n/10 4\OML/cmm/m/it/10 :PreCast\OT1/cmr/m/n/10 +; \OMS/cmsy/m/n/10 ^^C\OT1/cmr/m/n/10 )\OML/cmm/m/it/10 moduleId \OT1/cmr/m/n/1 +0 = + [] + + +Overfull \hbox (86.0847pt too wide) in paragraph at lines 786--842 +\OML/cmm/m/it/10 structvaluename \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (113.20224pt too wide) in paragraph at lines 786--842 +\OT1/cmr/m/n/10 "\OML/cmm/m/it/10 python\OT1/cmr/m/n/10 "; \OML/cmm/m/it/10 val +ueversion \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (162.88359pt too wide) in paragraph at lines 786--842 +\OT1/cmr/m/n/10 "0\OML/cmm/m/it/10 :\OT1/cmr/m/n/10 1"; \OML/cmm/m/it/10 end\OT +1/cmr/m/n/10 ; \OML/cmm/m/it/10 moduleMinimal\OT1/cmr/m/n/10 (\OML/cmm/m/it/10 +Syntax \OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (138.14713pt too wide) in paragraph at lines 786--842 +\OML/cmm/m/it/10 Camlp\OT1/cmr/m/n/10 4\OML/cmm/m/it/10 :Sig:Camlp\OT1/cmr/m/n/ +10 4\OML/cmm/m/it/10 Syntax\OT1/cmr/m/n/10 ) = + [] + + +Overfull \hbox (251.23752pt too wide) in paragraph at lines 786--842 +\OML/cmm/m/it/10 structopenCamlp\OT1/cmr/m/n/10 4\OML/cmm/m/it/10 :Sig\OT1/cmr/ +m/n/10 ; \OML/cmm/m/it/10 openSyntax\OT1/cmr/m/n/10 ; \OML/cmm/m/it/10 valuemet +a[]xpr[]oc \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (80.58467pt too wide) in paragraph at lines 786--842 +\OML/cmm/m/it/10 fun\OT1/cmr/m/n/10 [\OML/cmm/m/it/10 Varstr\OMS/cmsy/m/n/10 ^^ +@ \OML/cmm/m/it/10 ><\OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (46.30327pt too wide) in paragraph at lines 786--842 +\OML/cmm/m/it/10 expr <$$>> + [] + + +Overfull \hbox (74.4394pt too wide) in paragraph at lines 786--842 +\OMS/cmsy/m/n/10 j\OML/cmm/m/it/10 Stringstr\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/ +10 ><\OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (46.30327pt too wide) in paragraph at lines 786--842 +\OML/cmm/m/it/10 expr <$$>> + [] + + +Overfull \hbox (106.99448pt too wide) in paragraph at lines 786--842 +\OT1/cmr/m/n/10 ]; \OML/cmm/m/it/10 valueconcat[]xprs[]oc \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (44.36586pt too wide) in paragraph at lines 786--842 +\OML/cmm/m/it/10 fun\OT1/cmr/m/n/10 [[]\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (119.59428pt too wide) in paragraph at lines 786--842 +\OML/cmm/m/it/10 failwith\OT1/cmr/m/n/10 "\OML/cmm/m/it/10 concat[]xprs\OT1/cmr +/m/n/10 "\OMS/cmsy/m/n/10 j\OT1/cmr/m/n/10 [\OML/cmm/m/it/10 e \OT1/cmr/m/n/10 +:: + [] + + +Overfull \hbox (30.45486pt too wide) in paragraph at lines 786--842 +\OML/cmm/m/it/10 es\OT1/cmr/m/n/10 ]\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (120.4362pt too wide) in paragraph at lines 786--842 +\OML/cmm/m/it/10 List:fold[]eft\OT1/cmr/m/n/10 (\OML/cmm/m/it/10 funee[]\OMS/cm +sy/m/n/10 ^^@ \OML/cmm/m/it/10 ><\OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (56.28941pt too wide) in paragraph at lines 786--842 +\OML/cmm/m/it/10 expr <$$[]\OT1/cmr/m/n/10 "[]$$\OML/cmm/m/it/10 >> + [] + + +Overfull \hbox (110.96318pt too wide) in paragraph at lines 786--842 +\OT1/cmr/m/n/10 )\OML/cmm/m/it/10 ees\OT1/cmr/m/n/10 ]; \OML/cmm/m/it/10 valuem +eta[]tm[]oc \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (101.83148pt too wide) in paragraph at lines 786--842 +\OML/cmm/m/it/10 fun\OT1/cmr/m/n/10 [\OML/cmm/m/it/10 Defstrexpr\OMS/cmsy/m/n/1 +0 ^^@ \OML/cmm/m/it/10 ><\OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (43.74251pt too wide) in paragraph at lines 786--842 +\OML/cmm/m/it/10 str[]tem < + [] + + +Overfull \hbox (83.81973pt too wide) in paragraph at lines 786--842 +\OML/cmm/m/it/10 value$$\OT1/cmr/m/n/10 =$$[]\OML/cmm/m/it/10 xpr[]ocexpr$ + [] + + +Overfull \hbox (72.46617pt too wide) in paragraph at lines 786--842 +[]\OML/cmm/m/it/10 xpr[]oce\OT1/cmr/m/n/10 )\OML/cmm/m/it/10 esin <\OT1/cmr/m/n +/10 : + [] + + +Overfull \hbox (43.74251pt too wide) in paragraph at lines 786--842 +\OML/cmm/m/it/10 str[]tem < + [] + + +Overfull \hbox (101.77037pt too wide) in paragraph at lines 786--842 +\OML/cmm/m/it/10 print[]ndline$$[]xprs[]oces$ + [] + + +Overfull \hbox (420.07336pt too wide) in paragraph at lines 786--842 +[]\OML/cmm/m/it/10 Printf:printf\OT1/cmr/m/n/10 "\OML/cmm/m/it/10 fuck\OT1/cmr/ +m/n/10 "; \OMS/cmsy/m/n/10 ^^C\OT1/cmr/m/n/10 )\OML/cmm/m/it/10 Gram:Entry:clea +rSyntax:str[]tem\OT1/cmr/m/n/10 ; \OML/cmm/m/it/10 EXTENDGramSyntax:str[]tem \O +T1/cmr/m/n/10 : + [] + + +Overfull \hbox (20.79858pt too wide) in paragraph at lines 786--842 +\OT1/cmr/m/n/10 [[\OML/cmm/m/it/10 s \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (35.41206pt too wide) in paragraph at lines 786--842 +\OML/cmm/m/it/10 stm\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (225.39238pt too wide) in paragraph at lines 786--842 +\OML/cmm/m/it/10 meta[]tm[]ocs\OT1/cmr/m/n/10 ]]; \OML/cmm/m/it/10 END\OT1/cmr/ +m/n/10 ; \OML/cmm/m/it/10 includeSyntax\OT1/cmr/m/n/10 ; (\OMS/cmsy/m/n/10 ^^C\ +OML/cmm/m/it/10 Syntax\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (269.31613pt too wide) in paragraph at lines 786--842 +\OML/cmm/m/it/10 Syntaxweonlycarethesideeffect\OMS/cmsy/m/n/10 ^^C\OT1/cmr/m/n/ +10 )\OML/cmm/m/it/10 end\OT1/cmr/m/n/10 ; \OML/cmm/m/it/10 value[]letmoduleM \O +T1/cmr/m/n/10 = + [] + + +Overfull \hbox (262.62865pt too wide) in paragraph at lines 786--842 +\OML/cmm/m/it/10 Camlp\OT1/cmr/m/n/10 4\OML/cmm/m/it/10 :Register:OCamlSyntaxEx +tensionIdMinimalin\OT1/cmr/m/n/10 ();$ + [] + +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no ? in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no : in font nullfont! +! Undefined control sequence. +l.847 {\bf + ocaml dynlink.cma camlp4o.cma \verb|wiki2_r.cmo|} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! + +Overfull \hbox (57.7495pt too wide) in paragraph at lines 845--848 +[]\OT1/cmtt/m/n/10 wiki2_r.cmo + [] + + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.850 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no O in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no j in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no 3 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no 3 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no U in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no 3 in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +! Missing $ inserted. + + $ +l.854 Error: Parse error: illegal begin of use_ + file +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! You can't use `macro parameter character #' in math mode. +l.855 # + def name = "world";; +Sorry, but I'm not programmed to handle this case; +I'll just pretend that you didn't ask for it. +If you're in the wrong mode, you might be able to +return to the right one by typing `I}' or `I$' or `I\par'. + +! You can't use `macro parameter character #' in math mode. +l.857 # + +Sorry, but I'm not programmed to handle this case; +I'll just pretend that you didn't ask for it. +If you're in the wrong mode, you might be able to +return to the right one by typing `I}' or `I$' or `I\par'. + + +! LaTeX Error: \begin{enumerate} on input line 2 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.858 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +! Missing $ inserted. + + $ +l.858 \end{bluecode} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (67.57959pt too wide) in paragraph at lines 851--859 +[]\OML/cmm/m/it/10 iledefname \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (88.29175pt too wide) in paragraph at lines 851--859 +\OT1/cmr/m/n/10 "\OML/cmm/m/it/10 world\OT1/cmr/m/n/10 "; ; \OML/cmm/m/it/10 va +lname \OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (38.21944pt too wide) in paragraph at lines 851--859 +\OML/cmm/m/it/10 string \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (35.45032pt too wide) in paragraph at lines 851--859 +\OT1/cmr/m/n/10 "\OML/cmm/m/it/10 world\OT1/cmr/m/n/10 "$ + [] + +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no y in font nullfont! +! Undefined control sequence. +l.862 we could build .mli by {\bf + ocamlbuild xx.inferred.mli} and then cop... +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no j in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no ) in font nullfont! + +Overfull \hbox (157.49863pt too wide) in paragraph at lines 861--865 +[]\OT1/cmtt/m/n/10 wiki2_r.mli : use_camlp4_full + [] + +Missing character: There is no M in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +! Undefined control sequence. +l.865 \item Make a new grammar {\bf + using the same lexer and token type } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.868 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no o in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no ; in font nullfont! + +! LaTeX Error: \begin{enumerate} on input line 2 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.871 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no s in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no ) in font nullfont! + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.877 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no B in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no ) in font nullfont! + +! LaTeX Error: \begin{enumerate} on input line 2 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.889 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +! Undefined control sequence. +l.892 \item parser {\bf + extensible} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.895 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no o in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no X in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no B in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no + in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no + in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no ] in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no ] in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no R in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no H in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +! Missing $ inserted. + + $ +l.908 [ x = SELF ; "**" ; y = SELF -> int_ + of_float (float x ** float y) ] +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing $ inserted. + + $ +l.918 + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.918 + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (68.95322pt too wide) in paragraph at lines 896--918 +[]\OML/cmm/m/it/10 f[]loat\OT1/cmr/m/n/10 (\OML/cmm/m/it/10 floatx \OMS/cmsy/m/ +n/10 ^^C + [] + + +Overfull \hbox (135.0881pt too wide) in paragraph at lines 896--918 +\OMS/cmsy/m/n/10 ^^C\OML/cmm/m/it/10 floaty\OT1/cmr/m/n/10 )]\OMS/cmsy/m/n/10 j +\OT1/cmr/m/n/10 "\OML/cmm/m/it/10 simple\OT1/cmr/m/n/10 "\OML/cmm/m/it/10 NONA\ +OT1/cmr/m/n/10 [\OML/cmm/m/it/10 x \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (39.87148pt too wide) in paragraph at lines 896--918 +\OML/cmm/m/it/10 INT\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (92.7496pt too wide) in paragraph at lines 896--918 +\OML/cmm/m/it/10 int[]f[]tringx\OMS/cmsy/m/n/10 j\OT1/cmr/m/n/10 "("; \OML/cmm/ +m/it/10 x \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (65.95831pt too wide) in paragraph at lines 896--918 +\OML/cmm/m/it/10 SELF\OT1/cmr/m/n/10 ; ")"\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 + > + [] + + +Overfull \hbox (326.41347pt too wide) in paragraph at lines 896--918 +\OML/cmm/m/it/10 x\OT1/cmr/m/n/10 ]]; \OML/cmm/m/it/10 END\OT1/cmr/m/n/10 ; \OM +L/cmm/m/it/10 value[]Printf:printf\OT1/cmr/m/n/10 "\OML/cmm/m/it/10 Gram:parse[ +]tringexpression\OT1/cmr/m/n/10 (\OML/cmm/m/it/10 Loc:mk\OT1/cmr/m/n/10 " \OML/ +cmm/m/it/10 < + [] + + +Overfull \hbox (38.21944pt too wide) in paragraph at lines 896--918 +\OML/cmm/m/it/10 string > + [] + + +Overfull \hbox (26.66675pt too wide) in paragraph at lines 896--918 +\OT1/cmr/m/n/10 ")"3 + + [] + + +Overfull \hbox (20.55562pt too wide) in paragraph at lines 896--918 +\OT1/cmr/m/n/10 ((4 \OMS/cmsy/m/n/10 ^^@ + [] + + +Overfull \hbox (16.66672pt too wide) in paragraph at lines 896--918 +\OT1/cmr/m/n/10 2) + + [] + + +Overfull \hbox (15.00005pt too wide) in paragraph at lines 896--918 +\OT1/cmr/m/n/10 28 \OMS/cmsy/m/n/10 ^^C + [] + + +Overfull \hbox (10.00003pt too wide) in paragraph at lines 896--918 +\OT1/cmr/m/n/10 3 \OMS/cmsy/m/n/10 ^^C + [] + + +Overfull \hbox (21.66673pt too wide) in paragraph at lines 896--918 +\OMS/cmsy/m/n/10 ^^C\OT1/cmr/m/n/10 2) + + [] + + +Overfull \hbox (31.66676pt too wide) in paragraph at lines 896--918 +\OT1/cmr/m/n/10 (4\OML/cmm/m/it/10 =\OT1/cmr/m/n/10 2)")[]$ + [] + +! Extra }, or forgotten \endgroup. +\@par ... \@noitemerr {\@@par }\fi \else {\@@par } + \fi +l.918 + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +Missing character: There is no ; in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no d in font nullfont! +! Missing $ inserted. + + $ +l.920 (* (read_ + line ()) ; *) +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing $ inserted. + + $ +l.921 + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.921 + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (42.17323pt too wide) in paragraph at lines 919--921 +[]\OML/cmm/m/it/10 ine\OT1/cmr/m/n/10 ()); \OMS/cmsy/m/n/10 ^^C\OT1/cmr/m/n/10 +)[]$ + [] + +! Extra }, or forgotten \endgroup. +\@par ... \@noitemerr {\@@par }\fi \else {\@@par } + \fi +l.921 + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + + +! LaTeX Error: \begin{enumerate} on input line 2 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.924 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +! Missing $ inserted. + + $ +l.924 \end{bluecode} + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (42.40277pt too wide) in paragraph at lines 922--925 +[]$\OML/cmm/m/it/10 cat[]ags < + [] + + +Overfull \hbox (91.88435pt too wide) in paragraph at lines 922--925 +\OML/cmm/m/it/10 pa[]r:[] >\OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (163.78757pt too wide) in paragraph at lines 922--925 +\OML/cmm/m/it/10 pkg[]ynlink; camlp\OT1/cmr/m/n/10 4\OML/cmm/m/it/10 rf; use[]a +mlp\OT1/cmr/m/n/10 4[]\OML/cmm/m/it/10 ull$ + [] + +Missing character: There is no f in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +! Undefined control sequence. +l.929 for oco in {\bf + toplevel }, extensible parser works {\bf quite well ... +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no s in font nullfont! +! Undefined control sequence. +l.929 ... toplevel }, extensible parser works {\bf + quite well in original sy... +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no x in font nullfont! + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.932 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no X in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no B in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no + in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no + in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no ] in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no ] in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no R in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no H in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +! Missing $ inserted. + + $ +l.951 [ x = SELF ; "**"; y = SELF -> int_ + of_float (float x ** float y)] +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing $ inserted. + + $ +l.952 + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.952 + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (68.95322pt too wide) in paragraph at lines 951--952 +[]\OML/cmm/m/it/10 f[]loat\OT1/cmr/m/n/10 (\OML/cmm/m/it/10 floatx \OMS/cmsy/m/ +n/10 ^^C + [] + + +Overfull \hbox (39.82536pt too wide) in paragraph at lines 951--952 +\OMS/cmsy/m/n/10 ^^C\OML/cmm/m/it/10 floaty\OT1/cmr/m/n/10 )][]$ + [] + +! Extra }, or forgotten \endgroup. +\@par ... \@noitemerr {\@@par }\fi \else {\@@par } + \fi +l.952 + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +Missing character: There is no | in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +! Missing $ inserted. + + $ +l.955 [ x = INT -> int_ + of_string x +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing $ inserted. + + $ +l.959 + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.959 + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (79.69101pt too wide) in paragraph at lines 955--959 +[]\OML/cmm/m/it/10 f[]tringx\OMS/cmsy/m/n/10 j\OT1/cmr/m/n/10 "("; \OML/cmm/m/i +t/10 x \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (65.95831pt too wide) in paragraph at lines 955--959 +\OML/cmm/m/it/10 SELF\OT1/cmr/m/n/10 ; ")"\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 + > + [] + + +Overfull \hbox (50.24431pt too wide) in paragraph at lines 955--959 +\OML/cmm/m/it/10 x\OT1/cmr/m/n/10 ]]; \OML/cmm/m/it/10 END\OT1/cmr/m/n/10 ; ; [ +]$ + [] + +! Extra }, or forgotten \endgroup. +\@par ... \@noitemerr {\@@par }\fi \else {\@@par } + \fi +l.959 + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +Missing character: There is no G in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +! Missing $ inserted. + + $ +l.960 Gram.parse_ + string +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing $ inserted. + + $ +l.964 + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.964 + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (128.27243pt too wide) in paragraph at lines 960--964 +[]$[]\OML/cmm/m/it/10 tringexpression\OT1/cmr/m/n/10 (\OML/cmm/m/it/10 Loc:mk\O +T1/cmr/m/n/10 " \OML/cmm/m/it/10 < + [] + + +Overfull \hbox (38.21944pt too wide) in paragraph at lines 960--964 +\OML/cmm/m/it/10 string > + [] + + +Overfull \hbox (26.66675pt too wide) in paragraph at lines 960--964 +\OT1/cmr/m/n/10 ")"3 + + [] + + +Overfull \hbox (20.55562pt too wide) in paragraph at lines 960--964 +\OT1/cmr/m/n/10 ((4 \OMS/cmsy/m/n/10 ^^@ + [] + + +Overfull \hbox (16.66672pt too wide) in paragraph at lines 960--964 +\OT1/cmr/m/n/10 2) + + [] + + +Overfull \hbox (15.00005pt too wide) in paragraph at lines 960--964 +\OT1/cmr/m/n/10 28 \OMS/cmsy/m/n/10 ^^C + [] + + +Overfull \hbox (10.00003pt too wide) in paragraph at lines 960--964 +\OT1/cmr/m/n/10 3 \OMS/cmsy/m/n/10 ^^C + [] + + +Overfull \hbox (21.66673pt too wide) in paragraph at lines 960--964 +\OMS/cmsy/m/n/10 ^^C\OT1/cmr/m/n/10 2) + + [] + + +Overfull \hbox (27.77786pt too wide) in paragraph at lines 960--964 +\OT1/cmr/m/n/10 (4\OML/cmm/m/it/10 =\OT1/cmr/m/n/10 2)"[]$ + [] + +! Extra }, or forgotten \endgroup. +\@par ... \@noitemerr {\@@par }\fi \else {\@@par } + \fi +l.964 + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + + +! LaTeX Error: \begin{enumerate} on input line 2 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.965 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no s in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.972 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no E in font nullfont! +Missing character: There is no X in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no R in font nullfont! +Missing character: There is no Y in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no R in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no V in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no R in font nullfont! +Missing character: There is no B in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no R in font nullfont! +Missing character: There is no E in font nullfont! + +! LaTeX Error: \begin{enumerate} on input line 2 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.977 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no S in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +! Undefined control sequence. +l.979 SELF represents either the {\bf + current level}, {\bf the next level} or +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no c in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no , in font nullfont! +! Undefined control sequence. +l.979 ...ents either the {\bf current level}, {\bf + the next level} or +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +! Undefined control sequence. +l.980 the {\bf + first level} depending on the {\bf associativity} and the +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +! Undefined control sequence. +l.980 ...e {\bf first level} depending on the {\bf + associativity} and the +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +! Undefined control sequence. +l.981 {\bf + position} of the SELF in the rule . +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no p in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no . in font nullfont! +! Undefined control sequence. +l.983 {\bf + current or next level if the SELF starts or ends the rule } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no c in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +! Undefined control sequence. +l.984 {\bf + first level otherwise } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no + in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no R in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no H in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.991 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no ] in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no ] in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no ] in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no ] in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no R in font nullfont! +Missing character: There is no Y in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no R in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no V in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no R in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no B in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no R in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! + +! LaTeX Error: \begin{enumerate} on input line 2 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.1005 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no T in font nullfont! + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.1012 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +! Missing $ inserted. + + $ +l.1023 + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.1023 + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (426.7708pt too wide) in paragraph at lines 1013--1023 +[]$\OML/cmm/m/it/10 catvector[]:mlopenSexplib\OT1/cmr/m/n/10 ; \OML/cmm/m/it/10 + openSexplib:Std\OT1/cmr/m/n/10 ; (\OMS/cmsy/m/n/10 ^^C\OML/cmm/m/it/10 forsome +methods; mainlyprettyprinter\OMS/cmsy/m/n/10 ^^C\OT1/cmr/m/n/10 )\OML/cmm/m/it/ +10 typevec \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (489.74007pt too wide) in paragraph at lines 1013--1023 +\OT1/cmr/m/n/10 [\OML/cmm/m/it/10 Scalarofstring\OMS/cmsy/m/n/10 j\OML/cmm/m/it +/10 Vectorofliststring\OMS/cmsy/m/n/10 j\OML/cmm/m/it/10 Sumofvecandvec\OMS/cms +y/m/n/10 j\OML/cmm/m/it/10 ScalarProductofvecandvec\OMS/cmsy/m/n/10 j\OML/cmm/m +/it/10 Antiquotofstring\OT1/cmr/m/n/10 ]\OML/cmm/m/it/10 withsexp\OT1/cmr/m/n/1 +0 ; []$ + [] + +! Extra }, or forgotten \endgroup. +\@par ... \@noitemerr {\@@par }\fi \else {\@@par } + \fi +l.1023 + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +Missing character: There is no v in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +! Missing $ inserted. + + $ +l.1026 value vec_ + to_string vec = +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing $ inserted. + + $ +l.1028 + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.1028 + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (60.36417pt too wide) in paragraph at lines 1026--1028 +[]\OML/cmm/m/it/10 o[]tringvec \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (27.52313pt too wide) in paragraph at lines 1026--1028 +\OML/cmm/m/it/10 vec\OMS/cmsy/m/n/10 j \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (56.50168pt too wide) in paragraph at lines 1026--1028 +\OML/cmm/m/it/10 sexp[]f[]ec\OMS/cmsy/m/n/10 j \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (65.04239pt too wide) in paragraph at lines 1026--1028 +\OML/cmm/m/it/10 Sexp:to[]tring\OT1/cmr/m/n/10 ; []$ + [] + +! Extra }, or forgotten \endgroup. +\@par ... \@noitemerr {\@@par }\fi \else {\@@par } + \fi +l.1028 + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +! Missing $ inserted. + + $ +l.1031 + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.1031 + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (69.41339pt too wide) in paragraph at lines 1030--1031 +[]$\OML/cmm/m/it/10 catpa[]ector[]:ml[]$ + [] + +! Extra }, or forgotten \endgroup. +\@par ... \@noitemerr {\@@par }\fi \else {\@@par } + \fi +l.1031 + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +Missing character: There is no o in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no V in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +! Missing $ inserted. + + $ +l.1033 open Vector_ + r ; +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing $ inserted. + + $ +l.1034 + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.1034 + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (8.87267pt too wide) in paragraph at lines 1032--1034 +[]\OT1/cmr/m/n/10 ; []$ + [] + +! Extra }, or forgotten \endgroup. +\@par ... \@noitemerr {\@@par }\fi \else {\@@par } + \fi +l.1034 + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +Missing character: There is no ( in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no z in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +! Missing $ inserted. + + $ +l.1036 value rec meta_ + vec _loc = fun +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +Missing character: There is no f in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +! Missing $ inserted. + + $ +l.1041 ...um l r -> <:expr< List.map2 (+.) $meta_ + vec _loc l$ $meta_vec _l... +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +Missing character: There is no > in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +! Missing $ inserted. + + $ +l.1043 let l = meta_ + vec _loc l0 +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +Missing character: There is no l in font nullfont! +Missing character: There is no r in font nullfont! +! Double subscript. +l.1047 |(Scalar _, _ + ) -> +I treat `x_1_2' essentially like `x_1{}_2'. + +Missing character: There is no l in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no r in font nullfont! +! Missing $ inserted. + + $ +l.1054 + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.1054 + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (36.53477pt too wide) in paragraph at lines 1035--1054 +[]\OML/cmm/m/it/10 ec[]oc \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (83.63097pt too wide) in paragraph at lines 1035--1054 +\OML/cmm/m/it/10 fun\OT1/cmr/m/n/10 [\OML/cmm/m/it/10 Scalars\OMS/cmsy/m/n/10 ^ +^@ \OML/cmm/m/it/10 ><\OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (46.30327pt too wide) in paragraph at lines 1035--1054 +\OML/cmm/m/it/10 expr <$$>> + [] + + +Overfull \hbox (59.26627pt too wide) in paragraph at lines 1035--1054 +\OMS/cmsy/m/n/10 j\OML/cmm/m/it/10 Vectorls\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/1 +0 > + [] + + +Overfull \hbox (122.2794pt too wide) in paragraph at lines 1035--1054 +\OML/cmm/m/it/10 List:fold[]ight\OT1/cmr/m/n/10 (\OML/cmm/m/it/10 funxl\OMS/cms +y/m/n/10 ^^@ \OML/cmm/m/it/10 ><\OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (30.74767pt too wide) in paragraph at lines 1035--1054 +\OML/cmm/m/it/10 expr < + [] + + +Overfull \hbox (29.44446pt too wide) in paragraph at lines 1035--1054 +\OT1/cmr/m/n/10 [$$::$$] \OML/cmm/m/it/10 >> + [] + + +Overfull \hbox (25.09027pt too wide) in paragraph at lines 1035--1054 +\OT1/cmr/m/n/10 )\OML/cmm/m/it/10 ls <\OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (30.74767pt too wide) in paragraph at lines 1035--1054 +\OML/cmm/m/it/10 expr < + [] + + +Overfull \hbox (23.88889pt too wide) in paragraph at lines 1035--1054 +\OT1/cmr/m/n/10 [] \OML/cmm/m/it/10 >> + [] + + +Overfull \hbox (60.84966pt too wide) in paragraph at lines 1035--1054 +\OMS/cmsy/m/n/10 j\OML/cmm/m/it/10 Sumlr\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > +<\OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (30.74767pt too wide) in paragraph at lines 1035--1054 +\OML/cmm/m/it/10 expr < + [] + + +Overfull \hbox (92.91762pt too wide) in paragraph at lines 1035--1054 +\OML/cmm/m/it/10 List:map\OT1/cmr/m/n/10 2(+\OML/cmm/m/it/10 :\OT1/cmr/m/n/10 ) +$$[]\OML/cmm/m/it/10 ec[]ocl$ + [] + + +Overfull \hbox (53.10204pt too wide) in paragraph at lines 1035--1054 +\OML/cmm/m/it/10 meta[]ec[]ocr$ + [] + + +Overfull \hbox (65.99783pt too wide) in paragraph at lines 1035--1054 +[]\OML/cmm/m/it/10 ec[]ocl\OT1/cmr/m/n/10 0\OML/cmm/m/it/10 andr \OT1/cmr/m/n/1 +0 = + [] + + +Overfull \hbox (246.40929pt too wide) in paragraph at lines 1035--1054 +\OML/cmm/m/it/10 meta[]ec[]ocr\OT1/cmr/m/n/10 0\OML/cmm/m/it/10 inmatch\OT1/cmr +/m/n/10 (\OML/cmm/m/it/10 l\OT1/cmr/m/n/10 0\OML/cmm/m/it/10 ; r\OT1/cmr/m/n/10 + 0)\OML/cmm/m/it/10 with\OT1/cmr/m/n/10 [(\OML/cmm/m/it/10 Scalar[]Scalar[]\OMS +/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 ><\OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (54.08107pt too wide) in paragraph at lines 1035--1054 +\OML/cmm/m/it/10 expr <$$\OMS/cmsy/m/n/10 ^^C\OML/cmm/m/it/10 :$$>> + [] + + +Overfull \hbox (71.35541pt too wide) in paragraph at lines 1035--1054 +\OMS/cmsy/m/n/10 j\OT1/cmr/m/n/10 (\OML/cmm/m/it/10 Scalar[][]\OMS/cmsy/m/n/10 +^^@ \OML/cmm/m/it/10 ><\OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (30.74767pt too wide) in paragraph at lines 1035--1054 +\OML/cmm/m/it/10 expr < + [] + + +Overfull \hbox (118.99863pt too wide) in paragraph at lines 1035--1054 +\OML/cmm/m/it/10 List:map\OT1/cmr/m/n/10 (\OML/cmm/m/it/10 funx\OMS/cmsy/m/n/10 + ^^@ \OML/cmm/m/it/10 >$$\OMS/cmsy/m/n/10 ^^C\OML/cmm/m/it/10 :x\OT1/cmr/m/n/10 + )$$\OML/cmm/m/it/10 >> + [] + + +Overfull \hbox (71.35541pt too wide) in paragraph at lines 1035--1054 +\OMS/cmsy/m/n/10 j\OT1/cmr/m/n/10 ([]\OML/cmm/m/it/10 Scalar[]\OMS/cmsy/m/n/10 +^^@ \OML/cmm/m/it/10 ><\OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (30.74767pt too wide) in paragraph at lines 1035--1054 +\OML/cmm/m/it/10 expr < + [] + + +Overfull \hbox (118.99863pt too wide) in paragraph at lines 1035--1054 +\OML/cmm/m/it/10 List:map\OT1/cmr/m/n/10 (\OML/cmm/m/it/10 funx\OMS/cmsy/m/n/10 + ^^@ \OML/cmm/m/it/10 >$$\OMS/cmsy/m/n/10 ^^C\OML/cmm/m/it/10 :x\OT1/cmr/m/n/10 + )$$\OML/cmm/m/it/10 >> + [] + + +Overfull \hbox (30.6389pt too wide) in paragraph at lines 1035--1054 +\OMS/cmsy/m/n/10 j[] \OML/cmm/m/it/10 ><\OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (30.74767pt too wide) in paragraph at lines 1035--1054 +\OML/cmm/m/it/10 expr < + [] + + +Overfull \hbox (171.04343pt too wide) in paragraph at lines 1035--1054 +\OML/cmm/m/it/10 List:fold[]eft\OT1/cmr/m/n/10 (+\OML/cmm/m/it/10 :\OT1/cmr/m/n +/10 )0\OML/cmm/m/it/10 :\OT1/cmr/m/n/10 (\OML/cmm/m/it/10 List:map\OT1/cmr/m/n/ +10 2(\OMS/cmsy/m/n/10 ^^C\OML/cmm/m/it/10 :\OT1/cmr/m/n/10 )$$$$) \OML/cmm/m/it +/10 >> + [] + + +Overfull \hbox (2.77779pt too wide) in paragraph at lines 1035--1054 +\OT1/cmr/m/n/10 ][]$ + [] + +! Extra }, or forgotten \endgroup. +\@par ... \@noitemerr {\@@par }\fi \else {\@@par } + \fi +l.1054 + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +Missing character: There is no | in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no < in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no ] in font nullfont! +Missing character: There is no ; in font nullfont! + +! LaTeX Error: \begin{enumerate} on input line 2 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.1058 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + + +Overfull \hbox (17.38606pt too wide) in paragraph at lines 1055--1059 +\OML/cmm/m/it/10 lid \OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (4.6875pt too wide) in paragraph at lines 1055--1059 +\OML/cmm/m/it/10 s$ + [] + + +! LaTeX Error: Environment bluecode undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.1062 \begin{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no ( in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no X in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no B in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no + in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no ] in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no ] in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no ] in font nullfont! +Missing character: There is no ] in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no ` in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no , in font nullfont! +! Missing $ inserted. + + $ +l.1079 [[`INT (i,_ + ) -> string_of_float (float i) (* for full information *) +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing $ inserted. + + $ +l.1098 + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.1098 + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (21.95833pt too wide) in paragraph at lines 1063--1098 +[]\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (279.12715pt too wide) in paragraph at lines 1063--1098 +\OML/cmm/m/it/10 string[]f[]loat\OT1/cmr/m/n/10 (\OML/cmm/m/it/10 floati\OT1/cm +r/m/n/10 )(\OMS/cmsy/m/n/10 ^^C\OML/cmm/m/it/10 forfullinformation\OMS/cmsy/m/n +/10 ^^C\OT1/cmr/m/n/10 )\OMS/cmsy/m/n/10 j\OT1/cmr/m/n/10 `\OML/cmm/m/it/10 FLO +AT\OT1/cmr/m/n/10 ([]\OML/cmm/m/it/10 f\OT1/cmr/m/n/10 )\OMS/cmsy/m/n/10 ^^@ \O +ML/cmm/m/it/10 > + [] + + +Overfull \hbox (48.96529pt too wide) in paragraph at lines 1063--1098 +\OML/cmm/m/it/10 f\OT1/cmr/m/n/10 ]]; \OML/cmm/m/it/10 vector \OT1/cmr/m/n/10 : + + [] + + +Overfull \hbox (51.1088pt too wide) in paragraph at lines 1063--1098 +\OT1/cmr/m/n/10 [["["; \OML/cmm/m/it/10 strs \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (130.95952pt too wide) in paragraph at lines 1063--1098 +\OML/cmm/m/it/10 LIST\OT1/cmr/m/n/10 0\OML/cmm/m/it/10 scalarSEP\OT1/cmr/m/n/10 + "\OML/cmm/m/it/10 ; \OT1/cmr/m/n/10 "; "]"\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/1 +0 > + [] + + +Overfull \hbox (463.65439pt too wide) in paragraph at lines 1063--1098 +\OML/cmm/m/it/10 Vectorstrs\OT1/cmr/m/n/10 ]]; \OML/cmm/m/it/10 END\OT1/cmr/m/n +/10 ; \OML/cmm/m/it/10 Gram:Entry:clearSyntax:expr\OT1/cmr/m/n/10 ; (\OMS/cmsy/ +m/n/10 ^^C\OML/cmm/m/it/10 inthemoduleSyntax\OMS/cmsy/m/n/10 ^^C\OT1/cmr/m/n/10 + )\OML/cmm/m/it/10 EXTENDGramGLOBAL \OT1/cmr/m/n/10 : + [] + + +Overfull \hbox (121.10886pt too wide) in paragraph at lines 1063--1098 +\OML/cmm/m/it/10 Syntax:expr\OT1/cmr/m/n/10 ; \OML/cmm/m/it/10 Syntax:expr \OT1 +/cmr/m/n/10 : + [] + + +Overfull \hbox (21.82635pt too wide) in paragraph at lines 1063--1098 +\OT1/cmr/m/n/10 [[\OML/cmm/m/it/10 x \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (66.85144pt too wide) in paragraph at lines 1063--1098 +\OML/cmm/m/it/10 expression\OMS/cmsy/m/n/10 ^^@ \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (108.0015pt too wide) in paragraph at lines 1063--1098 +\OML/cmm/m/it/10 meta[]ec[]ocx\OT1/cmr/m/n/10 ]]; \OML/cmm/m/it/10 END\OT1/cmr/ +m/n/10 ; (\OMS/cmsy/m/n/10 ^^C ^^C + [] + + +Overfull \hbox (119.63449pt too wide) in paragraph at lines 1063--1098 +\OML/cmm/m/it/10 testparser\OMS/cmsy/m/n/10 ^^C\OT1/cmr/m/n/10 )\OML/cmm/m/it/1 +0 value[]let[]oc \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (48.61465pt too wide) in paragraph at lines 1063--1098 +\OML/cmm/m/it/10 Loc:mk\OT1/cmr/m/n/10 " \OML/cmm/m/it/10 < + [] + + +Overfull \hbox (38.21944pt too wide) in paragraph at lines 1063--1098 +\OML/cmm/m/it/10 string > + [] + + +Overfull \hbox (67.22527pt too wide) in paragraph at lines 1063--1098 +\OT1/cmr/m/n/10 "\OML/cmm/m/it/10 in\OT1/cmr/m/n/10 "[1\OML/cmm/m/it/10 ; \OT1/ +cmr/m/n/10 2\OML/cmm/m/it/10 ; \OT1/cmr/m/n/10 3]"\OMS/cmsy/m/n/10 j \OML/cmm/m +/it/10 > + [] + + +Overfull \hbox (155.29236pt too wide) in paragraph at lines 1063--1098 +\OML/cmm/m/it/10 Gram:parse[]tringexpression[]oc\OMS/cmsy/m/n/10 j \OML/cmm/m/i +t/10 > + [] + + +Overfull \hbox (63.14195pt too wide) in paragraph at lines 1063--1098 +\OML/cmm/m/it/10 vec[]o[]tring\OMS/cmsy/m/n/10 j \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (76.79659pt too wide) in paragraph at lines 1063--1098 +\OML/cmm/m/it/10 print[]tring\OT1/cmr/m/n/10 ; (\OMS/cmsy/m/n/10 ^^Cj \OML/cmm/ +m/it/10 > + [] + + +Overfull \hbox (56.50168pt too wide) in paragraph at lines 1063--1098 +\OML/cmm/m/it/10 sexp[]f[]ec\OMS/cmsy/m/n/10 j \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (73.93127pt too wide) in paragraph at lines 1063--1098 +\OML/cmm/m/it/10 Sexp:to[]tring\OMS/cmsy/m/n/10 j \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (63.46329pt too wide) in paragraph at lines 1063--1098 +\OML/cmm/m/it/10 print[]tring\OT1/cmr/m/n/10 ; \OMS/cmsy/m/n/10 ^^C\OT1/cmr/m/n +/10 )[]$ + [] + +! Extra }, or forgotten \endgroup. +\@par ... \@noitemerr {\@@par }\fi \else {\@@par } + \fi +l.1098 + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +Missing character: There is no ( in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no | in font nullfont! +Missing character: There is no > in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +! Missing $ inserted. + + $ +l.1099 (* |> vec_ + print |> print_string ; *) +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing $ inserted. + + $ +l.1101 + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Missing } inserted. + + } +l.1101 + +I've inserted something that you may have forgotten. +(See the above.) +With luck, this will get me unwedged. But if you +really didn't forget anything, try typing `2' now; then +my insertion and my current dilemma will both disappear. + + +Overfull \hbox (35.8036pt too wide) in paragraph at lines 1099--1101 +[]\OML/cmm/m/it/10 rint\OMS/cmsy/m/n/10 j \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (85.6855pt too wide) in paragraph at lines 1099--1101 +\OML/cmm/m/it/10 print[]tring\OT1/cmr/m/n/10 ; \OMS/cmsy/m/n/10 ^^C\OT1/cmr/m/n +/10 )(\OMS/cmsy/m/n/10 ^^Cj \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (56.50168pt too wide) in paragraph at lines 1099--1101 +\OML/cmm/m/it/10 sexp[]f[]ec\OMS/cmsy/m/n/10 j \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (69.65863pt too wide) in paragraph at lines 1099--1101 +\OML/cmm/m/it/10 string[]f[]exp\OMS/cmsy/m/n/10 j \OML/cmm/m/it/10 > + [] + + +Overfull \hbox (63.46329pt too wide) in paragraph at lines 1099--1101 +\OML/cmm/m/it/10 print[]tring\OT1/cmr/m/n/10 ; \OMS/cmsy/m/n/10 ^^C\OT1/cmr/m/n +/10 )[]$ + [] + +! Extra }, or forgotten \endgroup. +\@par ... \@noitemerr {\@@par }\fi \else {\@@par } + \fi +l.1101 + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +Missing character: There is no ( in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no 3 in font nullfont! +Missing character: There is no ] in font nullfont! +Missing character: There is no + in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no 3 in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no 5 in font nullfont! +Missing character: There is no ] in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no 6 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no ; in font nullfont! +Missing character: There is no 8 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no ] in font nullfont! +Missing character: There is no * in font nullfont! +Missing character: There is no ) in font nullfont! + +! LaTeX Error: \begin{enumerate} on input line 2 ended by \end{bluecode}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.1105 \end{bluecode} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no s in font nullfont! +! Undefined control sequence. +l.1108 \href + {http://brion.inria.fr/gallium/index.php/Abstract\_Syntax\_Tre... +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no e in font nullfont! +! Undefined control sequence. + \href + +l.1109 \href + {http://elehack.net/michael/blog/2010/06/ocaml-syntax-extensio... +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 6 in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no k in font nullfont! +! Undefined control sequence. + \href + +l.1110 \href + {http://andreiformiga.com/blog/?p=99}{meta-guide} \\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no ? in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no 9 in font nullfont! +Missing character: There is no 9 in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +! Undefined control sequence. + \href + +l.1111 \href + {http://www.wisdomandwonder.com/link/5302/resources-for-learni... +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no 5 in font nullfont! +Missing character: There is no 3 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no 4 in font nullfont! +) +! Emergency stop. +<*> \input camlp4_tutorial.tex + +*** (job aborted, no legal \end found) + + +Here is how much of TeX's memory you used: + 30 strings out of 493748 + 419 string characters out of 3143568 + 82448 words of memory out of 3000000 + 3418 multiletter control sequences out of 15000+200000 + 4462 words of font info for 17 fonts, out of 3000000 for 9000 + 714 hyphenation exceptions out of 8191 + 18i,7n,12p,326b,247s stack positions out of 5000i,500n,10000p,200000b,50000s +Output written on camlp4_tutorial.dvi (1 page, 4472 bytes). diff --git a/camlp4/camlp4_tutorial.synctex.gz b/camlp4/camlp4_tutorial.synctex.gz new file mode 100644 index 0000000..4db0d66 Binary files /dev/null and b/camlp4/camlp4_tutorial.synctex.gz differ diff --git a/camlp4/camlp4_tutorial.tex b/camlp4/camlp4_tutorial.tex new file mode 100644 index 0000000..2069095 --- /dev/null +++ b/camlp4/camlp4_tutorial.tex @@ -0,0 +1,456 @@ +\item tutorial +\begin{enumerate} +\item basics (camlp4 \textbf{ command lines}) +\begin{alternate} +bash-3.2$ camlp4 -where +/Users/bob/SourceCode/ML/godi/lib/ocaml/std-lib/camlp4 +bash-3.2$ which camlp4 +/Users/bob/SourceCode/ML/godi/bin/camlp4 +\end{alternate} + +\begin{redcode} +find /Users/bob/SourceCode/ML/godi/bin -type f -perm -og+rx | grep camlp4 +\end{redcode} +\begin{bluecode} +/Users/bob/SourceCode/ML/godi/bin/camlp4 +/Users/bob/SourceCode/ML/godi/bin/camlp4boot +/Users/bob/SourceCode/ML/godi/bin/camlp4o +/Users/bob/SourceCode/ML/godi/bin/camlp4o.opt +/Users/bob/SourceCode/ML/godi/bin/camlp4of +/Users/bob/SourceCode/ML/godi/bin/camlp4of.opt +/Users/bob/SourceCode/ML/godi/bin/camlp4oof +/Users/bob/SourceCode/ML/godi/bin/camlp4oof.opt +/Users/bob/SourceCode/ML/godi/bin/camlp4orf +/Users/bob/SourceCode/ML/godi/bin/camlp4orf.opt +/Users/bob/SourceCode/ML/godi/bin/camlp4prof +/Users/bob/SourceCode/ML/godi/bin/camlp4r +/Users/bob/SourceCode/ML/godi/bin/camlp4r.opt +/Users/bob/SourceCode/ML/godi/bin/camlp4rf +/Users/bob/SourceCode/ML/godi/bin/camlp4rf.opt +/Users/bob/SourceCode/ML/godi/bin/mkcamlp4 +/Users/bob/SourceCode/ML/godi/bin/safe_camlp4 +\end{bluecode} + so the tools at hand are \textbf{camlp4, camlp4o, camlp4of, camlp4oof, camlp4orf, camlp4r, camlp4rf } + +\begin{redcode} +camlp4 -h +\end{redcode} +\begin{bluecode} +Usage: camlp4 [load-options] [--] [other-options] +Options: +.ml Parse this implementation file +.mli Parse this interface file +.(cmo|cma) Load this module inside the Camlp4 core + -I Add directory in search patch for object files. + -where Print camlp4 library directory and exit. + -nolib No automatic search for object files in library directory. + -intf Parse as an interface, whatever its extension. + -impl Parse as an implementation, whatever its extension. + -str Parse as an implementation. + -unsafe Generate unsafe accesses to array and strings. + -noassert Obsolete, do not use this option. + -verbose More verbose in parsing errors. + -loc Name of the location variable (default: _loc). + -QD Dump quotation expander result in case of syntax error. + -o Output on instead of standard output. + -v Print Camlp4 version and exit. + -version Print Camlp4 version number and exit. + -vnum Print Camlp4 version number and exit. + -no_quot Don't parse quotations, allowing to use, e.g. "<:>" as token. + -loaded-modules Print the list of loaded modules. + -parser Load the parser Camlp4Parsers/.cm(o|a|xs) + -printer Load the printer Camlp4Printers/.cm(o|a|xs) + -filter Load the filter Camlp4Filters/.cm(o|a|xs) + -ignore ignore the next argument + -- Deprecated, does nothing +\end{bluecode} + +useful options \textbf{-str}, \textbf{ -loaded-modules } \textbf{ -parser load the parser Camlp4Parsers/.cm(o|a|xs)} \textbf{ -printer load the printer Camlp4Printerss/.cm(o|a|xs)}, \textbf{ -filter load the filter Camlp4Filters/.cm(o|a|xs)}. + + -printer o means print in original syntax + these command line options are all handled in \emph{Camlp4Bin.ml } \\ + +camlp4o -h +Options \textbf{ added} by loaded object files +\textbf{ -add\_locations Add locations as comment} \\ +\textbf{ -no\_comments|} \\ +\textbf{ -curry-constr (Use curried constructors)} \\ +\textbf{ -sep Use this string between parsers} \\ + +\item That reflective is true means when extending the syntax of the host language + will {\bf also extend the embedded one} \\ + + \begin{tabular}{|c|c|c|c|c|} + \hline + & host & embedded & reflective & 3.09 equivalent \\ + camlp4of & original & original & Yes & N/A \\ + camlp4rf & revised & revised & Yes & N/A \\ + camlp4r-parser rq & revised & revised & No & camlp4r q\_MLast.cmo \\ + camlp4orf & original & revised & No & camlp4o q\_MLast.cmo \\ + camlp4oof & original & original & No & N/A \\ + \hline + \end{tabular} \\ + + \item camlp4r + \begin{enumerate} + \item parser \\ + RP, RPP(RevisedParserParser) + \item printer \\ + OCaml + \end{enumerate} + \item camlp4rf (extended from camlp4r) + \begin{enumerate} + \item parser \\ + RP,RPP, GrammarP, ListComprehension, MacroP, QuotationExpander + \item printer \\ + OCaml + \end{enumerate} + \item camlp4o (extended from camlp4r) + \begin{enumerate} + \item parser \\ + OP, OPP, RP,RPP + \end{enumerate} + + \item camlp4of (extended from camlp4o) + \begin{enumerate} + \item parser \\ + GrammarParser, ListComprehension, MacroP, QuotatuinExpander + \item printer + \end{enumerate} + + +\item (without ocamlbuild, ocamlfind) \textbf{ simple build and example } \\ + ocamlc -pp camlp4o.opt error.ml + + +\begin{alternate} +camlp4of -str "let a = [x| x <- [1.. 10] ] " +let a = [ 1..10 ] +camlp4o -str 'true && false' +true && false +\end{alternate} + + +\begin{redcode} +camlp4of -str "let q = <:str_item< let f x = x >>" +\end{redcode} +\begin{bluecode} +let q = + Ast.StSem (_loc, + (Ast.StVal (_loc, Ast.ReNil, + (Ast.BiEq (_loc, + (Ast.PaId (_loc, (Ast.IdLid (_loc, "f")))), + (Ast.ExFun (_loc, + (Ast.McArr + (_loc, + (Ast.PaId (_loc, (Ast.IdLid (_loc, "x")))), + (Ast.ExNil _loc), (Ast.ExId (_loc, (Ast.IdLid (_loc, "x")))))))))))), + (Ast.StNil _loc)) +\end{bluecode} +\end{enumerate} +\item \textbf{ Source} Code + \begin{enumerate} + \item directory structure + +\begin{bluecode} +|<.> +|-- +|-- +|-- +|---- +|---- -- important +|------ +|-- -- important +|-- -- important +|-- +|-- +|-- -- important +|-- +|-- +|---- +|-- -- many useful extensions unmatained +|---- +|---- +|---- -- fold extension +|---- +|---- +|---- +|---- +|---- +|---- +|---- +|---- +|---- +\end{bluecode} + + + + \item Camlp4.PreCast (Camlp4/PreCast.ml) \\ + + Struct directory has module Loc, Dynloader Functor, + Camlp4Ast.Make, Token.Make, Lexer.Make, Grammar.Static.Make, Quotation.Make + + PreCast re-export such files + + \begin{bluetext} + Struct/Loc.ml + Struct/Camlp4Ast.mlast + Struct/Token.ml + Struct/Grammar/Parser.ml + Struct/Grammar/Static.ml + Struct/Lexer.mll + Struct/DynLoader.ml + Struct/Quotation.ml + Struct/AstFilters.ml + OCamlInitSyntax.ml + Printers/OCaml.ml + Printers/OCamlr.ml + Printers/Null.ml + Printers/DumpCamlp4Ast.ml + Printers/DumpOCamlAst.ml + \end{bluetext} + + + +\begin{bluecode} +module Id = struct + value name = "Camlp4.PreCast"; + value version = Sys.ocaml_version; +end; +type camlp4_token = Sig.camlp4_token == + [ KEYWORD of string + | SYMBOL of string -- interesting + | LIDENT of string + | UIDENT of string + | ESCAPED_IDENT of string -- interesting + | INT of int and string + | INT32 of int32 and string + | INT64 of int64 and string + | NATIVEINT of nativeint and string + | FLOAT of float and string + | CHAR of char and string + | STRING of string and string + | LABEL of string + | OPTLABEL of string + | QUOTATION of Sig.quotation + | ANTIQUOT of string and string + | COMMENT of string -- interesting + | BLANKS of string -- interesting + | NEWLINE -- interesting + | LINE_DIRECTIVE of int and option string -- interesting + | EOI ]; + + +module Loc = Struct.Loc; +module Ast = Struct.Camlp4Ast.Make Loc; +module Token = Struct.Token.Make Loc; +module Lexer = Struct.Lexer.Make Token; +module Gram = Struct.Grammar.Static.Make Lexer; +module DynLoader = Struct.DynLoader; +module Quotation = Struct.Quotation.Make Ast; + +(** intersting, so you can make your own syntax totally + but it's not easy to do this in toplevel, probably will crash.. +*) +module MakeSyntax (U : sig end) = OCamlInitSyntax.Make Ast Gram Quotation; +module Syntax = MakeSyntax (struct end); +module AstFilters = Struct.AstFilters.Make Ast; +module MakeGram = Struct.Grammar.Static.Make; + +module Printers = struct + module OCaml = Printers.OCaml.Make Syntax; + module OCamlr = Printers.OCamlr.Make Syntax; + (* module OCamlrr = Printers.OCamlrr.Make Syntax; *) + module DumpOCamlAst = Printers.DumpOCamlAst.Make Syntax; + module DumpCamlp4Ast = Printers.DumpCamlp4Ast.Make Syntax; + module Null = Printers.Null.Make Syntax; +end; + +\end{bluecode} + + + +\item Camlp4.OcamlInitSyntax + + Given \textbf{Ast, Gram, Quotation}, we produce \textbf{Camlp4Syntax} + +\begin{bluecode} +(** Ast -> Gram -> Quotation -> Camlp4Syntax *) +Make (Ast:Sig.Camlp4Ast) (Gram: Sig.Grammar.Static + with module Loc = Ast.Loc + with type Token.t = Sig.camlp4_token) + (Quotation : Sig.Quotation + with module Ast = Sig.Camlp4AstToAst Ast) :Sig.Camlp4Syntax + with module Loc = Ast.Loc + module Ast = Ast + module Gram = Gram + module Token = Gram.Token + module Quotation = Quotation += struct + ... bla bla + value a_LIDENT = Gram.Entry.mk "bla bla" + ... + EXTEND_Gram + top_phrase: + [[ `EOI -> None ]] + ; + END; + + module AntiQuoteSyntax = Struct + module LOC = Ast.Loc + module Ast = Sig.Camlp4AstToAst Ast ; (** intersting *) + (** Camlp4AstToAst the functor is a restriction + functor. Takes a Camlp4Ast module and return it with some + restrictions + *) + module Gram = Gram ; + value antiquot_expr = Gram.Entry.mk "antiquot_expr"; + value antiquot_patt = Gram.Entry.mk "antiquot_patt"; + EXTEND_Gram + antiquot_expr : + [[ x = expr ; `EOI -> x ]] ; + antiquot_patt : + [[ x = patt ; `EOI -> x ]] + END; + value parse_expr loc str = Gram.parse_string antiquot_expr loc str ; + value parse_patt loc str = Gram.parse_string antiquot_patt loc str ; + end + module Quotation = Quotation ; + value parse_implem ... + value parse_interf ... + value print_interf ... + value print_implem ... + module Quotation = Quotation ; +end +\end{bluecode} + + + Notice Gram.Entry is \textbf{ dynamic, extensible} + \item Camlp4.Sig.ml + \item Camlp4.Struct.Camlp4Ast.mlast (Camlp4.Camlp4Ast.parital.ml) + + +\begin{bluecode} +Camlp4.Struct.Camlp4Ast.Make : Loc -> Sig.Camlp4Syntax +(** in the file we have *) + module Ast = struct + include Sig.MakeCamlp4Ast Loc + end ; +\end{bluecode} + +interesting , it uses the \textbf{ filter} iteself + +\begin{bluecode} +class map = Camlp4MapGenerator.generated; +class fold = Camlp4FoldGenerator.generated; +\end{bluecode} + + + The filter \emph{Camlp4MapGenerator} reads \emph{OCaml} type definitions and generate +a class that implements a map traversal. +The generated class have a method per type you can override to +implement a \emph{map traversal}. + +as follows, Camlp4.Ast has a corresponding map traversal object, which could +be used by you: (the class was generated by our filter) +\begin{bluecode} +open Camlp4.PreCast +let simplify = object + inherit Ast.map as super + method expr e = match super#expr e with + |<:expr< $x$ + 0 >> | <:expr< $x$ + 0 >> -> x + | x -> x +end in AstFilters.register_str_item_filter simplify#str_item +\end{bluecode} + +To make life easier, +\begin{bluecode} +open Camlp4.PreCast +let simplify = Ast.map_expr begin function + |<:expr< $x$ + 0 >> | <:expr< 0 + $x$ >> -> x + | x -> x +end in AstFilters.register_str_item_filter simplify#str_item +(** +AstFilters.register_str_item_filter +register_sig_item_filter +register_topphrase_filter +*) +\end{bluecode} + + +you can also generate map traversal for ocaml type. \emph{put your type definition before} +you macro, like this +\begin{bluecode} +type t1 = ... +and t2 = ... +and tn = ... ; +class map = Camlp4MapGenerator.generated; +\end{bluecode} +\begin{bluecode} +tags : "map_filter_r.ml" : pp(camlp4r -filter map) +\end{bluecode} + +\begin{redcode} +cat map_filter_r.ml +\end{redcode} + +\begin{bluecode} +type a = [A of b | C ] +and b = [B of a | D ]; +class map = Camlp4MapGenerator.generated; +(* output +type a = [ A of b | C ] and b = [ B of a | D ]; +class map = + object ((o : 'self_type)) + method b : b -> b = fun [ B _x -> let _x = o#a _x in B _x | D -> D ]; + method a : a -> a = fun [ A _x -> let _x = o#b _x in A _x | C -> C ]; + method unknown : ! 'a. 'a -> 'a = fun x -> x; + end; +*) +\end{bluecode} + +\begin{redcode} +cat _build/map_filter_r.inferred.mli +\end{redcode} + +\begin{bluecode} +type a = A of b | C +and b = B of a | D +class map : + object method a : a -> a method b : b -> b method unknown : 'a -> 'a end +\end{bluecode} + +Camlp4 use the filter in \verb|antiquot_expander|, \\ +for example in Camlp4Parsers/Camlp4QuotationCommon.ml, +in the definition of \verb|add_quotation|, we have +\begin{bluecode} +value antiquot_expander = object + inherit Ast.map as super ; + method patt : patt -> patt ... + method expr : expr -> expr ... +let expand_expr loc loc_name_opt s = + let ast = parse_quot_string entry_eoi loc s in + let () = MetaLoc.loc_name.val := loc_name_opt in + let meta_ast = mexpr loc ast in + let exp_ast = antiquot_expander#expr meta_ast in + exp_ast in +\end{bluecode} + + +Notice that it first invoked \verb|parse_quot_string|, then do some transformation, +\textbf{ that's how quotation works} !, it will change to your customized quotation parser, +and when it goes to antiquot syntax, it will go back to \textbf{ host language parser}. Since the host language parser also support quotation syntax (due to \textbf{ reflexivity}), so you +\textbf{ nest your quotation whatever you want.} + +\end{enumerate} + + + + + + + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "../master" +%%% End: diff --git a/camlp4/experiment.tex b/camlp4/experiment.tex new file mode 100644 index 0000000..f3d0946 --- /dev/null +++ b/camlp4/experiment.tex @@ -0,0 +1,69 @@ +\item experimentation + \begin{enumerate} + \item toplevel {\bf via findlib} +\begin{bluecode} +ocaml +#camlp4r; +#load "camlp4rf.cma" +\end{bluecode} + + + + \item using ocamlobjinfo to search modules + + +\begin{bluecode} +ocamlobjinfo `camlp4 -where`/camlp4fulllib.cma | grep -i unit +Unit name: Camlp4_import +Unit name: Camlp4_config +Unit name: Camlp4 +Unit name: Camlp4AstLoader +Unit name: Camlp4DebugParser +Unit name: Camlp4GrammarParser +Unit name: Camlp4ListComprehension +Unit name: Camlp4MacroParser +Unit name: Camlp4OCamlParser +Unit name: Camlp4OCamlRevisedParser +Unit name: Camlp4QuotationCommon +Unit name: Camlp4OCamlOriginalQuotationExpander +Unit name: Camlp4OCamlRevisedParserParser +Unit name: Camlp4OCamlParserParser +Unit name: Camlp4OCamlRevisedQuotationExpander +Unit name: Camlp4QuotationExpander +Unit name: Camlp4AstDumper +Unit name: Camlp4AutoPrinter +Unit name: Camlp4NullDumper +Unit name: Camlp4OCamlAstDumper +Unit name: Camlp4OCamlPrinter +Unit name: Camlp4OCamlRevisedPrinter +Unit name: Camlp4AstLifter +Unit name: Camlp4ExceptionTracer +Unit name: Camlp4FoldGenerator +Unit name: Camlp4LocationStripper +Unit name: Camlp4MapGenerator +Unit name: Camlp4MetaGenerator +Unit name: Camlp4Profiler +Unit name: Camlp4TrashRemover +Unit name: Camlp4Top +\end{bluecode} + + + + \item using \textbf{script} (oco using original syntax is ok) \\ + but when using ocr, it will have some problems, i.e. .ocamlinit, and other startup files including findlib. here I use .ocamlinitr (revised syntax) for ocr, but it still have some problem with findlib, (internal, hard to solve), but does not really matter. + + +\begin{alternate} +bash-3.2$ cat /usr/local/bin//oco +ledit -x -h ~/.ocaml_history ocaml dynlink.cma camlp4of.cma -warn-error +a-4-6-27..29 +cat `which ocr` +ledit -x -h ~/.ocaml_history ocaml dynlink.cma camlp4rf.cma -init ~/.ocamlinitr -warn-error +a-4-6-27..29 +\end{alternate} + +% $ +\end{enumerate} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "../master" +%%% End: diff --git a/camlp4/extensible_parser.tex b/camlp4/extensible_parser.tex new file mode 100644 index 0000000..2983c2e --- /dev/null +++ b/camlp4/extensible_parser.tex @@ -0,0 +1,864 @@ +\item parser \textbf{ extensible} + \begin{enumerate} + \item simple calc example + + \begin{bluecode} +open Camlp4.PreCast; +value expression = Gram.Entry.mk "expression" ; +EXTEND Gram + GLOBAL: expression ; + expression : [ + "add" LEFTA + [ x = SELF ; "+" ; y = SELF -> x + y + | x = SELF ; "-" ; y = SELF -> x - y] + | "mult" LEFTA + [ x = SELF ; "*" ; y = SELF -> x * y + | x = SELF ; "/" ; y = SELF -> x / y] + | "pow" RIGHTA + [ x = SELF ; "**" ; y = SELF -> int_of_float (float x ** float y) ] + | "simple" NONA + [ x = INT -> int_of_string x + | "(" ; x = SELF ; ")" -> x ] + ] ; +END; +value _ = Printf.printf "%d" ( + Gram.parse_string + expression + (Loc.mk "" ) "3 + ((4 - 2) + 28 * 3 ** 2) + (4 / 2)" ); + (* (read_line ()) ; *) + \end{bluecode} + + \begin{alternate} +$cat _tags + : pkg_dynlink , camlp4rf, use_camlp4_full +\end{alternate} + + +% $ + +for oco in \textbf{ toplevel }, extensible parser works \textbf{ + quite well in original syntax}, so if you don't do quasiquoation + in toplevel, \textit{feel free to use original syntax}. + Original syntax works as follows +\begin{bluecode} +let expression = Gram.Entry.mk "expression" ; +EXTEND Gram + GLOBAL : expression ; + expression : [ + "add" + [ x = SELF; "+"; y = SELF -> x + y + | x = SELF; "-"; y = SELF -> x - y ] + |"mult" + [ x = SELF; "*"; y = SELF -> x * y + | x = SELF; "/"; y = SELF -> x / y] + | "pow" RIGHTA + [ x = SELF ; "**"; y = SELF -> int_of_float (float x ** float y)] + | "simple" NONA + [ x = INT -> int_of_string x + | "(" ; x = SELF; ")" -> x] + ] ; + END ;; +Gram.parse_string + expression + (Loc.mk "") + "3 + ((4 - 2) + 28 * 3 ** 2) + (4 / 2)" +\end{bluecode} +% $ + +\item some keywords for paser + + \begin{bluecode} + EXTEND END LIST0 LIST1 SEP TRY SELF OPT FIRST LAST LEVEL AFTER BEFORE + \end{bluecode} + + SELF represents either the \textbf{current level}, \textbf{the next level} or + the \textbf{ first level} depending on the \textbf{ associativity} and the + \textbf{position} of the SELF in the rule . + + The identifier NEXT, which is a call to the next level of the + current entry. + + +\item mechanism \\ + there are four generally four phases + \begin{enumerate}[1] + \item collection of new keywords, and update of the lexer associated + to the grammar + \item representation of the grammar as a tree data structure + \item left-factoring of each precedence level \\ + when there's a common perfix of symblos(a symbol is a keyword, + token, or entry ), the parser does not branch until the common parser + has been parsed. \textbf{that's how grammars are implemented, first the + corresponding tree is generated, then the parser is generated for + the tree.} + some tiny bits + \begin{enumerate}[(i)] + \item Greedy first \\ + when one rule is a prefix of another. + \textbf{a token or keyword is preferred over + epsilon, the empty string (this also holds for other ways that a + grammar can match epsilon )} factoring happens when the parser is + built . + \item \textbf{ explicit token or keyword trumps an entry} + so you have two prductions, with the same prefix, except the last + one. one is another entry, and the other is a token, \textbf{the parser will + first try the token, if it succeeds, it stops, otherwise they try + the entry.} This sounds weird, but it is reasonable, after +left-factorization, the parser pays no cost when it tries just a +token, it's amazing that even more tokens, the token rule still wins, +and \textbf{even the token rule fails after consuming some tokens, it can + even transfer to the entry rule }, local try????? . + \textbf{it seems that after factorization, the rule order may be + changed }. \\ + +weird stuff +\begin{redcode} +let m_expr = MGram.Entry.mk "m_expr";; +let _ = +EXTEND MGram GLOBAL: m_expr ; + m_expr : + [[ "foo"; f -> print_endline "first" + | "foo" ; "bar"; "baz" -> print_endline "second"] + ]; + f : [["bar"; "baz" ]]; END;; +MGram.parse_string m_expr (Loc.mk "") "foo bar baz ";; +\end{redcode} +\begin{bluecode} +second +\end{bluecode} + +\begin{redcode} +(** after factorization, it chooses the second one *) +(** DELETE_RULE expr: SELF; "+"; SELF END;; *) +let _ = MGram.Entry.clear m_expr; +EXTEND MGram GLOBAL: m_expr ; + m_expr : + [[ "foo"; f -> print_endline "first" + | "foo" ; "bar"; "bax" -> print_endline "second"] + ]; + f : [["bar"; "baz" ]]; END; + MGram.parse_string m_expr (Loc.mk "") "foo bar baz ";; +\end{redcode} +\begin{bluecode} +first +\end{bluecode} + +\begin{redcode} +let _ = MGram.Entry.clear m_expr; +EXTEND MGram GLOBAL: m_expr ; + m_expr : + [[ "foo"; f -> print_endline "first" + | "foo" ; "bar"; f -> print_endline "second"] + ]; + f : [["bar"; "baz" ]]; END; + MGram.parse_string m_expr (Loc.mk "") "foo bar baz ";; +\end{redcode} +\begin{bluecode} +Exception: Loc.Exc_located (, + Stream.Error "[f] expected after \"bar\" (in [m_expr])"). +\end{bluecode} + +The translated code is not too indicative, all the dispatch magic +hides in MGram.extend function (or Insert.extend function) +\textit{~/SourceCode/ML/godi/build/distfiles/ocaml-3.12.1/camlp4/Camlp4/Struct/Grammar/Insert.ml} + +\begin{bluecode} +value extend entry (position, rules) = + let elev = levels_of_rules entry position rules in + do { + entry.edesc := Dlevels elev; + entry.estart := + fun lev strm -> + let f = Parser.start_parser_of_entry entry in + do { entry.estart := f; f lev strm }; + entry.econtinue := + fun lev bp a strm -> + let f = Parser.continue_parser_of_entry entry in + do { entry.econtinue := f; f lev bp a strm } + }; +\end{bluecode} +\item factoring only happens in the same level within a rule. +\item explicit backtracking + + \begin{redcode} +(**hand-coded entry MGram.Entry.of_parser *) +let test = MGram.Entry.of_parser "test" + (fun strm -> match Stream.npeek 2 strm with + [_ ; KEYWORD "xyzzy", _ ] -> raise Stream.Failure | _ -> ()) ;; +EXTEND MGram + GLOBAL: m_expr ; + g : [[ "plugh" ]] ; f1 : [[ g ; "quux" ]]; f2 : [[g ; "xyzzy"]] ; + m_expr : [[test ; f1 -> print_endline "1" | f2 -> print_endline "2" ]] ; END ;; +\end{redcode} + +\begin{alternate} +# MGram.parse_string m_expr (Loc.mk "") "plugh xyzzy";; +2 +\end{alternate} + + \end{enumerate} + \item the data structure representing the grammar is then passed as + argument to a generic parser + \end{enumerate} + + + \begin{enumerate}[(a)] + \item left factorization \\ + take rules as follows as an example + \begin{bluecode} + "method"; "private"; "virtual"; l = label; ":"; t = poly_type + "method"; "virtual"; "private"; l = label; ":"; t = poly_type + "method"; "virtual"; l = label; ":"; t = poly_type + "method"; "private"; l = label; ":"; t = poly_type; "="; e = expr + "method"; "private"; l = label; sb = fun_binding + "method"; l = label; ":"; t = poly_type; "="; e = expr + "method"; l = label; sb = fun_binding +\end{bluecode} + +The rules are inserted in a tree and the result looks like: +\begin{bluecode} + "method" + |-- "private" + | |-- "virtual" + | | |-- label + | | |-- ":" + | | |-- poly_type + | |-- label + | |-- ":" + | | |-- poly_type + | | |-- ":=" + | | |-- expr + | |-- fun_binding + |-- "virtual" + | |-- "private" + | | |-- label + | | |-- ":" + | | |-- poly_type + | |-- label + | |-- ":" + | |-- poly_type + |-- label + |-- ":" + | |-- poly_type + | |-- "=" + | |-- expr + |-- fun_binding + + \end{bluecode} + \end{enumerate} + This tree is built as long as rules are inserted. +\item \textbf{start and continue} + At each entry level, the rules are separated into \textbf{two + trees}: + \begin{enumerate}[(a)] + \item The tree of the rules not starting with neither the current entry name + nor by ``SELF''(start) + \item The tree of the rules starting with the current entry or by + SELF, this symbol \textbf{itself not being included} in the tree + \end{enumerate} + + They determine two functions : + \begin{enumerate} + \item The function named {\color{red} ``start''}, analyzing the first tree + \item The function named {\color{red} ``continue''}, taking, as parameter, a value + previously parsed, and analyzing the second tree. + \end{enumerate} + + A call to an entry, correspond to a call to the \textbf{``start''} function of + the \textbf{``first''} level of the entry. + + For the ``start'', it tries its tree, if it works, it calls the + ``continue'' function of the same level, giving the result of ``start'' + as parameter. If this ``continue'' fails, return itself. (continue may + do some more interesting stuff). If the ``start'' function fails, the + ``start'' of the next level is tested until it fails. + + + For the ``continue'', it first tries the ``continue'' function of the + \textbf{next} level. (here + give into *), if it fails or it's the + last level, it then tries itself, giving the result as parameter. If + it still fails, return its extra parameter. + + A special case for rules ending with SELF or the current entry + name. For this last symbol, there's a call to the ``start'' function + of \textbf{the current level (RIGHTA) or the next level (OTHERWISE)} + + When a SELF or the current entry name is encountered in the middle + of the rule, there's a call to the start of the \textbf{first level} of the + current entry. + + Each entry has a start and continue + +\begin{bluecode} +(* list of symbols, possible empty *) +LIST0 : LIST0 rule | LIST0 [ -> ] +(* with a separator *) +LIST0 : LIST0 rule SEP +| LIST0 [ -> ] SEP + LIST1 rule +| LIST1 [ -> ] +| LIST1 rule SEP +| LIST1 [ -> ] SEP +OPT +SELF +TRY (* backtracking *) +FIRST LAST LEVEL level, AFTER level, BEFORE level +\end{bluecode} + +\item stream parser + \begin{enumerate}[(a)] + \item stream parser + +\begin{alternate} +let rec p = parser [< '"foo"; 'x ; '"bar">] -> x | [< '"baz"; y = p >] -> y;; +val p : string Batteries.Stream.t -> string = +\end{alternate} + +\begin{redcode} +camlp4of -str "let rec p = parser [< '\"foo\"; 'x ; '\"bar\">] -> x | [< '\"baz\"; y = p >] -> y;;" +\end{redcode} + +\begin{bluecode} +(* normal pattern : first peek, then junk it *) +let rec p (__strm : _ Stream.t) = + match Stream.peek __strm with + | Some "foo" -> + (Stream.junk __strm; + (match Stream.peek __strm with + | Some x -> + (Stream.junk __strm; + (match Stream.peek __strm with + | Some "bar" -> (Stream.junk __strm; x) + | _ -> raise (Stream.Error ""))) + | _ -> raise (Stream.Error ""))) + | Some "baz" -> + (Stream.junk __strm; + (try p __strm with | Stream.Failure -> raise (Stream.Error ""))) + | _ -> raise Stream.Failure +\end{bluecode} + +\begin{redcode} +camlp4of -str "let rec p = parser [< x = q >] -> x | [< '\"bar\">] -> \"bar\"" +\end{redcode} + +\begin{bluecode} +let rec p (__strm : _ Stream.t) = + try q __strm + with + | Stream.Failure -> (* limited backtracking *) + (match Stream.peek __strm with + | Some "bar" -> (Stream.junk __strm; "bar") + | _ -> raise Stream.Failure) + +\end{bluecode} + + +\item Grammar + +\begin{redcode} +open Camlp4.PreCast +module MGram = MakeGram (Lexer) +let expr = MGram.Entry.mk "expr" +EXTEND MGram + expr : + [ [ "foo" ; x = LIDENT ; "bar" -> "foo-bar+" ^x ] + | [ "bar" ; y = expr -> "baz+" ^ y]] ; +END +MGram.Entry.print Format.std_formatter expr +\end{redcode} + +\begin{bluecode} +expr: [ LEFTA + [ "foo"; LIDENT _; "bar" ] +| LEFTA + [ "bar"; SELF ] ] + - : unit = () +\end{bluecode} + +\begin{alternate} +MGram.parse_string expr Loc.ghost "foo xx bar";; +- : string = "foo-bar+xx" +se (FILTER _* "Exc_located") "Loc" ;; +exception Exc_located of t * exn +se (FILTER _* "type" space+ "t") "Loc";; +type t = Camlp4.PreCast.Loc.t +\end{alternate} + +we can re-raise the exception so it gets \textit{printed} . + +A literal string (like ``foo'') indicates a \textbf{KEYWORD} token ; +using it in a grammar \textbf{registers the keyword} with the lexer. When +it is promoted as a key word, it will no longer be used as a \textbf{ + LIDENT}, so for example, the parser parser, will \textbf{break some valid +programs} before, because \textbf{parser} is now a keyword. This is the +convention, to make things simple, you can find other ways to overcome +the problem, but it's too complicated. you can also say (x= KEYWORD) +or pattern match syntax (`LINDENT x) to get the actual token +constructor. The parser \textbf{ignores} extra tokens after a success. + +\begin{itemize} + +\item levels \\ + they can be labeled following an entry, like (expr LEVEL "mul"). However, + explicitly specifying a level when calling an entry defeats the + start/continue mechanism. +\item NEXT LIST0 SEP OPT TRY \\ + NEXT refers to the entry being defined at the following level + regardless of assocaitivity or position. + LIST0 elem SEP sep . + Both LIST0 and OPT can match the epsilon, but its priority is lower. + For TRY, non-local backtracking, a Stream.Error will be converted to + a Stream.Failure. + \begin{bluecode} + expr : [[ TRY f1 -> "f1" | f2 -> "f2" ]] + \end{bluecode} + +\item nested rule (only one level ) + + \begin{bluecode} + [x = expr ; ["+" | "plus" ]; y = expr -> x + y ] + \end{bluecode} +\item EXTEND is an expression (of type unit) \\ + it can be evaluated at toplevel, but also inside a function, when + the syntax extension takes place when the function is called. +\item Translated sample code + \begin{bluecode} +open Camlp4.PreCast +module MGram = MakeGram(Lexer) +EXTEND MGram + GLOBAL: m_expr ; + m_expr : + [[ "foo"; f -> print_endline "first" + | "foo" ; "bar"; "bax" -> print_endline "second"] + ]; + f : [["bar"; "baz" ]]; END;; + \end{bluecode} + + \begin{redcode} +---------------------------------------------------------------------- +\end{redcode} +\begin{bluecode} +open Camlp4.PreCast +module MGram = MakeGram(Lexer) +let _ = + let _ = (m_expr : 'm_expr MGram.Entry.t) in + let grammar_entry_create = MGram.Entry.mk in + let f : 'f MGram.Entry.t = grammar_entry_create "f" + in + (MGram.extend (m_expr : 'm_expr MGram.Entry.t) + ((fun () -> + (None, + [ (None, None, + [ ([ MGram.Skeyword "foo"; MGram.Skeyword "bar"; + MGram.Skeyword "bax" ], + (MGram.Action.mk + (fun _ _ _ (_loc : MGram.Loc.t) -> + (print_endline "second" : 'm_expr)))); + ([ MGram.Skeyword "foo"; + MGram.Snterm (MGram.Entry.obj (f : 'f MGram.Entry.t)) ], + (MGram.Action.mk + (fun _ _ (_loc : MGram.Loc.t) -> + (print_endline "first" : 'm_expr)))) ]) ])) + ()); + MGram.extend (f : 'f MGram.Entry.t) + ((fun () -> + (None, + [ (None, None, + [ ([ MGram.Skeyword "bar"; MGram.Skeyword "baz" ], + (MGram.Action.mk + (fun _ _ (_loc : MGram.Loc.t) -> (() : 'f)))) ]) ])) + ())) + \end{bluecode} + +\item if there are unexpected symbols after a correct expression, the trailing symbols are ignored. + +\begin{bluecode} +let expr_eoi = Grammar.Entry.mk "expr_eoi" ;; +EXTEND expr_eoi : [[ e = expr ; EOI -> e]]; END ;; +\end{bluecode} + +The keywords are stored {\bf in a hashtbl}, so it can be updated +dynamically. + +\item level \\ + \begin{bluetext} + rule ::= list-of-symbols-seperated-by-semicolons -> action + level ::= optional-label optional-associativity + [list-of-rules-operated-by-bars] + entry-extension ::= + identifier : optional-position [ list-of-levels-seperated-by-bars ] + optional-position ::= FIRST | LAST | BEFORE label | AFTER label | + LEVEL label + \end{bluetext} +\item insert \\ + when you extend an entry, by default \textbf{ the first level of the + extension extends the first level of the entry} + +for example you a grammar like this : + +\begin{bluecode} + ["add" LEFTA + [SELF; "+" ; SELF | SELF; "-" ; SELF] + | "mult" RIGHTA + [SELF; "*" ; SELF | SELF; "/" ; SELF] + | "simple" NONA + [ "("; SELF; ")" | INT ]] +\end{bluecode} + + \begin{bluecode} +EXTEND expr : [[ x = expr ; "plus1plus" ; y = expr -> x + 1 + y ]]; +END ;; +\end{bluecode} +This extends the first level ``add''. you can double check by printing +the result + +\begin{redcode} +MGram.Entry.print Format.std_formatter m_expr ;; +\end{redcode} + +\begin{bluecode} +expr: [ "add" LEFTA + [ SELF; "plus1plus"; SELF (** interesting *) + | SELF; "+"; SELF + | SELF; "-"; SELF ] +| "mult" RIGHTA + [ SELF; "*"; SELF + | SELF; "/"; SELF ] +| "simple" NONA + [ "("; SELF; ")" + | INT ((_)) ] ] +\end{bluecode} + +create a new level in the last position +\begin{redcode} +EXTEND MGram m_expr: LAST [[x = SELF ; "plus1plus" ; y = SELF ]]; END;; +MGram.Entry.print Format.std_formatter m_expr ;; +\end{redcode} + +\begin{bluecode} +expr: [ "add" LEFTA + [ SELF; "plus1plus"; SELF + | SELF; "+"; SELF + | SELF; "-"; SELF ] +| "mult" RIGHTA + [ SELF; "*"; SELF + | SELF; "/"; SELF ] +| "simple" NONA + [ "("; SELF; ")" + | INT ((_)) ] +| LEFTA +[ SELF; "plus1plus"; SELF ] ] ; +\end{bluecode} + +insert in the level ``mult'' in the first position +\begin{redcode} +EXTEND MGram m_expr: LEVEL "mult" [[x = SELF ; "plus1plus" ; y = SELF ]]; END ;; +# MGram.Entry.print Format.std_formatter m_expr ;; +\end{redcode} + +\begin{bluecode} +expr: [ "add" LEFTA + [ SELF; "plus1plus"; SELF + | SELF; "+"; SELF + | SELF; "-"; SELF ] +| "mult" RIGHTA + [ SELF; "plus1plus"; SELF (* added entry*) + | SELF; "*"; SELF + | SELF; "/"; SELF ] +| "simple" NONA + [ "("; SELF; ")" + | INT ((_)) ] +| LEFTA + [ SELF; "plus1plus"; SELF ] ] +\end{bluecode} + +insert a new level before ``mult'' +\begin{redcode} +EXTEND MGram m_expr: BEFORE "mult" [[x = SELF ; "plus1plus" ; y = SELF ]]; END ;; +# MGram.Entry.print Format.std_formatter m_expr ;; +\end{redcode} + +\begin{bluecode} +expr: [ "add" LEFTA + [ SELF; "plus1plus"; SELF + | SELF; "+"; SELF + | SELF; "-"; SELF ] +| LEFTA + [ SELF; "plus1plus"; SELF ] +| "mult" RIGHTA + [ SELF; "plus1plus"; SELF + | SELF; "*"; SELF + | SELF; "/"; SELF ] +| "simple" NONA + [ "("; SELF; ")" + | INT ((_)) ] +| LEFTA + [ SELF; "plus1plus"; SELF ] ] +\end{bluecode} + +\begin{redcode} +se (FILTER _* "val" _* "expr" space+ ":" ) "Syntax" ;; +\end{redcode} + +\begin{bluecode} + val loc_of_expr : expr -> loc + val loc_of_module_expr : module_expr -> loc + val loc_of_class_expr : class_expr -> loc + val meta_loc_expr : loc -> loc -> expr + val meta_loc_expr : loc -> loc -> expr + val meta_loc_expr : loc -> 'a -> expr + val meta_loc_expr : loc -> 'a -> expr + val meta_class_expr : loc -> class_expr -> expr + val meta_expr : loc -> expr -> expr + val meta_module_expr : loc -> module_expr -> expr + val meta_class_expr : loc -> class_expr -> patt + val meta_expr : loc -> expr -> patt + val meta_module_expr : loc -> module_expr -> patt + val map_expr : (expr -> expr) -> map + val ident_of_expr : expr -> ident + val list_of_expr : expr -> expr list -> expr list + val list_of_class_expr : + val list_of_module_expr : + val loc_of_expr : expr -> loc + val loc_of_module_expr : module_expr -> loc + val loc_of_class_expr : class_expr -> loc + val loc_of_expr : expr -> loc + val loc_of_module_expr : module_expr -> loc + val loc_of_class_expr : class_expr -> loc + val parse_expr : Ast.loc -> string -> Ast.expr + val class_expr : Ast.class_expr Gram.Entry.t + val class_info_for_class_expr : Ast.class_expr Gram.Entry.t + val comma_expr : Ast.expr Gram.Entry.t + val eq_expr : (string -> Ast.patt -> Ast.patt) Gram.Entry.t + val expr : Ast.expr Gram.Entry.t + val field_expr : Ast.rec_binding Gram.Entry.t + val label_expr : Ast.rec_binding Gram.Entry.t + val module_expr : Ast.module_expr Gram.Entry.t + val opt_expr : Ast.expr Gram.Entry.t + val opt_when_expr : Ast.expr Gram.Entry.t + val sem_expr : Ast.expr Gram.Entry.t +\end{bluecode} + +\begin{redcode} +Gram.Entry.print Format.std_formatter Syntax.expr;; +\end{redcode} + +\begin{bluetext} +expr: +[ ";" LEFTA + [ seq_expr ] +| "top" RIGHTA + [ "RE_PCRE"; regexp + | "REPLACE"; regexp; "->"; sequence + | "SEARCH"; regexp; "->"; sequence + | "MAP"; regexp; "->"; sequence + | "COLLECT"; regexp; "->"; sequence + | "COLLECTOBJ"; regexp + | "SPLIT"; regexp + | "REPLACE_FIRST"; regexp; "->"; sequence + | "SEARCH_FIRST"; regexp; "->"; sequence + | "MATCH"; regexp; "->"; sequence + | "FILTER"; regexp + | "CAPTURE"; regexp + | "function"; OPT "|"; LIST1 regexp_match_case SEP "|" + (* syntax extension by mikmatch*) + + | "parser"; OPT parser_ipatt; parser_case_list + | "parser"; OPT parser_ipatt; parser_case_list + + | "let"; "try"; OPT "rec"; LIST1 let_binding SEP "and"; "in"; sequence; + "with"; LIST1 lettry_case SEP "|" + (* syntax extension mikmatch + let try a = raise Not_found in a with Not_found -> 24;; *) + + | "let"; LIDENT "view"; UIDENT _; "="; SELF; "in"; sequence +(* view patterns *) + + | "let"; "module"; a_UIDENT; module_binding0; "in"; expr LEVEL ";" + | "let"; "open"; module_longident; "in"; expr LEVEL ";" + | "let"; OPT "rec"; binding; "in"; sequence + | "if"; SELF; "then"; expr LEVEL "top"; "else"; expr LEVEL "top" + | "if"; SELF; "then"; expr LEVEL "top" + | "fun"; fun_def + | "match"; sequence; "with"; "parser"; OPT parser_ipatt; parser_case_list + | "match"; sequence; "with"; "parser"; OPT parser_ipatt; parser_case_list + | "match"; sequence; "with"; OPT "|"; LIST1 regexp_match_case SEP "|" + | "try"; SELF; "with"; OPT "|"; LIST1 regexp_match_case SEP "|" + | "try"; sequence; "with"; match_case + | "for"; a_LIDENT; "="; sequence; direction_flag; sequence; "do"; + do_sequence + | "while"; sequence; "do"; do_sequence + | "object"; opt_class_self_patt; class_structure; "end" ] +| LEFTA + [ "EXTEND"; extend_body; "END" + | "DELETE_RULE"; delete_rule_body; "END" + | "GDELETE_RULE" + | "GEXTEND" ] + + +(* operators *) +| "," LEFTA + [ SELF; ","; comma_expr ] + +| ":=" NONA + [ SELF; ":="; expr LEVEL "top" + | SELF; "<-"; expr LEVEL "top" ] + +| "||" RIGHTA + [ SELF; infixop6; SELF ] + +| "&&" RIGHTA + [ SELF; infixop5; SELF ] + +| "<" LEFTA + [ SELF; infix operator (level 0) (comparison operators, and some others); + SELF ] +| "^" RIGHTA + [ SELF; infix operator (level 1) (start with '^', '@'); SELF ] +| "::" RIGHTA + [ SELF; "::"; SELF ] +| "+" LEFTA + [ SELF; infix operator (level 2) (start with '+', '-'); SELF ] +| "*" LEFTA + [ SELF; "land"; SELF + | SELF; "lor"; SELF + | SELF; "lxor"; SELF + | SELF; "mod"; SELF + | SELF; infix operator (level 3) (start with '*', '/', '%'); SELF ] +| "**" RIGHTA + [ SELF; "asr"; SELF + | SELF; "lsl"; SELF + | SELF; "lsr"; SELF + | SELF; infix operator (level 4) (start with "**") (right assoc); SELF ] +| "unary minus" NONA + [ "-"; SELF + | "-."; SELF ] + +(* apply *) +| "apply" LEFTA + [ SELF; SELF + | "assert"; SELF + | "lazy"; SELF ] + +| "label" NONA + [ "~"; a_LIDENT + | LABEL _; SELF + | OPTLABEL _; SELF + | "?"; a_LIDENT ] +| "." LEFTA + [ SELF; "."; "("; SELF; ")" + | SELF; "."; "["; SELF; "]" + | SELF; "."; "{"; comma_expr; "}" + | SELF; "."; SELF + | SELF; "#"; label ] +| "~-" NONA + [ "!"; SELF + | prefix operator (start with '!', '?', '~'); SELF ] +| "simple" LEFTA + [ "false" + | "true" + | "{"; TRY [ label_expr_list; "}" ] + | "{"; TRY [ expr LEVEL "."; "with" ]; label_expr_list; "}" + | "new"; class_longident + | QUOTATION _ + | ANTIQUOT (("exp" | "" | "anti"), _) + | ANTIQUOT ("`bool", _) + | ANTIQUOT ("tup", _) + | ANTIQUOT ("seq", _) + | "`"; a_ident + | "["; "]" + | "["; sem_expr_for_list; "]" + | "[|"; "|]" + | "[|"; sem_expr; "|]" + | "{<"; ">}" + | "{<"; field_expr_list; ">}" + | "begin"; "end" + | "begin"; sequence; "end" + | "("; ")" + | "("; "module"; module_expr; ")" + | "("; "module"; module_expr; ":"; package_type; ")" + | "("; SELF; ";"; ")" + | "("; SELF; ";"; sequence; ")" + | "("; SELF; ":"; ctyp; ")" + | "("; SELF; ":"; ctyp; ":>"; ctyp; ")" + | "("; SELF; ":>"; ctyp; ")" + | "("; SELF; ")" + | stream_begin; stream_end + | stream_begin; stream_expr_comp_list; stream_end + | stream_begin; stream_end + | stream_begin; stream_expr_comp_list; stream_end + | a_INT + | a_INT32 + | a_INT64 + | a_NATIVEINT + | a_FLOAT + | a_STRING + | a_CHAR + | TRY module_longident_dot_lparen; sequence; ")" + | TRY val_longident ] ] +\end{bluetext} + +\begin{alternate} +let try a = 3 in true with Not_found -> false || false;; +true +\end{alternate} + +first, it uses start parser to parse \textit{let try a = 3 in true + with Not\_found -> false}, then it calls the cont parser, and the +next level cont parser, etc, and then it succeeds. This also applies +to ``apply'' level. + +a tiny extension + + \begin{bluecode} + let env = ref [] ;; + (** now in the toplevel, it has two environments, one + is .., the other is evn + *) + EXTEND Gram + Syntax.expr: LEVEL "simple" [[x = LIDENT -> List.assoc x !env ]] ; END ;; + env := ["x",3];; + (** oh, no, it will be intercepted by our grammar + env := ["x",3];; + Error: Camlp4: Uncaught exception: Not_found + *) + (** sucks, in the toplevel, it's really hard to roll back + cause, all your programs following are affected + *) + DELETE_RULE Gram Syntax.expr: LIDENT END ;; + Exception: Not_found. + another example + DELETE_RULE Gram Syntax.expr: stream_begin ; stream_end END ;; + ^^^^^^^^^^^^ + Error: Unbound value stream_begin + (* horrible *) + (** does not supported any more for the operator ... *) +let add_infix lev op = + EXTEND Gram + Syntax.expr : LEVEL $lev$ [[ x = SELF ; $op$ ; y = SELF -> <:expr< $lid:op$ $x$ $y$ >>]] ; END ;; + \end{bluecode} + + \item when two rules overlapping, the EXTEND statement replaces the + old version by the new one and displays a warning. + +\begin{redcode} +se (FILTER _* "warning") "Syntax" +\end{redcode} + +\begin{bluecode} +type warning = Loc.t -> string -> unit +val default_warning : warning +val current_warning : warning ref +val print_warning : warning +\end{bluecode} + +\end{itemize} + \end{enumerate} + +\end{enumerate} + + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "../master" +%%% End: diff --git a/camlp4/jake_blog.tex b/camlp4/jake_blog.tex new file mode 100644 index 0000000..5c0bafa --- /dev/null +++ b/camlp4/jake_blog.tex @@ -0,0 +1,1051 @@ +\item jake's blog + \begin{enumerate} + \item part1 \\ + easy to experiment, using my previous {\bf oco}, + and type + + \begin{bluecode} +oco +open Camlp4.PreCast ;; +let _loc = Loc.ghost ;; +(** An idea, how about writing another pretty printer, the printer is awful*) +\end{bluecode} + +\item part2 \\ + just ast transform, easy to experiment in toplevel + + +\begin{redcode} +let cons = ["A"; "B";"C"];; +let tys = Ast.tyOr_of_list (List.map (fun str -> <:ctyp< $uid:str$ >>) cons);; +\end{redcode} + +\begin{bluecode} +val tys : Camlp4.PreCast.Ast.ctyp = + Camlp4.PreCast.Ast.TyOr (, + Camlp4.PreCast.Ast.TyId (, Camlp4.PreCast.Ast.IdUid (, "A")), + Camlp4.PreCast.Ast.TyOr (, + Camlp4.PreCast.Ast.TyId (, + Camlp4.PreCast.Ast.IdUid (, "B")), + Camlp4.PreCast.Ast.TyId (, + Camlp4.PreCast.Ast.IdUid (, "C")))) +\end{bluecode} + +\begin{redcode} +(** here you can better understand what ctyp really means, a type +expression, not a top-level struct, cool +*) +let verify = <:ctyp< A |B |C>>;; +\end{redcode} + +\begin{bluecode} +val verify : Camlp4.PreCast.Ast.ctyp = + Camlp4.PreCast.Ast.TyOr (, + Camlp4.PreCast.Ast.TyId (, Camlp4.PreCast.Ast.IdUid (, "A")), + Camlp4.PreCast.Ast.TyOr (, + Camlp4.PreCast.Ast.TyId (, + Camlp4.PreCast.Ast.IdUid (, "B")), + Camlp4.PreCast.Ast.TyId (, + Camlp4.PreCast.Ast.IdUid (, "C")))) + \end{bluecode} + +\begin{alternate} +verify = tys;; +- : bool = true (** amazing result! *) +\end{alternate} + +\begin{redcode} +let type_def = <:str_item< type t = $tys$>>;; +\end{redcode} + +\begin{bluecode} +val type_def : Camlp4.PreCast.Ast.str_item = + Camlp4.PreCast.Ast.StSem (, + Camlp4.PreCast.Ast.StTyp (, + Camlp4.PreCast.Ast.TyDcl (, "t", [], + Camlp4.PreCast.Ast.TySum (, + Camlp4.PreCast.Ast.TyOr (, + Camlp4.PreCast.Ast.TyId (, + Camlp4.PreCast.Ast.IdUid (, "A")), + Camlp4.PreCast.Ast.TyOr (, + Camlp4.PreCast.Ast.TyId (, + Camlp4.PreCast.Ast.IdUid (, "B")), + Camlp4.PreCast.Ast.TyId (, + Camlp4.PreCast.Ast.IdUid (, "C"))))), + [])), + Camlp4.PreCast.Ast.StNil ) +\end{bluecode} + +\begin{alternate} +Printers.OCaml.print_implem type_def ;; +type t = | A | B | C;; +let verify = <:str_item< type t = | A | B | C>>;; +\end{alternate} + +\begin{bluecode} +val verify : Camlp4.PreCast.Ast.str_item = + Camlp4.PreCast.Ast.StSem (, + Camlp4.PreCast.Ast.StTyp (, + Camlp4.PreCast.Ast.TyDcl (, "t", [], + Camlp4.PreCast.Ast.TySum (, + Camlp4.PreCast.Ast.TyOr (, + Camlp4.PreCast.Ast.TyOr (, + Camlp4.PreCast.Ast.TyId (, + Camlp4.PreCast.Ast.IdUid (, "A")), + Camlp4.PreCast.Ast.TyId (, + Camlp4.PreCast.Ast.IdUid (, "B"))), + Camlp4.PreCast.Ast.TyId (, + Camlp4.PreCast.Ast.IdUid (, "C")))), + [])), + Camlp4.PreCast.Ast.StNil ) +\end{bluecode} + +\begin{alternate} +# verify = type_def;; +- : bool = false +\end{alternate} + + +\begin{redcode} +let match_case = List.map (fun c -> <:match_case< $uid:c$ -> $`str:c$ >>) cons|> Ast.mcOr_of_list ;; +let to_string = <:expr< function $match_case$ >>;; +\end{redcode} + +\begin{bluecode} +val to_string : Camlp4.PreCast.Ast.expr = + Camlp4.PreCast.Ast.ExFun (, + Camlp4.PreCast.Ast.McOr (, + Camlp4.PreCast.Ast.McArr (, + Camlp4.PreCast.Ast.PaId (, + Camlp4.PreCast.Ast.IdUid (, "A")), + Camlp4.PreCast.Ast.ExNil , + Camlp4.PreCast.Ast.ExStr (, "A")), + Camlp4.PreCast.Ast.McOr (, + Camlp4.PreCast.Ast.McArr (, + Camlp4.PreCast.Ast.PaId (, + Camlp4.PreCast.Ast.IdUid (, "B")), + Camlp4.PreCast.Ast.ExNil , + Camlp4.PreCast.Ast.ExStr (, "B")), + Camlp4.PreCast.Ast.McArr (, + Camlp4.PreCast.Ast.PaId (, + Camlp4.PreCast.Ast.IdUid (, "C")), + Camlp4.PreCast.Ast.ExNil , + Camlp4.PreCast.Ast.ExStr (, "C"))))) + \end{bluecode} + +\begin{alternate} +Printers.OCaml.print_implem <:str_item>;; +let f = function | A -> "A" | B -> "B" | C -> "C";; +\end{alternate} +\begin{redcode} +let match_case2 = List.map (fun c -> <:match_case< $`str:c$ -> $uid:c$ +>>) cons|> Ast.mcOr_of_list ;; +\end{redcode} + +\begin{alternate} +Printers.OCaml.print_implem <:str_item>;; +let f = function | "A" -> A | "B" -> B | "C" -> C;; +Printers.OCaml.print_implem <:str_item invalid_arg "haha">>;; +let f = function | "A" -> A | "B" -> B | "C" -> C | _ -> invalid_arg "haha";; +\end{alternate} + + anyother way to verify? The output does not seem to guarantee its + correctness.. + {\bf when you do antiquotation, in the cases of inserting an AST rather + than a string, usually you do not need tags, when you inserting a + string, probably you need it.} +\item part3 : quotations in depth + \begin{bluetext} +[`QUOTATION x -> Quotation.expand _loc x Quotation.DynAst.expr_tag ] +\end{bluetext} + +The `QUOTATION token contains a record including the body of the +quotation and the tag. The record is passed off to the Quotation +module to be expanded. The expander parses the quotation string +starting at some non-terminal(you specified), then runs the result +through the antiquotation expander + +\begin{bluetext} + |`ANTIQUOT (``exp'' | ``'' | ``anti'' as n) s -> + <:expr< $anti:make_anti ~c:"expr" n s $>> +\end{bluetext} + +The antiquotation creates a special AST node to hold the body of the +antiquotation, each type in the AST has a constructor (ExAnt, TyAnt, +etc.) c here means context. + +\begin{bluetext} + 27 matches for "Ant" in buffer: Camlp4Ast.partial.ml + 5: | BAnt of string ] + 9: | ReAnt of string ] + 13: | DiAnt of string ] + 17: | MuAnt of string ] + 21: | PrAnt of string ] + 25: | ViAnt of string ] + 29: | OvAnt of string ] + 33: | RvAnt of string ] + 37: | OAnt of string ] + 41: | LAnt of string ] + 47: | IdAnt of loc and string (* $s$ *) ] + 87: | TyAnt of loc and string (* $s$ *) + 93: | PaAnt of loc and string (* $s$ *) + 124: | ExAnt of loc and string (* $s$ *) + 202: | MtAnt of loc and string (* $s$ *) ] + 231: | SgAnt of loc and string (* $s$ *) ] + 244: | WcAnt of loc and string (* $s$ *) ] + 251: | BiAnt of loc and string (* $s$ *) ] + 258: | RbAnt of loc and string (* $s$ *) ] + 267: | MbAnt of loc and string (* $s$ *) ] + 274: | McAnt of loc and string (* $s$ *) ] + 290: | MeAnt of loc and string (* $s$ *) ] + 321: | StAnt of loc and string (* $s$ *) ] + 337: | CtAnt of loc and string ] + 352: | CgAnt of loc and string (* $s$ *) ] + 372: | CeAnt of loc and string ] + 391: | CrAnt of loc and string (* $s$ *) ]; +\end{bluetext} + +\begin{alternate} +<:expr< $int: "4"$ >>;; +- : Camlp4.PreCast.Ast.expr = Camlp4.PreCast.Ast.ExInt (, "4") +<:expr< $`int: 4$ >>;; (** the same result *) +- : Camlp4.PreCast.Ast.expr = Camlp4.PreCast.Ast.ExInt (, "4") +<:expr< $`flo:4.1323243232$ >>;; +- : Camlp4.PreCast.Ast.expr = Camlp4.PreCast.Ast.ExFlo (, "4.1323243232") +# <:expr< $flo:"4.1323243232"$ >>;; +- : Camlp4.PreCast.Ast.expr = Camlp4.PreCast.Ast.ExFlo (, "4.1323243232") +(** maybe the same for flo *) +\end{alternate} + +antiquotation example + +\begin{bluetext} + match_case: + [ [ "["; l = LIST0 match_case0 SEP "|"; "]" -> Ast.mcOr_of_list l + | p = ipatt; "->"; e = expr -> <:match_case< $p$ -> $e$ >> ] ] + ; + match_case0: + [ [ `ANTIQUOT ("match_case"|"list" as n) s -> + <:match_case< $anti:mk_anti ~c:"match_case" n s$ >> + | `ANTIQUOT (""|"anti" as n) s -> + <:match_case< $anti:mk_anti ~c:"match_case" n s$ >> + | `ANTIQUOT (""|"anti" as n) s; "->"; e = expr -> + <:match_case< $anti:mk_anti ~c:"patt" n s$ -> $e$ >> + | `ANTIQUOT (""|"anti" as n) s; "when"; w = expr; "->"; e = expr -> + <:match_case< $anti:mk_anti ~c:"patt" n s$ when $w$ -> $e$ >> + | p = patt_as_patt_opt; w = opt_when_expr; "->"; e = expr -> <:match_case< $p$ when $w$ -> $e$ >> + ] ] + \end{bluetext} + +you can see that \verb|match_case0|, if we use the list antiquotation, +the first case in \verb|match_case0| returns an antiquotation with tag +\verb|listmatch_case|,and we get the following expansion + +\begin{bluetext} + value antiquot_expander = object + inherit Ast.map as super; + method patt = fun + [ <:patt@_loc< $anti:s$ >> | <:patt@_loc< $str:s$ >> as p -> + let mloc _loc = MetaLoc.meta_loc_patt _loc _loc in + handle_antiquot_in_string s p TheAntiquotSyntax.parse_patt _loc (fun n p -> + match n with + [ "antisig_item" -> <:patt< Ast.SgAnt $mloc _loc$ $p$ >> + | "antistr_item" -> <:patt< Ast.StAnt $mloc _loc$ $p$ >> + | "antictyp" -> <:patt< Ast.TyAnt $mloc _loc$ $p$ >> + | "antipatt" -> <:patt< Ast.PaAnt $mloc _loc$ $p$ >> + | "antiexpr" -> <:patt< Ast.ExAnt $mloc _loc$ $p$ >> + | "antimodule_type" -> <:patt< Ast.MtAnt $mloc _loc$ $p$ >> + | "antimodule_expr" -> <:patt< Ast.MeAnt $mloc _loc$ $p$ >> + | "anticlass_type" -> <:patt< Ast.CtAnt $mloc _loc$ $p$ >> + | "anticlass_expr" -> <:patt< Ast.CeAnt $mloc _loc$ $p$ >> + | "anticlass_sig_item" -> <:patt< Ast.CgAnt $mloc _loc$ $p$ >> + | "anticlass_str_item" -> <:patt< Ast.CrAnt $mloc _loc$ $p$ >> + | "antiwith_constr" -> <:patt< Ast.WcAnt $mloc _loc$ $p$ >> + | "antibinding" -> <:patt< Ast.BiAnt $mloc _loc$ $p$ >> + | "antirec_binding" -> <:patt< Ast.RbAnt $mloc _loc$ $p$ >> + | "antimatch_case" -> <:patt< Ast.McAnt $mloc _loc$ $p$ >> + | "antimodule_binding" -> <:patt< Ast.MbAnt $mloc _loc$ $p$ >> + | "antiident" -> <:patt< Ast.IdAnt $mloc _loc$ $p$ >> + | _ -> p ]) + | p -> super#patt p ]; + method expr = fun + [ <:expr@_loc< $anti:s$ >> | <:expr@_loc< $str:s$ >> as e -> + let mloc _loc = MetaLoc.meta_loc_expr _loc _loc in + handle_antiquot_in_string s e TheAntiquotSyntax.parse_expr _loc (fun n e -> + match n with + [ "`int" -> <:expr< string_of_int $e$ >> + | "`int32" -> <:expr< Int32.to_string $e$ >> + | "`int64" -> <:expr< Int64.to_string $e$ >> + | "`nativeint" -> <:expr< Nativeint.to_string $e$ >> + | "`flo" -> <:expr< Camlp4_import.Oprint.float_repres $e$ >> + | "`str" -> <:expr< Ast.safe_string_escaped $e$ >> + | "`chr" -> <:expr< Char.escaped $e$ >> + | "`bool" -> <:expr< Ast.IdUid $mloc _loc$ (if $e$ then "True" else "False") >> + | "liststr_item" -> <:expr< Ast.stSem_of_list $e$ >> + | "listsig_item" -> <:expr< Ast.sgSem_of_list $e$ >> + | "listclass_sig_item" -> <:expr< Ast.cgSem_of_list $e$ >> + | "listclass_str_item" -> <:expr< Ast.crSem_of_list $e$ >> + | "listmodule_expr" -> <:expr< Ast.meApp_of_list $e$ >> + | "listmodule_type" -> <:expr< Ast.mtApp_of_list $e$ >> + | "listmodule_binding" -> <:expr< Ast.mbAnd_of_list $e$ >> + | "listbinding" -> <:expr< Ast.biAnd_of_list $e$ >> + | "listbinding;" -> <:expr< Ast.biSem_of_list $e$ >> + | "listrec_binding" -> <:expr< Ast.rbSem_of_list $e$ >> + | "listclass_type" -> <:expr< Ast.ctAnd_of_list $e$ >> + | "listclass_expr" -> <:expr< Ast.ceAnd_of_list $e$ >> + | "listident" -> <:expr< Ast.idAcc_of_list $e$ >> + | "listctypand" -> <:expr< Ast.tyAnd_of_list $e$ >> + | "listctyp;" -> <:expr< Ast.tySem_of_list $e$ >> + | "listctyp*" -> <:expr< Ast.tySta_of_list $e$ >> + | "listctyp|" -> <:expr< Ast.tyOr_of_list $e$ >> + | "listctyp," -> <:expr< Ast.tyCom_of_list $e$ >> + | "listctyp&" -> <:expr< Ast.tyAmp_of_list $e$ >> + | "listwith_constr" -> <:expr< Ast.wcAnd_of_list $e$ >> + | "listmatch_case" -> <:expr< Ast.mcOr_of_list $e$ >> + | "listpatt," -> <:expr< Ast.paCom_of_list $e$ >> + | "listpatt;" -> <:expr< Ast.paSem_of_list $e$ >> + | "listexpr," -> <:expr< Ast.exCom_of_list $e$ >> + | "listexpr;" -> <:expr< Ast.exSem_of_list $e$ >> + | "antisig_item" -> <:expr< Ast.SgAnt $mloc _loc$ $e$ >> + | "antistr_item" -> <:expr< Ast.StAnt $mloc _loc$ $e$ >> + | "antictyp" -> <:expr< Ast.TyAnt $mloc _loc$ $e$ >> + | "antipatt" -> <:expr< Ast.PaAnt $mloc _loc$ $e$ >> + | "antiexpr" -> <:expr< Ast.ExAnt $mloc _loc$ $e$ >> + | "antimodule_type" -> <:expr< Ast.MtAnt $mloc _loc$ $e$ >> + | "antimodule_expr" -> <:expr< Ast.MeAnt $mloc _loc$ $e$ >> + | "anticlass_type" -> <:expr< Ast.CtAnt $mloc _loc$ $e$ >> + | "anticlass_expr" -> <:expr< Ast.CeAnt $mloc _loc$ $e$ >> + | "anticlass_sig_item" -> <:expr< Ast.CgAnt $mloc _loc$ $e$ >> + | "anticlass_str_item" -> <:expr< Ast.CrAnt $mloc _loc$ $e$ >> + | "antiwith_constr" -> <:expr< Ast.WcAnt $mloc _loc$ $e$ >> + | "antibinding" -> <:expr< Ast.BiAnt $mloc _loc$ $e$ >> + | "antirec_binding" -> <:expr< Ast.RbAnt $mloc _loc$ $e$ >> + | "antimatch_case" -> <:expr< Ast.McAnt $mloc _loc$ $e$ >> + | "antimodule_binding" -> <:expr< Ast.MbAnt $mloc _loc$ $e$ >> + | "antiident" -> <:expr< Ast.IdAnt $mloc _loc$ $e$ >> + | _ -> e ]) + | e -> super#expr e ]; +\end{bluetext} + +here we see the ambiguity of original syntax, + +\begin{bluetext} +<< type t = [ $list:List.map (fun c -> <:ctyp< $uid:c$ >>)$] >> +\end{bluetext} + +in original syntax, it does not know it's variant context, or just +type synonm. (you can add a constructor to make it clear) + +\item part4 parsing ocaml itself using camlp4 + + \begin{redcode} +Camlp4.Register.loaded_modules;; +\end{redcode} + +\begin{bluecode} +- : string list ref = +{Pervasives.contents = + ["Camlp4ListComprehension"; "Camlp4MacroParser"; "Camlp4MacroParser"; + "Camlp4GrammarParser"; "Camlp4OCamlParserParser"; + "Camlp4OCamlRevisedParserParser"; "Camlp4OCamlParser"; + "Camlp4QuotationExpander"; "Camlp4OCamlRevisedParser"]} +\end{bluecode} + +we have to use revised syntax here, because when using quasiquotation, +it has ambiguity to get the needed part, revised syntax was designed +to reduce the ambiguity here . + +The following code is a greate file parsing ocaml itself. +Do not use MakeSyntax below, since it will introduce unnecessary +abstraction type, which makes sharing code very difficult + +\begin{redcode} +open Batteries_uni ; +open Camlp4.PreCast ; +module MySyntax = Camlp4.OCamlInitSyntax.Make Ast Gram Quotation ; +module M = Camlp4OCamlRevisedParser.Make MySyntax ; (* load r parser *) +(** in toplevel, I did not find a way to introduce such module + because it will change the state +*) +module N = Camlp4OCamlParser.Make MySyntax ; (* load o parser*) +value my_parser = MySyntax.parse_implem; +value str_items_of_file file_name = + file_name + |> open_in + |> Stream.of_input + |> my_parser (Loc.mk file_name) + |> flip Ast.list_of_str_item [] ; + +(** it has ambiguity in original syntax, so pattern match + will be more natural in revised syntax +*) +value rec do_str_item str_item tags = + match str_item with + [ <:str_item< value $rec:_$ $binding$ >> -> + let bindings = Ast.list_of_binding binding [] + in List.fold_right do_binding bindings tags + |_ -> tags ] +and do_binding bi tags = match bi with + [ <:binding@loc< $lid:lid$ = $_$ >> -> + let line = Loc.start_line loc in + let off = Loc.start_off loc in + let pre = "let " ^ lid in + [(pre,lid,line,off) :: tags ] + | _ -> tags ]; + + +value do_fn file_name = + file_name + |> str_items_of_file + |> List.map (flip do_str_item []) + |> List.concat ; +(**use MSyntax.parse_implem*) +value _ = + do_fn "/Users/bob/SourceCode/OCaml/Parsing/camlp4/otags_test.ml" + |> List.iter (fun (a, b, c, d) -> Printf.printf "%s-%s %d-%d \n" a b c d) ; +value do_fn_2 fn_2 = fn_2 ; + +(**use my syntax *) +(* do_fn "/Users/bob/SourceCode/OCaml/Parsing/camlp4/otags.ml"; *) +(* Exception: Loc.Exc_located (Stream.Error "entry [implem] is *) +(* empty"). *) +\end{redcode} + +\begin{bluecode} +(* - : list (string * string * int * int) = *) +(* [("let str_items_of_file", "str_items_of_file", 4, 9); *) +(* ("let do_str_item", "do_str_item", 15, 286); *) +(* ("let do_binding", "do_binding", 21, 519)] *) +\end{bluecode} + + +\begin{bluecode} +(** tags *) +"otags.ml" : pp(camlp4rf ) + : pkg_dynlink , use_camlp4_full, pkg_batteries +(** be careful, when you use the parser to lift itself, you have to +provide a lot of parsers... +module M4 = Camlp4QuotationExpander.Make MySyntax ; +can make your parser parse itself, great!! +*) +\end{bluecode} + +\begin{redcode} +se (FILTER _* "of_") "Stream" ;; +\end{redcode} +\begin{bluecode} + val of_list : 'a list -> 'a t + val of_string : string -> char t + val of_channel : in_channel -> char t + val of_enum : 'a BatEnum.t -> 'a Stream.t + val of_input : BatIO.input -> char Stream.t + val of_fun : (unit -> 'a) -> 'a Stream.t +\end{bluecode} + +\item part5 structure item filters \\ + because I use revised syntax, and take a reference of the + documenation, my ast filter is much nicer than jaked's. + the documentation of quasiquotation from the wiki page is quite + helpful +\begin{bluecode} +value (|>) x f = f x ; +module Make (AstFilters : Camlp4.Sig.AstFilters) = struct + open AstFilters ; + value code_of_con_names name cons _loc = + let match_cases = + cons |> + List.map + (fun str -> <:match_case< $uid:str$ -> $str:str$ >>) + |> Ast.mcOr_of_list in + let reverse_cases = + cons |> + List.map (fun con -> <:match_case< $str:con$ -> $uid:con$ >>) + |> Ast.mcOr_of_list in + <:str_item< + value $lid:(name^"_to_string") $ = + fun [ $match_cases$ ] ; + value $lid:(name^"_of_string") $ = + fun [ $reverse_cases$ | x -> invalid_arg x ] >> ; + value rec filter str_item = match str_item with + [ <:str_item@_loc< type $lid:tid$ = [ $t$ ] >> -> begin + (* [ ] is necessary for revised syntax, + otherwise, it will be weird, [] tells it in a list context + *) + try + (** good, this can be got from Abstract_Syntax_Tree *) + let ctys = Ast.list_of_ctyp t [] in + let con_names = + List.map (fun [ <:ctyp< $uid:c $ >> -> c + | x -> "FUCK" ]) ctys in + let code = code_of_con_names tid con_names _loc in + <:str_item< $str_item$ ; $code$ ; >> + with + [Exit -> begin + print_endline "check " ; + str_item end ] + end + |_ -> begin print_endline "not simple type " ; str_item end ]; + AstFilters.register_str_item_filter filter ; +end ; +module Id = struct + value name = "filter_toy"; + value version = "0.1" ; +end ; +value _ = + let module M = Camlp4.Register.AstFilter Id Make in + () ; +\end{bluecode} + +\begin{bluetext} +"filter.ml" : pp(camlp4rf ) + : pkg_dynlink, use_camlp4_full, pkg_batteries +"filter_test.ml" : pp(camlp4of -parser filter.cmo) +\end{bluetext} + +the register mechanism should be remembered +\textit{let module M = Camlp4.Register.AstFilter Id Make in} + +we can test our filter as follows \\ +\verb|camlp4of -parser _build/filter.cmo filter_test.ml -filter lift -printer o |\\ +by the \textbf{lift filter} you can see its \textbf{internal representation}, textual +code does not gurantee its correctness, but the AST representation +could gurantee its correctness. +Built in filters as follows : +\begin{enumerate}[(a)] +\item fold map + \begin{bluetext} + class x = Camlp4MapGenerator.generated ; + class x = Camlp4FoldGenerator.generated ; + \end{bluetext} + +\item meta \\ + lifting function from a type definition -- these functions are what + \emph{Camlp4AstLifter uses} to lift the AST, and also how + \emph{quotations are implemented } +\item LocationStripper (replace location with Loc.ghost) \\ + might be useful when you compare two asts? YES! + idea? how to use lifter at toplevel, how to beautify our code, + without the horribling output? (I mean, the qualified name is horrible) +\item Camlp4Profiler \\ + inserts profiling code +\item Camlp4TrashRemover \\ +\item Camlp4ExceptionTracer +\end{enumerate} + +\item part6 extensible parser (moved to extensible parser part) + +\item part7 revised syntax \\ + revised syntax provides more context in the form of extra brackets + etc. so that antiquotation works more smoothly. +\item part8, 9 quotation + \begin{enumerate}[(a)] + \item Quotation.add quotation\_expander + +\begin{redcode} +se (FILTER _* "expand_fun") "Quotation";; +\end{redcode} + +\begin{bluecode} +type 'a expand_fun = Ast.loc -> string option -> string -> 'a +val add : string -> 'a DynAst.tag -> 'a expand_fun -> unit +val find : string -> 'a DynAst.tag -> 'a expand_fun +\end{bluecode} + +other useful functions + \begin{bluecode} +type 'a expand_fun = Ast.loc -> string option -> string -> 'a +val add : string -> 'a DynAst.tag -> 'a expand_fun -> unit +val find : string -> 'a DynAst.tag -> 'a expand_fun +val default : string ref (* default quotations *) +val parse_quotation_result : + (Ast.loc -> string -> 'a) -> + Ast.loc -> Camlp4.Sig.quotation -> string -> string -> 'a +val translate : (string -> string) ref +val expand : Ast.loc -> Camlp4.Sig.quotation -> 'a DynAst.tag -> 'a +val dump_file : string option ref +\end{bluecode} + +in previous camlp4, Quotation provides a string to string +transformation, then it default uses Syntax.expr or Syntax.patt to +parse the returned string. following drawbacks +\begin{itemize} +\item needs a \textbf{more} parsing phase +\item the resulting string may be syntactically incorrect, difficult + to \textbf{debug} +\end{itemize} + +\item quotation expander \\ + when without antiquotaions, a parser is enought, other things are + quite mechanical + +\begin{bluecode} +open Camlp4.PreCast +module Jq_ast = struct + type float' = float + type t = + Jq_null + |Jq_bool of bool + |Jq_number of float' + |Jq_string of string + |Jq_array of t list + |Jq_object of (string*t) list +end +include Jq_ast +module MetaExpr = struct + (** the generator scans all the types defined in the current module + then generate code for the last-appearing recursive bundle + *) + let meta_float' _loc f = <:expr< $`flo:f$ >> + include Camlp4Filters.MetaGeneratorExpr(Jq_ast) + (* due to this can not run in toplevel *) +end +module MetaPatt = struct + let meta_float' _loc f = <:patt< $`flo:f$ >> + include Camlp4Filters.MetaGeneratorPatt(Jq_ast) +end +module MGram = MakeGram(Lexer) +let json_parser = MGram.Entry.mk "json" + EXTEND MGram + GLOBAL : json_parser ; + json_parser : + [["null" -> Jq_null + |"true" -> Jq_bool true + |"false" -> Jq_bool false + | n = [x = INT -> x | y = FLOAT -> y ] -> Jq_number (float_of_string n ) + | s = STRING -> Jq_string s + | "["; xs = LIST0 SELF SEP "," ; "]" -> Jq_array xs + | "{"; kvs = LIST0 [s = STRING; ":"; v = json_parser -> (s,v)] SEP ","; + "}" -> Jq_object kvs + ]] ; END +let json_eoi = MGram.Entry.mk "json_eoi" + EXTEND MGram + GLOBAL: json_eoi ; + json_eoi : [[x = json_parser ; EOI -> x ]] ; END +let test = + MGram.parse_string json_eoi (Loc.mk "") + "[true,false]" +\end{bluecode} + +Mechanical installation to get a quotation expander +\begin{redcode} +module Q = Syntax.Quotation +(* #directory "/Users/bob/SourceCode/OCaml/Parsing/camlp4/_build";; *) +(* camlp4of -filter meta json.ml -printer o *) +let (|>) x f = f x +let parse_quot_string _loc s = + MGram.parse_string json_eoi _loc s +let expand_expr _loc _ s = + s + |> parse_quot_string _loc + |> MetaExpr.meta_t _loc + +(* to make it able to appear in the toplevel *) +let expand_str_item _loc _ s = + (**insert an expression as str_item *) + <:str_item@_loc< $exp: expand_expr _loc None s $ >> +let expand_patt _loc _ s = + s + |> parse_quot_string _loc + |> MetaPatt.meta_t _loc + +let _ = + Q.add "json" Q.DynAst.expr_tag expand_expr ; + Q.add "json" Q.DynAst.patt_tag expand_patt ; + Q.add "json" Q.DynAst.str_item_tag expand_str_item ; + Q.default := "json" + +(** make quotation from a parser *) +let install_quotation my_parser (me,mp) name = + let module Q = Syntax.Quotation in + let expand_expr _loc _ s = s |> my_parser _loc |> me _loc in + let expand_str_item _loc _ s = <:str_item@_loc< $exp: expand_expr + _loc None s $>> in + let expand_patt _loc _ s = s |> my_parser _loc |> mp _loc in + Q.add name Q.DynAst.expr_tag expand_expr ; + Q.add "json" Q.DynAst.patt_tag expand_patt ; + Q.add "json" Q.DynAst.str_item_tag expand_str_item + +\end{redcode} +\begin{bluetext} +val install_quotation : + (Camlp4.PreCast.Ast.loc -> string -> 'a) -> + (Camlp4.PreCast.Ast.loc -> 'a -> Camlp4.PreCast.Ast.expr) * + (Camlp4.PreCast.Ast.loc -> 'a -> Camlp4.PreCast.Ast.patt) -> string -> unit = + +\end{bluetext} +\begin{bluecode} +"json.ml" : pp(camlp4of -filter meta) + : pkg_dynlink, use_camlp4_full +\end{bluecode} +so in the toplevel + +\begin{redcode} +#directory "/Users/bob/SourceCode/OCaml/Parsing/camlp4/_build";; +#load "json.cmo" ; +open Json; (* for Jq_ast module, you can find other ways to work +around this *) +\end{redcode} + +\begin{alternate} + << [ 3 ,4 ]>>;; +- : Json.Jq_ast.t = Json.Jq_ast.Jq_array [Json.Jq_ast.Jq_number 3.; Json.Jq_ast.Jq_number +4.] +\end{alternate} + + +\item antiquotation expander \\ + + the meta filter treat any other constructor \textbf{ending in Ant} +specially + +instead of +\begin{bluecode} + |Jq_Ant(loc,s) -> <:expr< Jq_Ant ($meta_loc loc$, $meta_string s$) >> +\end{bluecode} +they have +\begin{redcode} + |Jq_Ant(loc,s) -> ExAnt(loc,s) +\end{redcode} + +Instead of lifting the constructor, they translate it directly to +ExAnt or PaAnt. + +\textbf{Attention, there is no semi or comma required in GLOBAL list, + GLOBAL: json\_eoi json ; (just whitespace ) } + + + \begin{bluecode} +open Camlp4.PreCast +module Jq_ast = struct + type float' = float + type t = + Jq_null + |Jq_bool of bool + |Jq_number of float' + |Jq_string of string + + |Jq_array of t + |Jq_object of t + |Jq_colon of t * t (* to make an object *) + |Jq_comma of t * t (* to make an array *) + |Jq_Ant of Loc.t * string + |Jq_nil (* similiar to StNil *) + let rec t_of_list lst = match lst with + |[] -> Jq_nil + | b::bs -> Jq_comma (b, t_of_list bs) +end + +include Jq_ast + +module MGram = MakeGram(Lexer) + +let json = MGram.Entry.mk "json" +let json_eoi = MGram.Entry.mk "json_eoi" + + +EXTEND MGram + GLOBAL: json_eoi json ; + json_eoi : [[ x = json ; EOI -> x ]]; + + json : + [[ "null" -> Jq_null + |"true" -> Jq_bool true + |"false" -> Jq_bool false + + | `ANTIQUOT (""|"bool"|"int"|"floo"|"str"|"list"|"alist" as n , s) -> + Jq_Ant(_loc, n ^ ": " ^ s ) + + | n = [ x = INT-> x | x = FLOAT -> x ] -> Jq_number (float_of_string n) + | "["; es = SELF ; "]" -> Jq_array es + | "{"; kvs = SELF ;"}" -> Jq_object kvs + + | k= SELF; ":" ; v = SELF -> Jq_colon (k, v) + | a = SELF; "," ; b = SELF -> Jq_comma (a, b) + | -> Jq_nil (* camlp4 parser epsilon has a lower priority *) + + ]]; +END ;; + +module AQ = Syntax.AntiquotSyntax +module Q = Syntax.Quotation +let destruct_aq s = + let pos = String.index s ':' in + let len = String.length s in + let name = String.sub s 0 pos in + let code = String.sub s (pos+1) (len-pos-1) in + name, code + +(** alternative*) +let destruct_aq2 = function (RE (_* Lazy as name ) ":" (_* as content)) -> name,content;; +\end{bluecode} + +\begin{alternate} +let /(_* Lazy as x) ":" (_* as rest ) / = "ghsoghos:ghsogh: ghsohgo";; +val rest : string = "ghsogh: ghsohgo" + +val x : string = "ghsoghos" +\end{alternate} + +\begin{bluecode} +let try /(_* Lazy as x) ":" (_* as rest ) / = "ghsoghosghsog ghsohgo" +in (x,rest) +with Match_failure _ -> ("","");; +\end{bluecode} +notice that Syntax.AntiquotSyntax.(parse\_expr,parse\_patt) +Syntax.(parse\_implem, parse\_interf) + +\begin{bluecode} + val parse_expr : Ast.loc -> string -> Ast.expr + val parse_patt : Ast.loc -> string -> Ast.patt + val parse_implem : + val parse_interf : +\end{bluecode} + +\begin{bluecode} +let aq_expander = object + inherit Ast.map as super + method expr = function + |Ast.ExAnt(_loc, s) -> + let n, c = destruct_aq s in + (** first round*) + let e = AQ.parse_expr _loc c in + begin match n with + |"bool" -> <:expr< Jq_ast.Jq_bool $e$ >> (* interesting *) + |"int" -> <:expr< Jq_ast.Jq_number (float $e$ ) >> + |"flo" -> <:expr< Jq_ast.Jq_number $e$ >> + |"str" -> <:expr< Jq_ast.Jq_string $e$ >> + | "list" -> <:expr< Jq_ast.t_of_list $e$ >> + |"alist" -> + <:expr< + Jq_ast.t_of_list + (List.map (fun (k,v) -> Jq_ast.Jq_colon (Jq_ast.Jq_string k, v)) + $e$ ) + >> + |_ -> e + end + |e -> super#expr e + method patt = function + | Ast.PaAnt(_loc,s) -> + let n,c = destruct_aq s in + AQ.parse_patt _loc c (* ignore the tag *) + | p -> super#patt p +end +module MetaExpr = struct + (** the generator scans all the types defined in the current module + then generate code for the last-appearing recursive bundle + *) + let meta_float' _loc f = <:expr< $`flo:f$ >> + include Camlp4Filters.MetaGeneratorExpr(Jq_ast) +end +module MetaPatt = struct + let meta_float' _loc f = <:patt< $`flo:f$ >> + include Camlp4Filters.MetaGeneratorPatt(Jq_ast) +end +let (|>) x f = f x +let parse_quot_string _loc s = + let q = !Camlp4_config.antiquotations in + (** checked by the lexer to allow antiquotation + the flag is initially set to false, so antiquotations + appearing outside a quotation won't be parsed + *) +Camlp4_config.antiquotations := true ; +let res = MGram.parse_string json_eoi _loc s in + Camlp4_config.antiquotations := q ; + res +let expand_expr _loc _ s = + s + |> parse_quot_string _loc + |> MetaExpr.meta_t _loc + |> aq_expander#expr +(* so it can appear in the toplevel *) +let expand_str_item _loc _ s = + (**insert an expression as str_item *) + <:str_item@_loc< $exp: expand_expr _loc None s $ >> +let expand_patt _loc _ s = + s + |> parse_quot_string _loc + |> MetaPatt.meta_t _loc + |> aq_expander#patt +let _ = + Q.add "json" Q.DynAst.expr_tag expand_expr ; + Q.add "json" Q.DynAst.patt_tag expand_patt ; + Q.add "json" Q.DynAst.str_item_tag expand_str_item ; + Q.default := "json" + +\end{bluecode} +\begin{alternate} +MGram.parse_string json_eoi Loc.ghost "[1,2]";; + - : t = Jq_array (Jq_comma (Jq_number 1., Jq_number 2.)) +MGram.parse_string json_eoi Loc.ghost "[1,2,]";; +- : t = Jq_array (Jq_comma (Jq_comma (Jq_number 1., Jq_number 2.), Jq_nil)) +MGram.parse_string json_eoi Loc.ghost "1,2";; +- : t = Jq_comma (Jq_number 1., Jq_number 2.) +let alist = ["haha", <<1>>;"bob",<<3>>] in <:json< [1 , $alist:alist$ ]>>;; +\end{alternate} + +\begin{bluecode} +- : Json_anti.Jq_ast.t = +Json_anti.Jq_ast.Jq_array + (Json_anti.Jq_ast.Jq_comma (Json_anti.Jq_ast.Jq_number 1., + Json_anti.Jq_ast.Jq_comma + (Json_anti.Jq_ast.Jq_colon (Json_anti.Jq_ast.Jq_string "haha", + Json_anti.Jq_ast.Jq_number 1.), + Json_anti.Jq_ast.Jq_comma + (Json_anti.Jq_ast.Jq_colon (Json_anti.Jq_ast.Jq_string "bob", + Json_anti.Jq_ast.Jq_number 3.), + Json_anti.Jq_ast.Jq_nil)))) + \end{bluecode} + +\begin{alternate} +let b = << $ << 1 >> $ >> = << 1 >>;; +val b : bool = true +\end{alternate} + +\begin{bluetext} +<< $ << 1 >> $>> --> parsing (my parser) +Jq_Ant(_loc, "<< 1 >> ") --> lifting (mechnical) +Ex_Ant(_loc, "<< 1 >>") --> parsing (the host parser ) +<:expr< Jq_number 1. >> --> antiquot_expand (my anti_expander ) +<:expr < Jq_number 1. >> +*) +"json_anti.ml" : pp(camlp4of -filter meta) + : pkg_dynlink, use_camlp4_full + \end{bluetext} + +\end{enumerate} +\item part 10 lexer \\ + Just follow the signature of module type Lexer is enough. + generally you have to provide module + Loc, Token, Filter, Error, and mk + mk is essential + + \begin{bluecode} +val mk : unit -> Loc.t -> char Stream.t -> (Token.t * Loc.t ) Stream.t + \end{bluecode} + + the verbose part lies in that you have to use the Camlp4.Sig.Loc, + usually you have to maintain a mutable context, so when you lex a + token, you can query the context to get Loc.t. you can refer Jake's jq\_lexer.ml + for more details. How about using lexer, parser all by myself? + The work need to be done lies in you have to supply a plugin of type + expand\_fun, which is \\ + \verb|type 'a expand_fun = Ast.loc -> string option -> string -> 'a| + so if you dont use ocamllexer, why bother the grammar module, just + use lex yacc will make life easier, and you code will run faster . + +\begin{bluecode} +type pos = { + line : int; + bol : int; + off : int +}; +type t = { + file_name : string; + start : pos; + stop : pos; + ghost : bool +}; +open Camlp4.PreCast +module Loc = Camlp4.PreCast.Loc +module Error : sig + type t + exception E of t + val to_string : t -> string + val print : Format.formatter -> t -> unit +end = struct + type t = string + exception E of string + let print = Format.pp_print_string (* weird, need flush *) + let to_string x = x +end +let _ = + let module M = Camlp4.ErrorHandler.Register (Error) in () +let (|> ) x f = f x +module Token : sig + module Loc : Camlp4.Sig.Loc + type t + val to_string : t -> string + val print : Format.formatter -> t -> unit + val match_keyword : string -> t -> bool + val extract_string : t -> string + module Filter : sig + (* here t refers to the Token.t *) + type token_filter = (t,Loc.t) Camlp4.Sig.stream_filter + type t + val mk : (string->bool)-> t + val define_filter : t -> (token_filter -> token_filter) -> unit + val filter : t -> token_filter + val keyword_added : t -> string -> bool -> unit + val keyword_removed : t -> string -> unit + end + module Error : Camlp4.Sig.Error +end = struct + (** the token need not to be a variant with arms with KEYWORD + EOI, etc, although conventional + *) + type t = + | KEYWORD of string + | NUMBER of string + | STRING of string + | ANTIQUOT of string * string + | EOI + let to_string t = + let p = Printf.sprintf in + match t with + |KEYWORD s -> p "KEYWORD %S" s + |NUMBER s -> p "NUMBER %S" s + |STRING s -> p "STRING %S" s + |ANTIQUOT (n,s) -> p "ANTIQUOT %S: %S" n s + |EOI -> p "EOI" + let print fmt x = x |> to_string |> Format.pp_print_string fmt + let match_keyword kwd = function + |KEYWORD k when kwd = k -> true + |_ -> false + + let extract_string = function + |KEYWORD s | NUMBER s | STRING s -> s + |tok -> invalid_arg ("can not extract a string from this token : " + ^ to_string tok) + + module Loc = Camlp4.PreCast.Loc + module Error = Error + module Filter = struct + type token_filter = (t * Loc.t ) Stream.t -> (t * Loc.t) Stream.t + + (** stub out *) + (** interesting *) + type t = unit + + (** the argument to mk is a function indicating whether + a string should be treated as a keyword, and the default + lexer uses it to filter the token stream to convert identifiers + into keywords. if we want our parser to be extensible, we should + take this into account + *) + let mk _ = () + let filter _ x = x + let define_filter _ _ = () + let keyword_added _ _ _ = () + let keyword_removed _ _ = () + end +end +module L = Ulexing +INCLUDE "/Users/bob/predefine_ulex.ml" +(* let rec token c = lexer *) +(* | eof -> EOI *) +(* | newline -> token *) +(** TOKEN ERROR LOC + mk : unit -> Loc.t -> char Stream.t -> (Token.t * Loc.t) Stream.t + + Loc.of_tuple : + string * int * int * int * int * int * int * bool -> + Loc.t +*) + + \end{bluecode} +\end{enumerate} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "../master" +%%% End: diff --git a/camlp4/revised_syntax.tex b/camlp4/revised_syntax.tex new file mode 100644 index 0000000..c639b2f --- /dev/null +++ b/camlp4/revised_syntax.tex @@ -0,0 +1,218 @@ +\item \textbf{revised syntax} +\begin{alternate} + '\'' + ''' + let x = 3 + value x = 42 ; (str_item) (do't forget ;) + let x = 3 in x + 8 + let x = 3 in x + 7 (expr) + + -- signature + val x : int + value x : int ; + + -- abstract module types + module type MT + module type MT = 'a + + -- currying functor + type t = Set.Make(M).t + type t = (Set.Make M).t + + -- + e1;e2;e3 + do{e1;e2;e3} + + -- + while e1 do e2 done + while e1 do {e2;e3 } + for i = e1 to e2 do e1;e2 done + for i = e1 to e2 do {e1;e2;e3} + + -- + () always needed + + x::y + [x::y] + x::y::z + [x::[y::[z::t]]] + x::y::z::t + [x;y;z::t] + + match e with + [p1 -> e1 + |p2 -> e2]; + + + fun x -> x + fun [x->x] + + + value rec fib = fun [ + 0|1 -> 1 + |n -> fib (n-1) + fib (n-2) + ]; + + + fun x y (C z) -> t + fun x y -> fun [C z -> t] + -- the curried pattern matching can be done with "fun", but + -- only irrefutable + + -- legall + + fun [] + + match e with [] + + try e with [] + + + -- pattern after "let" and "value" must be irrefutable + + let f (x::y) = ... + let f = fun [ [x::y] -> ... ] + + + x.f <- y + x.f := y + x:=!x + y + x.val := x.val + y + + -- + int list + list int + + + ('a,bool) foo + foo 'a bool (*camlp4o -str "type t = ('a,bool) foo" -printer r -> type t = foo 'a bool*) + + type 'a foo = 'a list list + type foo 'a = list (list a) + + int * bool + (int * bool ) + + + -- abstract type are represented by a unbound type variable + type 'a foo + type foo 'a = 'b + + type t = A of i | B + type t = [A of i | B] + + + -- empty is legal + type foo = [] + + + type t= C of t1 * t2 + type t = [C of t1 and t2] + + + C (x,y) + C x y + + + type t = D of (t1*t2) + type t = [D of (t1 * t2)] + + + D (x,y) + D (x,y) + + + type t = {mutable x : t1 } + type t = {x : mutable t1} + + + if a then b + if a then b else () + + + a or b & c + a || b && c + + + (+) + \+ + + + (mod) + \mod + + + + (* new syntax + it's possible to group together several declarations + either in an interface or in an implementation by enclosing + them between "declare" and "end" *) + +declare + type foo = [Foo of int | Bar]; + value f : foo -> int ; +end ; + + + [<'1;'2;s;'3>] + [:`1; `2 ; s; `3 :] + + parser [ + [: `Foo :] -> e + |[: p = f :] -> f ] + + + parser [] + match e with parser [] + + + -- support where syntax + value e = c + where c = 3 ; + + + -- parser + value x = parser [ + [: `1; `2 :] -> 1 + |[: `1; `2 :] -> 2 + ]; + + -- object + class ['a,'b] point + class point ['a,'b] + + + class c = [int] color + class c = color [int] + + -- signature + class c : int -> point + class c : [int] -> point + + + method private virtual + method virtual private + + -- + object val x = 3 end + object value x = 3; end + + + object constraint 'a = int end + object type 'a = int ; end + + -- label type + module type X = sig val x : num:int -> bool end ; + module type X = sig value x : ~num:int -> bool ; end; + + -- + ~num:int + ?num:int + + +\end{alternate} + +%%% Local Variables: +%%% mode: LaTex +%%% TeX-master: "../master" +%%% End: diff --git a/camlp4/syntax_extension.tex b/camlp4/syntax_extension.tex new file mode 100644 index 0000000..1d6aa16 --- /dev/null +++ b/camlp4/syntax_extension.tex @@ -0,0 +1,548 @@ + + + + +\item writing syntax extension + + \begin{itemize} + +\begin{bluecode} +(**pa_second_r.ml*) +open Camlp4.PreCast; +value _loc = Loc.ghost ; +value q = <:str_item>; +\end{bluecode} + + + +\begin{bluecode} +camlp4rf pa_second_r.ml -printer o +\end{bluecode} + + +\begin{bluecode} +open Camlp4.PreCast +let _loc = Loc.ghost +let q = + Ast.StSem (_loc, + (Ast.StVal (_loc, Ast.ReNil, + (Ast.BiEq (_loc, (Ast.PaId (_loc, (Ast.IdLid (_loc, "f")))), + (Ast.ExFun (_loc, + (Ast.McArr (_loc, (Ast.PaId (_loc, (Ast.IdLid (_loc, "x")))), + (Ast.ExNil _loc), (Ast.ExId (_loc, (Ast.IdLid (_loc, "x")))))))))))), + (Ast.StNil _loc)) +\end{bluecode} + + + +\begin{bluecode} +camlp4rf pa_second_r.ml -printer r (* revised syntax*) +\end{bluecode} + + +here StSem means Structure Semi + + +\begin{bluecode} +open Camlp4.PreCast; +value _loc = Loc.ghost; +value q = + Ast.StSem _loc + (Ast.StVal _loc Ast.ReNil + (Ast.BiEq _loc (Ast.PaId _loc (Ast.IdLid _loc "f")) + (Ast.ExFun _loc + (Ast.McArr _loc (Ast.PaId _loc (Ast.IdLid _loc "x")) + (Ast.ExNil _loc) (Ast.ExId _loc (Ast.IdLid _loc "x")))))) + (Ast.StNil _loc); +so, you then ocamlc, and links (here your link extension +still needs camlp4.lib) +\end{bluecode} + + +\begin{enumerate} +\item utility functions +\end{enumerate} +\item some damn useful functions \\ + for the {\bf printer }, + + +\begin{bluecode} +Camlp4.Printers.OCaml.Make : + Camlp4Syntax -> Camlp4Syntax + Some Printer function +Camlp4.Printers.OCaml.MakeMore : + Camlp4Synatx -> (Sig.Printer Syntax.Ast).S + +(* MakeMore does not bring you too much -_- *) +Camlp4.Sig.Printer : + functor (Ast: Camlp4.Sig.Ast ) -> + sig + val print_interf : + ?input_file: string -> ?output_file:string -> Ast.sig_item -> unit + val print_implem : + ?input_file: string -> ?output_file:string -> Ast.str_item -> unit end + end + +\end{bluecode} + + + in the {\bf precast} + + +\begin{bluecode} +Camlp4.PreCast.Printers.OCamlr.print_implem +Camlp4.PreCast.Printers.OCamlr.print_interf;; +\end{bluecode} + + +\item for the ast {\bf transformation } + + +\begin{bluecode} +Ast.tyOr_of_list : ctyp list -> ctyp +list_of_ctyp : ctyp -> ctyp list -> ctyp list +\end{bluecode} + + + ctyp has a constructor branch TySum of loc * ctyp + + +\begin{bluecode} +match_case = + McNil of loc + McOr of loc * match_case * match_case + McArr of loc * patt * expr * expr (* the second argument is guard pattern *) + McAnt of loc * string +\end{bluecode} + + +for example, + + +\begin{bluecode} +camlp4rf -printer o -str "value x = <:expr< fun x when x > 0 -> 1 >> ; " +let x = + Ast.ExFun (_loc, + (Ast.McArr (_loc, (Ast.PaId (_loc, (Ast.IdLid (_loc, "x")))), + (Ast.ExApp (_loc, + (Ast.ExApp (_loc, (Ast.ExId (_loc, (Ast.IdLid (_loc, ">")))), + (Ast.ExId (_loc, (Ast.IdLid (_loc, "x")))))), + (Ast.ExInt (_loc, "0")))), + (Ast.ExInt (_loc, "1"))))) + +\end{bluecode} + + +% $ + +\item quotations + + +\begin{bluecode} +[`QUOTATION x -> Quotation.expand _loc x Quotation.DynAst.expr_tag ] +\end{bluecode} + + + when it parsing to \verb|>|, will inversion control \\ + \verb|add_quotation "sig_item" sig_item_quot ME.meta_sig_item MP.meta_sig_item| + will installs a quotation expander for the \verb|sig_item| tag + the expander parses the quotation starting at the \verb|sig_item_quot| + nonterminal in the parser, then runs the result through the antiquotation + inside a pattern or an expr + + \item small examples \\ + {\color{red} oco} + + +\begin{bluecode} +cat /usr/local/bin/oco +ledit -x -h ~/.ocaml_history ocaml dynlink.cma camlp4of.cma -warn-error +a-4-6-27..29 +\end{bluecode} + + + under oco some \textbf{useful} functions + + +\begin{bluecode} +Camlp4.PreCast.Gram.Entry.print;; (** print the grammar ! *) +- : Format.formatter -> 'a Camlp4.PreCast.Gram.Entry.t -> unit = +Camlp4.PreCast.Gram.Entry.clear ;; +- : 'a Camlp4.PreCast.Gram.Entry.t -> unit = +Gram.parse_string +-: 'a Gram.Entry.t -> Gram.Loc.t -> string -> 'a +Camlp4.PreCast.Gram.parse_string;; +- : 'a Camlp4.PreCast.Gram.Entry.t -> + Camlp4.PreCast.Gram.Loc.t -> string -> 'a +Camlp4.PreCast.Gram.parse : 'a Entry.t -> Loc.t -> char Stream.t -> 'a +Register.loaded_modules;; +Camlp4.PreCast.Printers.OCaml.print_implem ;; +let module M = Camlp4.Printers.OCaml.Make Syntax in M.print_implem ;; +\end{bluecode} + + + + +\begin{bluecode} +open Camlp4.PreCast ;; +Gram.Entry.print Format.std_formatter Syntax.implem ;; +- : +implem: [ LEFTA + [ "#"; a_LIDENT; opt_expr; semi + | EOI + | str_item; semi; SELF ] ] +- : +Gram.Entry.print Format.std_formatter Syntax.top_phrase;; +top_phrase: [ LEFTA + [ "#"; a_LIDENT; opt_expr; ";;" + | EOI + | LIST1 str_item; ";;" ] ] +- : +Gram.Entry.print Format.std_formatter Syntax.phrase;; +phrase: [ LEFTA + [ "#"; a_LIDENT; opt_expr; semi + | str_item; semi ] ] + +Gram.Entry.print Format.std_formatter Syntax.semi;; +semi: [ LEFTA + [ ";;" + | ] ] + +Gram.Entry.print Format.std_formatter Syntax.expr ;; +\end{bluecode} + + + + \item AST Transformation + When you define your own ast, one way is to {\bf use MetaExpr to map your ast to Ocaml ast} + automatically, which is not interesting actually. (mainly used in QuasiQuoations), for this way you don't need to care the locations, meta\_xx, will help you handle it . the parser + get the location, and pass it to meta\_xxx. i.e. + + +\begin{bluecode} +module Python_ast = struct + type expr = + [Var of string + |String of string ] + and stm = + [ Def of string and expr + | Print of list expr ] ; +end; + +include Python_ast; + +open Camlp4.PreCast ; + +module MetaExpr = struct + include Camlp4Filters.MetaGeneratorExpr(Python_ast); +end ; +module MetaPatt = struct + include Camlp4Filters.MetaGeneratorPatt(Python_ast); +end ; + +(** now the parser part *) +open Camlp4.PreCast ; +value expr = Gram.Entry.mk "expr" ; +value stm = Gram.Entry.mk "stm" ; +module X = Gram ; +EXTEND X + expr : [ + [v = LIDENT -> Var v + |s = STRING -> String s] + ] + ; + stm: [ + [ "def"; v = LIDENT; "="; e=expr -> Def v e + | "print"; es = LIST1 expr SEP "," -> Print es] + ] + ; +END; +Gram.Entry.clear Syntax.expr; +EXTEND Gram + Syntax.expr : + [[ s = stm -> MetaExpr.meta_stm _loc s]]; +END; + +\end{bluecode} + + +This kind transformation is too simple, mechanical, probably not you want. +Another way is to define {\bf your own mapping} from your ast to OCaml ast. you still need not care the location, handle it to the mapping function. i.e + + +\begin{bluecode} +module Python_ast = struct + type expr = + [Var of string + |String of string ] + and stm = + [ Def of string and expr + | Print of list expr ] ; +end; +include Python_ast; +open Camlp4.PreCast ; +value meta_expr _loc = fun + [Var str -> <:expr< $lid:str$ >> + |String str -> <:expr< $str:str$ >>]; +value concat_exprs _loc = fun + [ [] -> failwith "concat_exprs" + | [e::es] -> + List.fold_left (fun e e' -> <:expr< $e$ ^ " " ^ $e'$ >>) e es + ]; +value meta_stm _loc = fun + [Def str expr -> <:str_item< value $lid:str$ = $meta_expr _loc expr$ ; >> + |Print es -> + let es = List.map (fun e -> meta_expr _loc e) es in + <:str_item< print_endline $concat_exprs _loc es $ >> + ]; +value expr = Gram.Entry.mk "expr" ; +value stm = Gram.Entry.mk "stm" ; +EXTEND Gram + expr : [ + [v = LIDENT -> Var v + |s = STRING -> String s] + ] + ; + stm: [ + [ "def"; v = LIDENT; "="; e=expr -> Def v e + | "print"; es = LIST1 expr SEP "," -> Print es] + ] + ; +END; +(* value _ = Printf.printf "fuck"; *) +Gram.Entry.clear Syntax.str_item; +EXTEND Gram + Syntax.str_item : + [[ s = stm -> meta_stm _loc s]]; +END; + +$cast test_wiki2_r.ml +def name = "world" ; +print "hello", name ; + +$camlp4rf -parser _build/wiki2_r.cmo test_wiki2_r.ml -printer r +(* +value name = "world"; +print_endline ("hello" ^ (" " ^ name)); +*) + +\end{bluecode} + + +% $ + + The formal way of using the syntax extension is to use functor to register it , the whole file is a functor, we programmed {\bf based on Camlp4.Sig} + + +\begin{bluecode} +module Python_ast = struct + type expr = + [Var of string + |String of string ] + and stm = + [ Def of string and expr + | Print of list expr ] ; +end; +include Python_ast; +(* open Camlp4.PreCast ; *) +module Id = struct + value name = "python"; + value version = "0.1"; +end; +module Minimal (Syntax : Camlp4.Sig.Camlp4Syntax ) = struct + open Camlp4.Sig ; + open Syntax ; +value meta_expr _loc = fun + [Var str -> <:expr< $lid:str$ >> + |String str -> <:expr< $str:str$ >>]; +value concat_exprs _loc = fun + [ [] -> failwith "concat_exprs" + | [e::es] -> + List.fold_left (fun e e' -> <:expr< $e$ ^ " " ^ $e'$ >>) e es + ]; +value meta_stm _loc = fun + [Def str expr -> <:str_item< value $lid:str$ = $meta_expr _loc expr$ ; >> + |Print es -> + let es = List.map (fun e -> meta_expr _loc e) es in + <:str_item< print_endline $concat_exprs _loc es $ >> + ]; +value expr = Gram.Entry.mk "expr" ; +value stm = Gram.Entry.mk "stm" ; +EXTEND Gram + expr : [ + [v = LIDENT -> Var v + |s = STRING -> String s] + ] + ; + stm: [ + [ "def"; v = LIDENT; "="; e=expr -> Def v e + | "print"; es = LIST1 expr SEP "," -> Print es] + ] + ; +END; +(* value _ = Printf.printf "fuck"; *) +Gram.Entry.clear Syntax.str_item; +EXTEND Gram + Syntax.str_item : + [[ s = stm -> meta_stm _loc s]]; +END; + include Syntax ; (* Syntax -> Syntax we only care the side effect *) +end ; +value _ = + let module M = Camlp4.Register.OCamlSyntaxExtension Id Minimal in (); +\end{bluecode} + + + + idea: how about combining with first class modules?. + Now, it works as follows: \\ + {\bf ocaml dynlink.cma camlp4o.cma \verb|wiki2_r.cmo|} + + +\begin{bluecode} + Objective Caml version 3.12.1 + Camlp4 Parsing version 3.12.1 +File "/Users/bob/.ocamlinit", line 1, characters 0-3: +Error: Parse error: illegal begin of use_file +# def name = "world";; +val name : string = "world" +# +\end{bluecode} + + + error is because we changed the syntax, it can not parse .ocamlinit any more + we could build .mli by {\bf ocamlbuild xx.inferred.mli} and then copy paste + \verb|wiki2_r.mli : use_camlp4_full | + (we are not using extension, just use the library) +\item Make a new grammar {\bf using the same lexer and token type } + + +\begin{bluecode} +open Camlp4.PreCast ;; +module Gram = MakeGram(Lexer );; +\end{bluecode} + + +\item some abbrevations (pretty use full) + + +\begin{bluecode} +camlp4 -parser r -parser rp -printer a +-- revised, revisedparserparser +-- == camlp4r + +camlp4 -parser o -parser op -printer a +-- revisedparser, revisedparserparser, parser, parserparser +-- == camlp4o +-- the list of abbrevations for the parsers is in the file Camlp4Bin.ml +-- -printer a +-- either Camlp4OCamlPrinter (tty) or the Camlp4OCamlAstDumper (-printer p) + +\end{bluecode} + + +\item another exmaple to define your ast, and map it to camlp4 AST + + +\begin{bluecode} +$cat vector_r.ml +open Sexplib ; +open Sexplib.Std ; (* for some methods, mainly pretty printer *) +type vec = + [Scalar of string + |Vector of list string + |Sum of vec and vec + |ScalarProduct of vec and vec + |Antiquot of string ] +with sexp ; + +value (|>) x f = f x ; + +value vec_to_string vec = + vec |> sexp_of_vec |> Sexp.to_string ; + + +$cat pa_vector_r.ml + +open Camlp4.PreCast ; +open Vector_r ; + +(**customized ast transfomer *) +value rec meta_vec _loc = fun + [Scalar s -> <:expr< $flo:s$ >> + |Vector ls -> List.fold_right + (fun x l -> <:expr< [ $flo:x$ :: $l$ ] >>) + ls <:expr< [] >> + |Sum l r -> <:expr< List.map2 (+.) $meta_vec _loc l$ $meta_vec _loc r$ >> + |ScalarProduct l0 r0 -> + let l = meta_vec _loc l0 + and r = meta_vec _loc r0 + in match (l0,r0) with + [(Scalar _ , Scalar _ ) -> <:expr< $l$ *. $r$ >> + |(Scalar _, _) -> + <:expr< List.map (fun x -> $l$ *. x) $r$ >> + |(_, Scalar _) -> + <:expr< List.map (fun x -> $r$ *. x) $l$>> + | _ -> + <:expr< List.fold_left (+.) 0. (List.map2 ( *. ) $l$ $r$ )>> + ] + + |Antiquot s -> + <:expr< $lid:s$ >> (** interesting *) + ]; +\end{bluecode} + + + +\begin{bluecode} +(** parser *) +value expression = Gram.Entry.mk "expression"; +EXTEND Gram + GLOBAL: expression ; + expression : + [ "sum" LEFTA + [x = SELF; "+"; y = SELF -> Sum x y ] + | "scalar" LEFTA + [x = SELF; "*"; y = SELF -> ScalarProduct x y ] + | "simple" NONA + ["("; e = SELF; ")" -> e + | s = scalar -> Scalar s + | v = vector -> v + | s= LIDENT -> Antiquot s ] + ]; + scalar : + [[`INT (i,_) -> string_of_float (float i) (* for full information *) + |`FLOAT (_,f) -> f ] + ]; + vector : + [[ "["; strs = LIST0 scalar SEP "," ; "]" -> Vector strs ]]; +END; +Gram.Entry.clear Syntax.expr ; (* in the module Syntax *) +EXTEND Gram + GLOBAL: Syntax.expr ; + Syntax.expr: + [[x = expression -> meta_vec _loc x ]]; +END; +(** test parser *) +value _ = + let _loc = Loc.mk "" in + "[1,2,3]" + |> Gram.parse_string expression _loc + |> vec_to_string |> print_string ; + (* |> sexp_of_vec |> Sexp.to_string |> print_string ; *) + + (* |> vec_print |> print_string ; *) + (* |> sexp_of_vec |> string_of_sexp |> print_string ; *) + +(* [1,2,3] + [3,4,5];; *) +(* - : float list = [4.; 6.; 8.] *) + +\end{bluecode} + +\end{itemize} + + + + +%%% Local Variables: +%%% mode: LaTex +%%% TeX-master: "../master" +%%% End: diff --git a/continuations/cont.tex b/continuations/cont.tex new file mode 100644 index 0000000..b1a225a --- /dev/null +++ b/continuations/cont.tex @@ -0,0 +1,263 @@ +Continuatioins +A conditional banch selects a continuation from the two possible +futures; rasing an exception discards. Traditional way to handle +continuations explicitly in a program is to transform a program into +cps style. Continuation captured by call/cc is the {\bf whole} continuation +that includes all the future computation.. In practice, most of the +continuations that we want to manipulate are only a part of +computation. Such continuations are called {\bf delimited continuations} or +{\bf partial continuations}. + + +\begin{enumerate} +\item cps transform \\ + there are multiple ways to do cps transform, here are two. + + + \begin{bluetext} +------------------------------------------ + [x] --> x + [\x. M] --> \k . k (\x . [M]) + [M N] --> \k. [M] (\m . m [N] k) +------------------------------------------ + + +------------------------------------------ + [x] --> \k . k x + [\x. M] --> \k. k (\x.[M]) + [M N] --> \k. [M] (\m . [N] (\n. m n k)) +------------------------------------------ + + +[callcc (\k. body)] = \outk. (\k. [body] outk) (\v localk. outk v) + + \end{bluetext} + + +\item experiment + +\begin{alternate} +#load "delimcc.cma";; +\end{alternate} +\begin{alternate} +Delimcc.shift;; +- : 'a Delimcc.prompt -> (('b -> 'a) -> 'a) -> 'b = +\end{alternate} + +\begin{bluetext} +reset (fun () -> M ) --> push_prompt p (fun () -> M ) +shift (fun k -> M) --> shift p (fun k -> M ) +\end{bluetext} +in racket you should have \textit{(require racket/control)} +and then \textit{(reset expr ...+)} +\textit{(shift id expr ...+)} + + +\begin{redcode} +module D = Delimcc +(** set the prompt *) +let p = D.new_prompt () +let (reset,shift),abort = D.(push_prompt &&& shift &&& abort ) p;; +let foo x = reset (fun () -> shift (fun cont -> if x = 1 then cont 10 else 20 ) + 100 ) +\end{redcode} + +\begin{alternate} +foo 1 ;; +- : int = 110 +foo 2 ;; +- : int = 20 +5 * reset (fun () -> shift (fun k -> 2 * 3 ) + 3 * 4 );; +- : int = 30 +reset (fun () -> 3 + shift (fun k -> 5 * 2) ) - 1 ;; +- : int = 9 +\end{alternate} +\begin{bluetext} +val p : '_a D.prompt = +val reset : (unit -> '_a) -> '_a = +val shift : (('_a -> '_b) -> '_b) -> '_a = +val abort : '_a -> 'b = +\end{bluetext} + +\begin{bluecode} +let p = D.new_prompt () +let (reset,shift),abort = D.(push_prompt &&& shift &&& abort ) p;; +\end{bluecode} + +\begin{alternate} +reset (fun () -> if (shift (fun k -> k(2 = 3))) then "hello" else "hi ") ^ "world";; +- : string = "hi world" +reset (fun () -> if (shift (fun k -> "laji")) then "hello" else "hi ") ^ "world";; +- : string = "lajiworld" +reset (fun _ -> "hah");; +- : string = "hah" +\end{alternate} + + +\begin{bluecode} +let make_operator () = + let p = D.new_prompt () in + let (reset,shift),abort = D.(push_prompt &&& shift &&& abort) p in + p,reset,shift,abort +\end{bluecode} + +Delimited continuations seems not able to handle answer type polymorphism. + +\begin{bluetext} +exception Str of [`Found of int | `NotFound] +\end{bluetext} + +\begin{redcode} +let times lst = + let rec times_aux lst = match lst with + | [] -> 1 + | 0 :: xs -> shift (fun _ -> 0 ) + | x :: xs -> begin + (* printf "entering %d\n" x ; *) + let v = x * times_aux xs in + (* printf "exiting %d\n" x ; *) + v + end in + reset (fun () -> times_aux lst ) +\end{redcode} + +Store the continuation, the type system is not friendly to the +continutations, but fortunately we have \textit{side effects} at hand, we can +store it. (This is pretty hard in Haskell ) + +\begin{redcode} +let p,reset,shift,abort = make_operator() in + let c = ref None in + begin + reset (fun () -> 3 + shift (fun k -> c:= Some k ; 0) - 1) ; + Option.get (!c) 20 + end ;; + Characters 81-139: + reset (fun () -> 3 + shift (fun k -> c:= Some k ; 0) - 1) ; + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + Warning 10: this expression should have type unit. + \end{redcode} +\begin{bluecode} +- : int = 22 +\end{bluecode} +\begin{redcode} +let cont = + let p,reset,shift,abort = make_operator() in + let c = ref None in + let rec id lst = match lst with + | [] -> shift (fun k -> c:=Some k ; [] ) + |x :: xs -> x :: id xs in + let xs = reset (fun () -> id [1;2;3;4]) in + xs, Option.get (!c);; +\end{redcode} +\begin{bluecode} +val cont : int list * (int list -> int list) = ([], ) +\end{bluecode} +\begin{alternate} +# let a,b = cont ;; +val a : int list = [] + +val b : int list -> int list = +# b [];; +- : int list = [1; 2; 3; 4] +\end{alternate} + + + +\begin{redcode} +type tree = Empty | Node of tree * int * tree +let walk_tree = + let cont = ref None in + let p,reset,shift,abort = make_operator() in + let yield n = shift (fun k -> cont := Some k; print_int n ) in + let rec walk2 tree = match tree with + |Empty -> () + |Node (l,v,r) -> + walk2 l ; + yield v ; + walk2 r in + fun tree -> (reset (fun _ -> walk2 tree ), cont);; +\end{redcode} +\begin{bluecode} +val walk_tree : tree_t -> unit * ('_a -> unit) option Batteries.ref = +\end{bluecode} + +\begin{alternate} +# let _, cont = walk_tree tree1 ;; +1val cont : ('_a -> unit) option Batteries.ref = {contents = Some } +# Option.get !cont ();; +2- : unit = () +# Option.get !cont ();; +3- : unit = () +# Option.get !cont ();; +- : unit = () +# Option.get !cont ();; +- : unit = () +\end{alternate} + +It's quite straightforward to implement yield using delimited +continuation, since each time shifting will escape the control, and you store the continuation, later it can be resumed. + + +\begin{bluetext} +(** defer the continuation *) +shift (fun k -> fun () -> k "hello") +\end{bluetext} + +By wrapping continuations, we can \textbf{access the information outside} of the enclosing +reset while staying within reset lexically. + +suppose this type check + +\begin{alternate} + let f x = reset (fun () -> shift (fun k -> fun () -> k "hello") ^ "world" ) x + f : unit -> string +\end{alternate} + +\item Answer type modification (serious) + in the following context, + \verb|reset (fun () -> [...] ^ "word" )|, the value returned by + reset appears to be a string. An answer type is a type of the enclosing + \emph{reset}. + +\item reorder delimited continuations \\ + if we apply a continuation at the tail position, the captured computation is simply + resumed. If we apply a continuation at the non-tail position, we can perform + additional computation after resumed computation finishes. + + Put differently, we can switch the execution order of the surrounding context. + +\begin{redcode} +let p,reset,shift,abort = make_operator () in + reset (fun () -> 1 + (shift (fun k -> 2 * k 3 )));; +\end{redcode} +\begin{bluecode} +- : int = 8 +\end{bluecode} + +\begin{redcode} +let p,reset,shift,abort = make_operator () in + let either a b = shift (fun k -> k a ; k b ) in + reset (fun () -> + let x = either 0 1 in + print_int x ; print_newline ());; + \end{redcode} +\begin{bluecode} + 0 + 1 +\end{bluecode} +\item useful links \\ + \href{http://blog.fitzell.ca/2009/01/seaside-partial-continuations.html}{sea + side} \\ + \href{http://pllab.is.ocha.ac.jp/~asai/cw2011tutorial/}{shift and + reset tutorial} \\ + \href{http://pllab.is.ocha.ac.jp/~asai/cw2011tutorial/main-e.pdf}{shift + reset tutorial} \\ + \href{http://docs.racket-lang.org/reference/cont.html#(part._.Classical_.Control_.Operators)}{racket + control operators} \\ + \href{http://okmij.org/ftp/continuations/caml-shift.pdf}{caml-shift-paper.pdf} \\ + \href{http://okmij.org/ftp/continuations/caml-shift-talk.pdf}{caml-shift-talk} \\ + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "../master" +%%% End: diff --git a/godi.tex b/godi.tex new file mode 100644 index 0000000..3bf7f60 --- /dev/null +++ b/godi.tex @@ -0,0 +1,34 @@ + +\subsection{godi} +\label{sec:godi} +\begin{itemize} +\item \verb|godi_console | + + \item useful paths \\ + + +\begin{bluecode} +./build/distfiles/godi-batteries +~/SourceCode/ML/godi/build/distfiles/ocaml-3.12.0/toplevel/ +\end{bluecode} + + + + + +\begin{bluecode} +godi_make makesum +godi_make install +godi_console info (godi_console list ) +godi_add ~/SourceCode/ML/godi/build/packages/All/godi-calendar-2.03.tgz +godi_console perform -build godi-ocaml-graphics >.log 2 >1 +perform (fetch, extract, patch, configure, build, install) +\end{bluecode} + + +\end{itemize} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "master" +%%% End: diff --git a/lang/stream.tex b/lang/stream.tex new file mode 100644 index 0000000..7581414 --- /dev/null +++ b/lang/stream.tex @@ -0,0 +1,207 @@ + + +\href{http://mirror.ocamlcore.org/ocaml-tutorial.org/streams.html}{streams} + +\begin{enumerate} +\item stream expression + + \begin{redcode} + +let rec walk dir = + let items = try + Array.map (fun fn -> let path = Filename.concat dir fn in + try if Sys.is_directory path then `Dir path else `File path + with e -> `Error(path,e) ) (Sys.readdir dir) + with e -> [| `Error (dir,e) |] in + Array.fold_right + (fun item rest -> match item with + |`Dir path -> [< 'item ; walk path; rest >] + | _ -> [< 'item; rest >]) items [< >];; + + +(** alternative without syntax extension *) +let rec walk dir = + let items = + try + Array.map + (fun fn -> + let path = Filename.concat dir fn + in + try if Sys.is_directory path then `Dir path else `File path + with | e -> `Error (path, e)) + (Sys.readdir dir) + with | e -> [| `Error (dir, e) |] + in + Array.fold_right + (fun item rest -> + match item with + | `Dir path -> + Stream.icons item (Stream.lapp (fun _ -> walk path) rest) + | _ -> Stream.icons item rest) + items Stream.sempty + + + +Stream.(walk "/Users/bob" |> take 10 |> iter +s ((function `Dir s -> "dir :" ^ s | `File s -> "file: " ^ s | `Error (s,e) -> "error: " ^ s ^ " " ^ Printexc.to_string e) |- print_string |- print_newline) );; + + \end{redcode} + + \begin{bluecode} +- : string -> + [> `Dir of string | `Error of string * exn | `File of string ] + Batteries.Stream.t + +error: /Users/bob/.#.log Sys_error("/Users/bob/.#.log: No such file or directory") +file: /Users/bob/.aboutenvfiles +file: /Users/bob/.bash_history +file: /Users/bob/.bashrc +file: /Users/bob/.bashrc~ +dir :/Users/bob/.cabal +file: /Users/bob/.cabal/.DS_Store +dir :/Users/bob/.cabal/bin +file: /Users/bob/.cabal/bin/alex +file: /Users/bob/.cabal/bin/bf + + + \end{bluecode} +\item module Stream + + +\begin{alternate} +Stream.npeek;; +- : int -> 'a Batteries.Stream.t -> 'a list = +Stream.next;; +- : 'a Stream.t -> 'a = +\end{alternate} + + + +\begin{redcode} +let lines_stream_of_channel chan = Stream.from (fun _ -> + try Some (input_line chan) with End_of_file -> None );; +\end{redcode} + +\begin{bluecode} +val lines_stream_of_channel : BatIO.input -> string Batteries.Stream.t = +\end{bluecode} + + +it raises \textit{Stream.Failure} on an empty stream, +i.e. \textit{Stream.next} + +\begin{redcode} +let line_stream_of_string string = + Stream.of_list (Str.(split (regexp "\n") string)) +\end{redcode} + +\item Constructing streams \\ + \begin{bluetext} + Stream.from + Stream.of_list + Stream.of_string (* char t *) + Stream.of_channel (* char t *) + \end{bluetext} + +\item Consuming streams \\ + +\begin{bluetext} + Stream.peek + Stream.junk +\end{bluetext} + +\begin{bluecode} +let paragraph lines = + let rec next para_lines i = + match Stream.peek lines,para_lines with + | None, [] -> None + | Some "", [] -> + Stream.junk lines (* still a white paragraph *) + next para_lines i + | Some "", _ | None, _ -> + Some (String.concat "\n" (List.rev para_lines)) (* a new paragraph*) + | Some line, _ -> + Stream.junk lines ; + next (line :: para_line ) i in + Stream.from (next []) +\end{bluecode} + +\begin{redcode} +let stream_fold f stream init = + let result = ref init in + Stream.iter (fun x -> result := f x !result) stre am; !result;; + \end{redcode} + +\begin{bluecode} +val stream_fold : ('a -> 'b -> 'b) -> 'a Batteries.Stream.t -> 'b -> 'b = + +\end{bluecode} + +\begin{redcode} +let stream_concat streams = + let current_stream = ref None in + let rec next i = + try + let stream = match !current_stream with + | Some stream -> stream + | None -> + let stream = Stream.next streams in + current_stream := Some stream ; + stream in + try Some (Stream.next stream) + with Stream.Failure -> (current_stream := None ; next i) + with Stream.Failure -> None in + Stream.from next +\end{redcode} + +\item \textit{copying or sharing} streams \\ + this was called \textit{dup} in Enum + \begin{bluecode} +(** create 2 buffers to store some pre-fetched value *) +let stream_tee stream = + let next self other i = + try + if Queue.is_empty self + then + let value = Stream.next stream in + Queue.add value other ; + Some value + else + Some (Queue.take self) + with Stream.Failure -> None in + let q1,q2 = Queue.create (), Queue.create () in + (Stream.from (next q1 q2), Stream.from (next q2 q1)) +\end{bluecode} + +\item convert arbitray data types to streams \\ + if the datat type defines an \textit{iter} function, and you don't + mind using threads, you can use a \textit{producer-consumer} + arrangement to invert control. + +\begin{redcode} +let elements iter coll = + let channel = Event.new_channel () in + let producer () = + let _ = iter (fun x -> Event.(sync (send channel (Some x )))) coll in + Event.(sync (send channel None)) in + let consumer i = + Event.(sync (receive channel)) in + ignore (Thread.create producer ()) ; + Stream.from consumer +\end{redcode} + + \begin{bluecode} +val elements : (('a -> unit) -> 'b -> 'c) -> 'b -> 'a Batteries.Stream.t = +\end{bluecode} + +Keep in mind that these techniques spawn producer threads which carry +a few risks: they only terminate when they have finished iterating, +and any change to the original data structure while iterating may +produce unexpected results. + + +\end{enumerate} +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "../master" +%%% End: diff --git a/lex.tex b/lex.tex new file mode 100644 index 0000000..11b4f62 --- /dev/null +++ b/lex.tex @@ -0,0 +1,341 @@ + + + + +\begin{enumerate} +\item use ulex \textbf{ unicode support}, \textbf{ don't waste time in ocamllex (it can not handle CJK!!) } +\item tags file +\begin{redcode} +$ cat tags +\end{redcode} + +% $ + +\begin{bluecode} +<*_ulex.ml> : syntax_camlp4o,pkg_ulex +<*_ulex.{byte,native}> : pkg_ulex +\end{bluecode} + + + + use default myocamlbuild.ml, like \emph{ln -s ~/myocamlbuild.ml} + make a symbol link \verb|pa_ulex.cma| to camlp4 directory,this is actually not necessary + but sometimes for \textbf{ debugging purpose}, as follows, this is pretty easy \\ + \verb| camlp4o pa_ulex.cma -printer OCaml test_ulex.ml -o test_ulex.ppo| + +\item example (does not support \textbf{ as } syntax as ocamllex) + + +\begin{bluecode} +let regexp number = ['0'-'9'] + +let regexp line = [^ '\n']* ('\n' ?) +let u8l = Ulexing.utf8_lexeme +let rec lexer1 arg1 arg2 .. = lexer +|regexp -> action |.. +and lexer2 arg1 arg2 .. = lexer +|regexp -> action |... +\end{bluecode} + + + + \item \textbf{ roll back} \\ + Ulexing.rollback lexbuf, so for string lexing, you can rollback one char, + and plugin your string lexer, but \textit{not generally usefull}, ulex \textit{does not support shortest mode yet}. Sometimes the semantics of rolling back is not what you want. + \item combined with macro package \\ + since you need inline to do macro prepossessing + so use syntax extension macro to \textbf{ inline} your code, + + +\begin{bluetext} +<*_ulex.ml> : syntax_camlp4o,pkg_ulex,pkg_camlp4.macro +<*_ulex.{byte,native}> : pkg_ulex +\end{bluetext} + + + Attention! \textbf{ since you use ocamlbuild to build, then you need to copy you include + files to \_build if you use relative path, otherwise you can use absolute path} +\item predefined regexp (copied from ocaml source code) + \href{file:/Users/bob/SourceCode/ML/godi/build/distfiles/ocaml-3.12.1/parsing/lexer.ml}{parsing/lexer.ml} -- ocaml compiler lexer file for reference +\item ulex interface + \begin{enumerate} + \item roughly equivalent to the module Lexing, except that its lexbuffers handles Unicode + code points\textbf{ OCaml type:int in the range 0.. 0x10ffff} + instead of bytes (OCamltype : char). \emph{you can customize implementation for lex buffers}, define a module L which implements \emph{start,next,mark, and backtrack and the Error exception}. They need not work on a type named lexbuf, you can use the type name you want. Then, just do in your \emph{ulex-processed} source, before the first lexer specification\verb|module Ulexing = L| + Great! you can see that the generated code \emph{introducing Ulexing } very \emph{late} + and actually use very limited functions, other functions are just provided for your + convenience, and it did not have any type annotations, so you really can customize it. I think probably ocamllex can do the similar trick. + + +\begin{bluetext} +val start : Ulexing.lexbuf -> unit +val next : Ulexing.lexbuf -> int +val mark : Ulexing.lexbuf -> int -> unit +val backtrack : Ulexing.lexbuf -> int +\end{bluetext} + + + \item .mli file + + +\begin{bluecode} +type lexbuf +exception Error +exception InvalidCodepoint of int +val create : (int array -> int -> int -> int ) -> lexbuf + +(* Unicode *) +from_stream : int Stream.t -> lexbuf +from_int_array : int array -> lexbuf + +(* 0..255 *) +from_latin1_stream : char Stream.t -> Ulexing.lexbuf +from_latin1_channel : Pervasives.in_channel -> Ulexing.lexbuf +from_latin1_string : string -> Ulexing.lexbuf + + +(*Utf8 encoded stream*) +from_utf8_stream : char Stream.t -> Ulexing.lexbuf +from_utf8_channel : Pervasives.in_channel -> Ulexing.lexbuf +from_utf8_string : string -> Ulexing.lexbuf + + +(** encoding is subject to change during lexing Note that bytes +have been consumed bye the lexer buffer are not re-interpreted +with the new encoding, in Ascii mode, non-Ascii bytes(ie >127) in the +stream raises an InvalidCodepoint exception +*) +from_var_enc_stream : + Ulexing.enc Pervasives.ref -> char Stream.t -> Ulexing.lexbuf +from_var_enc_string : + Ulexing.enc Pervasives.ref -> string -> Ulexing.lexbuf +from_var_enc_channel : + Ulexing.enc Pervasives.ref -> Pervasives.in_channel -> Ulexing.lexbuf +type enc = Ulexing.enc = Ascii | Latin1 | Utf8 + +(** semantic action *) +lexeme_start : lexbuf -> int -- from 0 +lexeme_end : lexbuf -> int +loc : lexbuf -> int * int -- (start,end) +lexeme_length : lexbuf -> int +lexeme : lexbuf -> int array +lexeme_char : lexbuf -> int -> int -- (may be more than 255) +sub_lexeme : lexbuf -> int -> int -> int array + +latin1_lexeme : lexbuf -> string (*result encoded in Latin1*) +latin1_sub_lexeme +latin1_lexeme_char + +utf8_lexeme +utf8_sub_lexeme + +rollback : lexbuf -> unit +-- puts lexbuf back in its configuration before the last lexeme +-- was matched, it's then possible to plugin another lexer to parse +-- + +(** access to the internal buffer*) +get_buf : lexbuf -> int array +get_start : lexbuf -> int +get_pos : lexbuf -> int + + +-- internal +start,next,mark, backtrack + +\end{bluecode} + + + \item annoyance \\ + did not handle line position, you have only global char position, but + we are using emacs, not matter too much + \item \textbf{ hand-coded some predefined regexps, copied and revised from ocaml compiler, + source code} + + + +\begin{bluecode} +let u8l = Ulexing.utf8_lexeme +let u8_string_of_int_array arr = + Utf8.from_int_array arr 0 (Array.length arr) +let u8_string_of_int v = + Utf8.from_int_array [|v|] 0 1 + +let report_error ?(msg="") lexbuf = + let (a,b) = Ulexing.loc lexbuf in + failwith ((Printf.sprintf "unexpected error (%d,%d) : " a b )^ msg) + +(** copied from ocaml 3.12.1 source code *) +let regexp newline = ('\010' | '\013' | "\013\010") +let regexp blank = [' ' '\009' '\012'] +let regexp lowercase = ['a'-'z' '\223'-'\246' '\248'-'\255' '_'] +let regexp uppercase = ['A'-'Z' '\192'-'\214' '\216'-'\222'] + +let regexp identchar = + ['A'-'Z' 'a'-'z' '_' '\192'-'\214' '\216'-'\246' '\248'-'\255' '\'' '0'-'9'] + +let regexp symbolchar = + ['!' '$' '%' '&' '*' '+' '-' '.' '/' ':' '<' '=' '>' '?' '@' '^' '|' '~'] + + +let regexp decimal_literal = + ['0'-'9'] ['0'-'9' '_']* +let regexp hex_literal = + '0' ['x' 'X'] ['0'-'9' 'A'-'F' 'a'-'f']['0'-'9' 'A'-'F' 'a'-'f' '_']* +let regexp oct_literal = + '0' ['o' 'O'] ['0'-'7'] ['0'-'7' '_']* +let regexp bin_literal = + '0' ['b' 'B'] ['0'-'1'] ['0'-'1' '_']* +let regexp int_literal = + decimal_literal | hex_literal | oct_literal | bin_literal +let regexp float_literal = + ['0'-'9'] ['0'-'9' '_']* ('.' ['0'-'9' '_']* )? (['e' 'E'] ['+' '-']? ['0'-'9'] ['0'-'9' '_']* )? + +let regexp blanks = blank + +let regexp whitespace = (blank | newline) ? +let regexp underscore = "_" +let regexp tilde = "~" + +let regexp lident = lowercase identchar * + +let regexp uidnet = uppercase identchar * + +(** Handle string *) +let initial_string_buffer = Array.create 256 0 +let string_buff = ref initial_string_buffer +let string_index = ref 0 + +let reset_string_buffer () = + string_buff := initial_string_buffer; + string_index := 0 + +(** store a char to the buffer *) +let store_string_char c = + if !string_index >= Array.length (!string_buff) then begin + let new_buff = Array.create (Array.length (!string_buff) * 2) 0 in + Array.blit (!string_buff) 0 new_buff 0 (Array.length (!string_buff)); + string_buff := new_buff + end; + Array.unsafe_set (!string_buff) (!string_index) c; + incr string_index + +let get_stored_string () = + let s = Array.sub (!string_buff) 0 (!string_index) in + string_buff := initial_string_buffer; + s + + +let char_for_backslash = function + | 110 -> 10 (*'n' -> '\n'*) + | 116 -> 9 (*'t' -> '\t' *) + | 98 -> 8 (*'b' -> '\b'*) + | 114 -> 13 (*'r' -> '\r' *) + | c -> c +(** user should eat the first "\'"*) +let char_literal = lexer + | newline "'" -> + (Ulexing.lexeme_char lexbuf 0) + | [^ '\\' '\'' '\010' '\013'] "'" -> + (* here may return a unicode we use *) + (Ulexing.lexeme_char lexbuf 0) + | "\\" ['\\' '\'' '"' 'n' 't' 'b' 'r' ' '] "'" -> + (char_for_backslash (Ulexing.lexeme_char lexbuf 1 )) + | "\\" ['0'-'9'] ['0'-'9'] ['0'-'9'] "'" -> + let arr = Ulexing.sub_lexeme lexbuf 1 3 in + (** Char.code '0' = 48 *) + 100*(arr.(0)-48)+10*(arr.(1)-48)+arr.(2)-48 + | "\\" 'x' ['0'-'9' 'a'-'f' 'A'-'F'] ['0'-'9' 'a'-'f' 'A'-'F'] "'" -> + let arr = Ulexing.sub_lexeme lexbuf 2 2 in + let v1 = + if arr.(0) >= 97 + then (arr.(0)-87 ) * 16 + else if arr.(0) >= 65 + then (arr.(0)-55) * 16 + else (arr.(0) - 48) * 16 in + let v2 = + if arr.(1) >= 97 + then (arr.(1)-87 ) + else if arr.(1) >= 65 + then (arr.(1)-55) + else (arr.(1) - 48) in + (v1 + v2 ) + | "\\" _ -> + let (a,b) = Ulexing.loc lexbuf in + let l = Ulexing.sub_lexeme lexbuf 0 2 in + failwith + (Printf.sprintf + "expecting a char literal (%d,%d) while %d%d appeared" a b l.(0) l.(1)) + | _ -> + let (a,b) = Ulexing.loc lexbuf in + let l = Ulexing.lexeme lexbuf in + failwith + (Printf.sprintf + "expecting a char literal (%d,%d) while %d appeared" a b l.(0)) + +(** ocaml spuports multiple line string "a b \ + b" => interpreted as "a b b" + actually we are always operation on an int +*) +let rec string = lexer + |'"' -> () (* end *) + + | '\\' newline ([' ' '\t'] * ) -> + string lexbuf + + | '\\' ['\\' '\'' '"' 'n' 't' 'b' 'r' ' '] -> + store_string_char(char_for_backslash (Ulexing.lexeme_char lexbuf 1)); + string lexbuf + | '\\' ['0'-'9'] ['0'-'9'] ['0'-'9'] -> + let arr = Ulexing.sub_lexeme lexbuf 1 3 in + let code = 100*(arr.(0)-48)+10*(arr.(1)-48)+arr.(2)-48 in + store_string_char code ; + string lexbuf + | '\\' 'x' ['0'-'9' 'a'-'f' 'A'-'F'] ['0'-'9' 'a'-'f' 'A'-'F'] -> + let arr = Ulexing.sub_lexeme lexbuf 2 2 in + let v1 = + if arr.(0) >= 97 + then (arr.(0)-87 ) * 16 + else if arr.(0) >= 65 + then (arr.(0)-55) * 16 + else (arr.(0) - 48) * 16 in + let v2 = + if arr.(1) >= 97 + then (arr.(1)-87 ) + else if arr.(1) >= 65 + then (arr.(1)-55) + else (arr.(1) - 48) in + let code = (v1 + v2 ) in + store_string_char code ; + string lexbuf + | '\\' _ -> + let (a,b) = Ulexing.loc lexbuf in + let l = Ulexing.sub_lexeme lexbuf 0 2 in + failwith + (Printf.sprintf + "expecting a string literal (%d,%d) while %d%d appeared" a b l.(0) l.(1)) | (newline | eof ) -> + let (a,b) = Ulexing.loc lexbuf in + let l = Ulexing.lexeme lexbuf in + failwith + (Printf.sprintf + "expecting a string literal (%d,%d) while %d appeared" a b + l.(0)) + | _ -> + store_string_char (Ulexing.lexeme_char lexbuf 0); + string lexbuf +(** you should provide '"' as entrance *) +let string_literal lexbuf = + reset_string_buffer(); + string lexbuf; + get_stored_string() + +\end{bluecode} + +% $ + +% \lstinputlisting{/Users/bob/predefine_ulex.ml} + \end{enumerate} +\end{enumerate} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "master" +%%% End: diff --git a/library/caml-inspect.tex b/library/caml-inspect.tex new file mode 100644 index 0000000..58e2abb --- /dev/null +++ b/library/caml-inspect.tex @@ -0,0 +1,177 @@ + + +It's mainly used to debug programs or presentation. +\href{http://lambdamuesli.blogspot.com/}{blog} +\begin{enumerate} +\item usage + \begin{bluetext} +#require "inspect";; +open Inspect ;; + +Sexpr.(dump (test_data ())) +Sexpr.(dump dump) (** can dump any value, including closure *) +Dot.(dump_osx dump_osx) +\end{bluetext} + + + +\item \textit{module Dot} + \begin{bluetext} + dump + dump_to_file + dump_with_formatter + dump_osx + \end{bluetext} +\item \textit{module Sexpr} + \begin{bluetext} + dump + dump_to_file + dump_with_formatter + \end{bluetext} + +\item principle \\ + OCaml values all share a \textit{common low-level} representation. + The basic building block that is used by the runtime-system(which is + written in the C programming languag) to represent any value in the + OCaml universe is the value type. Values are always + \textit{word-sized}. A word is either 32 or 64 bits + wide(\textit{Sys.word\_size}) + + A value can either be a pointer to a block of values in the OCaml + heap, a pointer to an object outside of the heap, or an unboxed + integer. Naturally, blocks in the heap are garbage-collected. + + To distinguish between unboxed integers and pointers, the system uses + the least-significant bit of the value as a flag. If the LSB is set, + the value is unboxed. If the LSB is cleared, the value is a pointer to + some other region of memory. This encoding also explains why the int + type in OCaml is only 31 bits wide (63 bits wide on 64 bit platforms). + + + Since blocks in the heap are garbage-collected, they have strict + structure constraints. Information like the tag of a block and its + size(in words) is encoded in the header of each block. + + There are two categories of blocks with respect to the garbage collector: + \begin{enumerate} + \item Structured blocks \\ + May only contain well-formed values, as they are + recursively traversed by the garbage collector. + \item Raw blocks \\ + are not scanned by the garbage collector, and can thus + contain arbitrary values. + \end{enumerate} + Structured blocks have tag values lower than + \textit{Obj.no\_scan\_tag}, while raw blocks have tags equal or + greater than \textit{Obj.no\_scan\_tag}. + + + The type of a block is its tag, which is stored in the block header.(\textit{Obj.tag}) + + \begin{redcode} +Obj.(let f ()= repr |- tag in no_scan_tag, f () 0, f () [|1.;2.|], f +() (1,2) ,f ()[|1,2|]);; +\end{redcode} + +\begin{bluecode} +- : int * int * int * int * int = (251, 1000, 254, 0, 0) +\end{bluecode} + +\begin{redcode} +se_str "_tag" "Obj";; +\end{redcode} + +\begin{bluecode} + external tag : t -> int = "caml_obj_tag" + external set_tag : t -> int -> unit = "caml_obj_set_tag" + val lazy_tag : int + val closure_tag : int + val object_tag : int + val infix_tag : int + val forward_tag : int + val no_scan_tag : int + val abstract_tag : int + val string_tag : int + val double_tag : int + val double_array_tag : int + val custom_tag : int + val final_tag : int + val int_tag : int + val out_of_heap_tag : int + val unaligned_tag : int +\end{bluecode} + +\begin{enumerate} + +\item \textit{0 to Obj.no\_scan\_tag-1} + A structured block (an array of Caml objects). Each field is a value. +\item \textit{Obj.closure\_tag}: A closure representing a functional value. The +first word is a pointer to a piece of code, the remaining words are +values containing the environment. +\item \textit{Obj.string\_tag}: A character string. +\item \textit{Obj.double\_tag}: A double-precision floating-point number. +\item \textit{Obj.double\_array\_tag}: An array or record of double-precision +floating-point numbers. +\item \textit{Obj.abstract\_tag}: A block representing an abstract datatype. +\item \textit{Obj.custom\_tag}: A block representing an abstract datatype with + user-defined finalization, comparison, hashing, serialization and + deserialization functions attached +\item \textit{Obj.object\_tag}: A structured block representing an object. The first + field is a value that describes the class of the object. The second + field is a unique object id (see \textit{Oo.id}). The rest of the block + represents the variables of the object. +\item \textit{Obj.lazy\_tag, Obj.forward\_tag}: These two block types + are used by the runtime-system to implement lazy-evaluation. +\item \textit{Obj.infix\_tag}: A special block contained within a + closure block +\end{enumerate} + +\item representation + + For atomic types + \begin{enumerate} + \item int, char (ascii code) : Unboxed integer values + \item float : Blocks with tag \textit{Obj.dobule\_tag} + \item string : Blocks with tag \textit{Obj.string\_tag} + \item int32, int64, nativeint : Blocks with \textit{Obj.custom\_tag} + \end{enumerate} + For Tuples and records: Blocks with tag 0 + \begin{alternate} +Obj.((1,2) |> repr |> tag);; +- : int = 0 +\end{alternate} +For normal array(except float array), Blocks with tag 0 + +For Arrays and records of floats: Block with tag +\textit{Obj.double\_array\_tag} + +For concrete types, +\begin{enumerate} +\item Constant ctor : Represented by unboxed integers(0,1,...). +\item Non-Constant ctor: Block with a tag lower than + \textit{Obj.no\_scan\_tag} that encodes the constructor, numbered in + order of declaration, starting at 0. +\end{enumerate} + +For objects: Blocks with tag \textit{Obj.object\_tag}. The first field +refers to the class of the object and its associated method suite. The +second field contains a unique object ID. The remaining fields are the +instance variables of the object. + +For polymorphic variants: Variants are similar to constructed +terms. There are a few differences +\begin{enumerate} +\item Variant constructors are identified by their hash value +\item Non-constant variant constructors are not flattened. They are + always block of size 2, where the first field is the hash. The + second field can either contain a single value or a pointer to + another structured block(just like a tuple) +\end{enumerate} + +\end{enumerate} + + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "../master" +%%% End: diff --git a/library/mikmatch.tex b/library/mikmatch.tex new file mode 100644 index 0000000..ffdd841 --- /dev/null +++ b/library/mikmatch.tex @@ -0,0 +1,636 @@ + + + +Directly supported in toplevel +Regular expression \emph{share} their own namespace. +\begin{enumerate} +\item compile +\begin{bluetext} +"test.ml" : pp(camlp4o -parser pa_mikmatch_pcre.cma) + : pkg_mikmatch_pcre +-- myocamlbuild.ml use default +\end{bluetext} +\item toplevel +\begin{redcode} +ocaml +#camlp4o ;; +#require "mikmatch_pcre" ;; (* make sure to follow the order strictly *) +\end{redcode} +\item debug + + \begin{bluetext} +camlp4of -parser pa_mikmatch_pcre.cma -printer o test.ml +(* -no_comments does not work *) +\end{bluetext} + +\item structure \\ + regular expressions can be used to match strings, it must be preceded by + the RE keyword, or placed between slashes (/../). + + \begin{bluecode} + match ... with pattern -> ... + function pattern -> ... + try ... with pattern -> ... + let /regexp/ = expr in expr + let try (rec) let-bindings in expr with pattern-match + (only handles exception raised by let-bindings) + MACRO-NAME regexp -> expr ((FILTER | SPLIT) regexp) + + \end{bluecode} + + \begin{alternate} +let x = (function (RE digit+) -> true | _ -> false) "13232";; +val x : bool = true +# let x = (function (RE digit+) -> true | _ -> false) "1323a2";; +val x : bool = true +# let x = (function (RE digit+) -> true | _ -> false) "x1323a2";; +val x : bool = false +\end{alternate} + +\begin{bluecode} +let get_option () = match Sys.argv with + [| _ |] -> None + |[| _ ; RE (lower+ as key) "=" (_* as data) |] -> Some(key,data) + |_ -> failwith "Usage: myprog [key=val]";; +val get_option : unit -> (string * string) option = +\end{bluecode} + +\begin{alternate} +let option = try get_option () with Failure (RE "usage"~) -> None ;; +val option : (string * string) option = None +\end{alternate} + + +\item \textbf{sample regex} + built in regexes + \begin{bluetext} + lower, upper, alpha(lower|upper), digit, alnum, punct + graph(alnum|punct), blank,cntrl,xdigit,space + int,float + bol(beginning of line) + eol + any(except newline) + bos, eos + \end{bluetext} + \begin{alternate} +let f = (function (RE int as x : int) -> x ) "132";; +val f : int = 132 +let f = (function (RE float as x : float) -> x ) "132.012";; +val f : float = 132.012 +let f = (function (RE lower as x ) -> x ) "a";; +val f : string = "a" +let src = RE_PCRE int ;; +val src : string * 'a list = ("[+\\-]?(?:0(?:[Xx][0-9A-Fa-f]+|(?:[Oo][0-7]+|[Bb][01]+))|[0-9]+)", []) +let x = (function (RE _* bol "haha") -> true | _ -> false) "x\nhaha";; +val x : bool = true +\end{alternate} + +\begin{bluecode} +RE hello = "Hello!" +RE octal = ['0'-'7'] +RE octal1 = ["01234567"] +RE octal2 = ['0' '1' '2' '3' '4' '5' '6' '7'] +RE octal3 = ['0'-'4' '5'-'7'] +RE octal4 = digit # ['8' '9'] (* digit is a predefined set of characters *) +RE octal5 = "0" | ['1'-'7'] +RE octal6 = ['0'-'4'] | ['5'-'7'] +RE not_octal = [ ^ '0'-'7'] (* this matches any character but an octal digit *) +RE not_octal' = [ ^ octal] (* another way to write it *) +\end{bluecode} + +\begin{redcode} +RE paren' = "(" _* Lazy ")" +(* _ is wild pattern, paren is built in *) +let p = function (RE (paren' as x )) -> x ;; +\end{redcode} + +\begin{alternate} +p "(xx))";; +- : string = "(xx)" +# p "(x)x))";; +- : string = "(x)" +\end{alternate} + +\begin{bluecode} +RE anything = _* (* any string, as long as possible *) +RE anything' = _* Lazy (* any string, as short as possible *) +RE opt_hello = "hello"? (* matches hello if possible, or nothing *) +RE opt_hello' = "hello"? Lazy (* matches nothing if possible, or hello *) +RE num = digit+ (* a non-empty sequence of digits, as long as possible; + shortcut for: digit digit* *) +RE lazy_junk = _+ Lazy (* match one character then match any sequence + of characters and give up as early as possible *) + +RE at_least_one_digit = digit{1+} (* same as digit+ *) +RE at_least_three_digits = digit{3+} +RE three_digits = digit{3} +RE three_to_five_digits = digit{3-5} +RE lazy_three_to_five_digits = digit{3-5} Lazy + +let test s = match s with + RE "hello" -> true + | _ -> false +\end{bluecode} + + +It's important to know that matching process will try \textit{any} possible combination until +the pattern is matched. However the combinations are tried from left to right, and +repeats are either greedy or lazy. (greedy is default). laziness triggered by the presence +of the Lazy keyword. + +\item fancy features of regex + \begin{enumerate}[(a)] + \item normal + + \begin{redcode} +let x = match "hello world" with + RE "world" -> true + | _ -> false;; +\end{redcode} + + \begin{bluecode} +val x : bool = false + \end{bluecode} + +\item pattern match syntax + (the let constructs can be used directly with a + regexp pattern, but \textbf{let RE ... = ... }does not look nice, the + sandwich notation (/.../) has been introduced ) + + \begin{alternate} +Sys.ocaml_version;; +- : string = "3.12.1" +# RE num = digit + ;; +\end{alternate} + +\begin{redcode} + +RE num = digit + ;; + +let /(num as major : int ) "." (num as minor : int) + +( "." (num as patchlevel := fun s -> Some (int_of_string s)) +| ("" as patchlevel := fun s -> None )) + +( "+" (_* as additional_info := fun s -> Some s ) +| ("" as additional_info := fun s -> None )) eos + +/ = Sys.ocaml_version ;; + +\end{redcode} + +we always use \textbf{as} to extract the information. + +\begin{bluecode} +val additional_info : string option = None +val major : int = 3 +val minor : int = 12 +val patchlevel : int option = Some 1 +\end{bluecode} + + +\item File processing (Mikmatch.Text) + + \begin{bluecode} + val iter_lines_of_channel : (string -> unit) -> in_channel -> unit + val iter_lines_of_file : (string -> unit) -> string -> unit + val lines_of_channel : in_channel -> string list + val lines_of_file : string -> string list + val channel_contents : in_channel -> string + val file_contents : ?bin:bool -> string -> string + val save : string -> string -> unit + val save_lines : string -> string list -> unit + exception Skip + val map : ('a -> 'b) -> 'a list -> 'b list + val rev_map : ('a -> 'b) -> 'a list -> 'b list + val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b list -> 'a + val fold_right : ('a -> 'b -> 'b) -> 'a list -> 'b -> 'b + val map_lines_of_channel : (string -> 'a) -> in_channel -> 'a list + val map_lines_of_file : (string -> 'a) -> string -> 'a list +\end{bluecode} +\item \textbf{Mikmatch.Glob} (pretty useful) + + \begin{bluecode} + val scan : + ?absolute:bool -> + ?path:bool -> + ?root:string -> + ?nofollow:bool -> (string -> unit) -> (string -> bool) list -> unit + val lscan : + ?rev:bool -> + ?absolute:bool -> + ?path:bool -> + ?root:string list -> + ?nofollow:bool -> + (string list -> unit) -> (string -> bool) list -> unit + val list : + ?absolute:bool -> + ?path:bool -> + ?root:string -> + ?nofollow:bool -> ?sort:bool -> (string -> bool) list -> string list + val llist : + ?rev:bool -> + ?absolute:bool -> + ?path:bool -> + ?root:string list -> + ?nofollow:bool -> + ?sort:bool -> (string -> bool) list -> string list list + \end{bluecode} + + here we want to get \verb|~/.*/*.conf| file + X.list (predicates corresponding to each layer . + \begin{alternate} +let xs = let module X = Mikmatch.Glob in X.list ~root:"/Users/bob" [FILTER "." ; FILTER _* ".conf" eos ] ;; +val xs : string list = [".libfetion/libfetion.conf"] +\end{alternate} + +\begin{redcode} +let xs = + let module X = Mikmatch.Glob in + X.list ~root:"/Users/bob" [const true; FILTER _* ".pdf" eos ] + in print_int (List.length xs) ;; +\end{redcode} +\begin{bluecode} +455 +\end{bluecode} + + +\item Lazy or Greedy + + \begin{redcode} +match "acbde (result), blabla... " with +RE _* "(" (_* as x) ")" -> print_endline x | _ -> print_endline "Failed";; +\end{redcode} +\begin{bluecode} +result +\end{bluecode} + +\begin{redcode} + match "acbde (result),(bla)bla... " with + RE _* Lazy "(" (_* as x) ")" -> print_endline x | _ -> print_endline "Failed";; +\end{redcode} +\begin{bluecode} +result),(bla +\end{bluecode} + +\begin{alternate} +let / "a"? ("b" | "abc" ) as x / = "abc" ;; (* or patterns, the same as before*) +val x : string = "ab" +# let / "a"? Lazy ("b" | "abc" ) as x / = "abc" ;; +val x : string = "abc" +\end{alternate} + +In place conversions of the substrings can be performed, using +either the predefined converters \textit{int, float}, or custom converters + +\begin{alternate} +let z = match "123/456" with RE (digit+ as x : int ) "/" (digit+ as y : int) -> x ,y ;; +val z : int * int = (123, 456) +\end{alternate} + +Mixed pattern +\begin{alternate} +let z = match 123,45, "6789" with i,_, (RE digit+ as j : int) | j,i,_ -> i * j + 1;; +val z : int = 835048 +\end{alternate} + +\item Backreferences \\ + Previously matched substrings can be matched again using backreferences. + + \begin{alternate} +let z = match "abcabc" with RE _* as x !x -> x ;; +val z : string = "abc" +\end{alternate} + +\item Possessiveness prevent backtracking + + \begin{alternate} +let x = match "abc" with RE _* Possessive _ -> true | _ -> false;; +val x : bool = false + \end{alternate} + +\item macros + \begin{enumerate} + +\item FILTER macro + \begin{alternate} +let f = FILTER int eos;; +val f : ?share:bool -> ?pos:int -> string -> bool = +# f "32";; +- : bool = true +# f "32a";; +- : bool = false +\end{alternate} + +\item REPLACE macro + \begin{alternate} +let remove_comments = REPLACE "#" _* Lazy eol -> "" ;; +val remove_comments : ?pos:int -> string -> string = +# remove_comments "Hello #comment \n world #another comment" ;; +- : string = "Hello \n world " +let x = (REPLACE "," -> ";;" ) "a,b,c";; +val x : string = "a;;b;;c" +\end{alternate} + +\item REPLACE\_FIRST macro +\item SEARCH(\_FIRST) COLLECT COLLECTOBJ MACRO + + \begin{alternate} +let search_float = SEARCH_FIRST float as x : float -> x ;; +val search_float : ?share:bool -> ?pos:int -> string -> float = +search_float "bla bla -1.234e12 bla";; +- : float = -1.234e+12 +let get_numbers = COLLECT float as x : float -> x ;; +val get_numbers : ?pos:int -> string -> float list = +get_numbers "1.2 83 nan -inf 5e-10";; +- : float list = [1.2; 83.; nan; neg_infinity; 5e-10] +let read_file = Mikmatch.Text.map_lines_of_file (COLLECT float as x : float -> x );; +val read_file : string -> float list list = + +(** Negative assertions *) +let get_only_numbers = COLLECT < Not alnum . > (float as x : float) < . Not alnum > -> x + +let list_words = COLLECT (upper | lower)+ as x -> x ;; +val list_words : ?pos:int -> string -> string list = +# list_words "gshogh sghos sgho ";; +- : string list = ["gshogh"; "sghos"; "sgho"] +RE pair = "(" space* (digit+ as x : int) space* "," space* ( digit + as y : int ) space* ")";; + # let get_objlist = COLLECTOBJ pair;; +val get_objlist : ?pos:int -> string -> < x : int; y : int > list = + \end{alternate} +\item SPLIT macro + \begin{alternate} +let ys = (SPLIT space* [",;"] space* ) "a,b,c, d, zz;";; +val ys : string list = ["a"; "b"; "c"; "d"; "zz"] +let f = SPLIT space* [",;"] space* ;; +val f : ?full:bool -> ?pos:int -> string -> string list = +\end{alternate} + +Full is false by default. When true, it considers the regexp +as a separator between substrings even if the first or the last one +is empty. will add some whitespace trailins +\begin{alternate} +f ~full:true "a,b,c,d;" ;; +- : string list = ["a"; "b"; "c"; "d"; ""] +\end{alternate} +\item MAP macro (a weak lexer) (MAP regexp -> expr ) \\ + splits the given string into fragments: the fragments that do not match the pattern are returned as \textit{`Text s}. Fragments that match the pattern are replaced by the result of expr + +\begin{alternate} +let f = MAP ( "+" as x = `Plus ) -> x ;; +val f : ?pos:int -> ?full:bool -> string -> [> `Plus | `Text of string ] list = +let x = (MAP ',' -> `Sep ) "a,b,c";; +val x : [> `Sep | `Text of string ] list = [`Text "a"; `Sep; `Text "b"; `Sep; `Text "c"] +\end{alternate} + +\begin{redcode} +let f = MAP ( "+" as x = `Plus ) | ("-" as x = `Minus) | ("/" as x = `Div) + | ("*" as x = `Mul) | (digit+ as x := fun s -> `Int (int_of_string s)) + | (alpha [alpha digit] + as x := fun s -> `Ident s) -> x ;; +\end{redcode} + +\begin{bluecode} +val f : + ?pos:int -> + ?full:bool -> + string -> + [> `Div + | `Ident of string + | `Int of int + | `Minus + | `Mul + | `Plus + | `Text of string ] +list = +\end{bluecode} +\begin{redcode} +# f "+-*/";; +\end{redcode} + +\begin{bluecode} +- : [> `Div + | `Ident of string + | `Int of int + | `Minus + | `Mul + | `Plus + | `Text of string ] + list += +[`Text ""; `Plus; `Text ""; `Minus; `Text ""; `Mul; `Text ""; `Div; `Text ""] +\end{bluecode} + +\begin{bluecode} +let xs = Mikmatch.Text.map (function `Text (RE space* eos) -> raise Mikmatch.Text.Skip | token -> token) (f "+-*/");; +val xs : + [> `Div + | `Ident of string + | `Int of int + | `Minus + | `Mul + | `Plus + | `Text of string ] + list = [`Plus; `Minus; `Mul; `Div] +\end{bluecode} + + +\item lexer (ulex is faster and more elegant) + + \begin{bluecode} +let get_tokens = f |- Mikmatch.Text.map (function `Text (RE space* eos) +-> raise Mikmatch.Text.Skip | `Text x -> invalid_arg x | x +-> x) ;; + +val get_tokens : + string -> + [> `Div + | `Ident of string + | `Int of int + | `Minus + | `Mul + | `Plus + | `Text of string ] + list = + +get_tokens "a1+b3/45";; +- : [> `Div + | `Ident of string + | `Int of int + | `Minus + | `Mul + | `Plus + | `Text of string ] + list += [`Ident "a1"; `Plus; `Ident "b3"; `Div; `Int 45] +\end{bluecode} + +\item SEARCH macro (location) + + \begin{alternate} +let locate_arrows = SEARCH %pos1 "->" %pos2 -> Printf.printf "(%i-%i)" pos1 (pos2-1);; +val locate_arrows : ?pos:int -> string -> unit = +# locate_arrows "gshogho->ghso";; +(7-8)- : unit = () +let locate_tags = SEARCH "<" "/"? %tag_start (_* Lazy as tag_contents) %tag_end ">" -> Printf.printf "%s %i-%i" tag_contents tag_start (tag_end-1);; +\end{alternate} + +\end{enumerate} + +\item debug + \begin{alternate} +let src = RE_PCRE (float as x : float ) < . Not alnum > in print_endline (fst src);; +(? print_endline "success";; +success +\end{alternate} + + +\item zero-width assertions + + \begin{bluecode} +RE word = < Not alpha . > alpha+ < . Not alpha> +RE word' = < Not alpha . > alpha+ < Not alpha > +\end{bluecode} + +\begin{redcode} +RE triplet = +let print_triplets_of_letters = SEARCH triplet -> print_endline x +print_triplets_of_letters "helhgoshogho";; +\end{redcode} +\begin{bluecode} +hel +elh +lhg +hgo +gos +osh +sho +hog +ogh +gho +- : unit = () +\end{bluecode} +\begin{redcode} +(SEARCH alpha{3} as x -> print_endline x ) "hello world";; +\end{redcode} + +\begin{bluecode} +hel +wor +\end{bluecode} +\begin{redcode} +(SEARCH -> print_endline x ) "hello world";; +\end{redcode} +\begin{bluecode} +hel +ell +llo +wor +orl +rld +\end{bluecode} +\begin{redcode} +(SEARCH alpha{3} as x -> print_endline x ) ~pos:2 "hello world";; +\end{redcode} +\begin{bluecode} +llo +wor +\end{bluecode} + + + + + +\item dynamic regexp + + \begin{alternate} +let get_fild x = SEARCH_FIRST @x "=" (alnum* as y) -> y;; +val get_fild : string -> ?share:bool -> ?pos:int -> string -> string = +# get_fild "age" "age=29 ghos";; +- : string = "29" +\end{alternate} + + + +\item reuse \\ + using macro INCLUDE + +\item view patterns + + \begin{bluecode} +let view XY = fun obj -> try Some (obj#x, obj#y) with _ -> None ;; +val view_XY : < x : 'a; y : 'b; .. > -> ('a * 'b) option = +# let test_orign = function + %XY (0,0) :: _ -> true + |_ -> false +;; + val test_orign : < x : int; y : int; .. > list -> bool = + + +let view Positive = fun x -> x > 0 +let view Negative = fun x -> x <= 0 + +let test_positive_coords = function + %XY ( %Positive, %Positive ) -> true + | _ -> false + + (** lazy pattern is already supported in OCaml *) +let test x = match x with + lazy v -> v + +type 'a lazy_list = Empty | Cons of ('a * 'a lazy_list lazy_t) + + +let f = fun (Cons (_ , lazy (Cons (_, lazy (Empty)) ) )) -> true ;; +let f = fun %Cons (x1, %Cons (x2 %Empty)) -> true (* simpler *) +\end{bluecode} + + +implementation +let view X = f is translated into: + let view\_X = f + +Similarly, we have local views: +let view X = f in ... + +Given the nature of camlp4, this is the simplest solution that allows us to make views available to other modules, since they are just functions, with a standard name. When a view X is encountered in a pattern, it uses the view\_X function. The compiler will complain if doesn't have the right type, but not the preprocessor. + +About inline views: since views are simple functions, we could insert functions directly in patterns. I believe it would make the pattern really difficult to read, especially since views are expected to be most useful in already complex patterns. + + +About completeness checking: our definition of views doesn't allow the compiler to warn against incomplete or redundants pattern-matching. We have the same situation with regexps. What we define here are incomplete or overlapping views, which have a broader spectrum of applications than views which are defined as sum types. + +\item tiny use + \begin{alternate} + se (FILTER _* "map_lines_of_file" ) "Mikmatch";; + val map_lines_of_file : (string -> 'a) -> string -> 'a list + \end{alternate} + + +\begin{bluecode} +let _ = Mikmatch.map_lines_of_file + (function x -> + match x with + | RE "\xbegin{bluecode}" -> "\n" ^ x + | RE "\xend{bluecode}" -> x ^ ``\n'' + | _ -> x ) + "/Users/bob/SourceCode/Notes/ocaml-hacker.tex" + |> List.enum + |> File.write_lines "/Users/bob/SourceCode/Notes/ocaml-hacker-back-up.tex";; +\end{bluecode} + +\end{enumerate} + +\end{enumerate} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "../master" +%%% End: diff --git a/library/monad.tex b/library/monad.tex new file mode 100644 index 0000000..bb5c91a --- /dev/null +++ b/library/monad.tex @@ -0,0 +1,193 @@ + + +\begin{enumerate} +\item debug \\ + tags file +\begin{bluetext} + "monad_test.ml" : pp(camlp4o -parser pa_monad.cmo) + camlp4o -parser pa_monad.cmo monad_test.ml -printer o + + (** filter *) + + let a = perform let b = 3 in b + let bind x f = f x + let c = perform c <-- 3 ; c + (* output + let a = let b = 3 in b + let bind x f = f x + let c = bind 3 (fun c -> c) + *) + + + +let bind x f = List.concat (List.map f x) +let return x = [x] +let bind2 x f = List.concat (List.map f x) + +let c = perform + x <-- [1;2;3;4]; + y <-- [3;4;4;5]; + return (x+y) + + +let d = perform with bind2 in + x <-- [1;2;3;4]; + y <-- [3;4;4;5]; + return (x+y) + +let _ = List.iter print_int c +let _ = List.iter print_int d + +(* +let bind x f = List.concat (List.map f x) +let return x = [ x ] +let bind2 x f = List.concat (List.map f x) +let c = + bind [ 1; 2; 3; 4 ] + (fun x -> bind [ 3; 4; 4; 5 ] (fun y -> return (x + y))) +let d = + bind2 [ 1; 2; 3; 4 ] + (fun x -> bind2 [ 3; 4; 4; 5 ] (fun y -> return (x + y))) +let _ = List.iter print_int c +let _ = List.iter print_int d +*) + +\end{bluetext} + +\item translation rule \\ + it's simple. \textbf{perform} or \textbf{perform with bind in } then + it will translate all phrases ending with \textit{;}; \textit{x <-- + me;} will be translated into \textit{me >>= (fun x -> )}; +\textit{me;} will be translated into \textit{me >>= (fun \_ -> ... )} +you should refer \textit{pa\_monad.ml} for more details +\textit{perform with exp1 and exp2 in exp3} uses the first given +expression as bind and the second as match-failure function. +\textit{perform with module Mod in exp } use the function named bind +from module Mod. In addition ues the module's failwith in refutable patterns + +\begin{alternate} + let a = perform with (flip Option.bind) in a <-- Some 3; b<-- Some 32; Some (a+ b) ;; + val a : int option = Some 35 +\end{alternate} + +it will be translated into +\begin{bluetext} +let a = + flip Option.bind (Some 3) + (fun a -> flip Option.bind (Some 32) (fun b -> Some (a + b))) +\end{bluetext} +\item ParameterizedMonad \\ + +\begin{bluecode} +class ParameterizedMonad m where + return :: a -> m s s a + (>>=) :: m s1 s2 t -> (t -> m s2 s3 a) -> m s1 s3 a + +data Writer cat s1 s2 a = Writer {runWriter :: (a, cat s1 s2)} + +instance (Category cat) => ParameterizedMonad (Writer cat) where + return a = Writer (a,id) + m >>= k = Writer $ let + (a,w) = runWriter + (b,w') = runWriter (k a) + in (b, w' . w) + +\end{bluecode} +% $ + +\begin{bluetext} + +module State : sig + type ('a,'s) t = 's -> ('a * 's) + val return : 'a -> ('a,'s) t + val bind : ('a,'s ) t -> ('a -> ('b,'s) t ) -> ('b,'s) t + val put : 's -> (unit,'s) t + val get : ('s,'s) t +end = struct + type ('a,'s) t = ('s -> ('a * 's)) + let return v = fun s -> (v,s) + let bind (v : ('a,'s) t) (f : 'a -> ('b,'s) t) : ('b,'s) t = fun s -> + let a,s' = v s in + let a',s'' = f a s' in + (a',s'') + let put s = fun _ -> (), s + let get = fun s -> s,s +end + + +module PState : sig + type ('a, 'b, 'c) t = 'b -> 'a * 'c + val return : 'a -> ('a,'b,'b) t + val bind : ('b,'a,'c)t -> ('b -> ('d,'c, 'e) t ) -> ('d,'a,'e) t + val put : 's -> (unit,'b,'s)t + val get : ('s,'s,'s) t +end = struct + type ('a,'s1,'s2) t = 's1 -> ('a * 's2) + let return v = fun s -> (v,s) + let bind v f = fun s -> + let a,s' = v s in + let a',s'' = f a s' in + (a',s'') + let put s = fun _ -> (), s + let get = fun s -> s,s +end + +\end{bluetext} + +\begin{redcode} +let v = State.(perform x <-- return 1 ; y <-- return 2 ; let _ = +print_int (x+y) in return (x+y) );; +\end{redcode} +\begin{bluecode} +val v : (int, '_a) State.t = +\end{bluecode} + +\begin{redcode} +let v = State.(perform x <-- return 1 ; y <-- return 2 ; z <-- get ; put (x+y+z) ; + z<-- get ; let _ = print_int z in return (x+y+z));; +\end{redcode} +\begin{bluecode} + val v : (int, int) State.t = +\end{bluecode} + +\begin{alternate} + v 3;; +6- : int * int = (9, 6) +\end{alternate} + + +\begin{redcode} +let v = PState.(perform x <-- return 1 ; y <-- return 2 ; z <-- get ; put (x+y+z) ; +z<-- get ; let _ = print_int z in return (x+y+z));; +\end{redcode} + +\begin{bluecode} +val v : (int, int, int) PState.t = +\end{bluecode} + +\begin{alternate} +v 3 ;; +6- : int * int = (9, 6) +\end{alternate} + +\begin{redcode} +let v = PState.(perform x <-- return 1 ; y <-- return 2 ; z <-- get ; +put (string_of_int (x+y+z)) ; return z );; +\end{redcode} +\begin{bluecode} +val v : (int, int, string) PState.t = +\end{bluecode} + +\begin{alternate} +# v 3;; +v 3;; +- : int * string = (3, "6") +\end{alternate} + +\end{enumerate} + + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "../master" +%%% End: diff --git a/library/ocaml-graph.tex b/library/ocaml-graph.tex new file mode 100644 index 0000000..3afe6b6 --- /dev/null +++ b/library/ocaml-graph.tex @@ -0,0 +1,346 @@ + +ocamlgraph is a sex library which deserve well-documentation. + +\begin{enumerate} +\item simple usage in the module \textit{Graph.Pack.Digraph} + + \begin{redcode} + se_str "label" "PDig.V";; +\end{redcode} + +\begin{bluecode} + type label = int + val create : label -> t + val label : t -> label +\end{bluecode} + +Follow this file, you could know how to build a graph, +A nice trick, to bind open command to use graphviz to open the +file, then it will do the sync automatically +and you can \textit{\#u ``open *.dot''}, so nice +\begin{bluecode} +module PDig = Graph.Pack.Digraph +let g = PDig.Rand.graph ~v:10 ~e:20 () +(* get dot output file *) +let _ = PDig.dot_output g "g.dot" +(* use gnu/gv to show *) +let show_g = PDig.display_with_gv;; + +let g_closure = PDig.transitive_closure ~reflexive:true g +(** get a transitive closure *) +let _ = PDig.dot_output g_closure "g_closure.dot" + +let g_mirror = PDig.mirror g +let _ = PDig.dot_output g_mirror "g_mirror.dot" + +let g1 = PDig.create () +let g2 = PDig.create () + + +let [v1;v2;v3;v4;v5;v6;v7 ] = List.map PDig.V.create [1;2;3;4;5;6;7] + +let _ = PDig.( begin + add_edge g1 v1 v2; + add_edge g1 v2 v1; + add_edge g1 v1 v3; + add_edge g1 v2 v3; + add_edge g1 v5 v3; + add_edge g1 v6 v6; + add_vertex g1 v4 + end +) + +let _ = PDig.( begin + add_edge g2 v1 v2; + add_edge g2 v2 v3; + add_edge g2 v1 v4; + add_edge g2 v3 v6; + add_vertex g2 v7 +end +) + +let g_intersect = PDig.intersect g1 g2 +let g_union = PDig.union g1 g2 + +let _ = + PDig.( + let f = dot_output in begin + f g1 "g1.dot"; + f g2 "g2.dot"; + f g_intersect "g_intersect.dot"; + f g_union "g_union.dot" + end + ) +\end{bluecode} + + \begin{redcode} +module PDig = Graph.Pack.Digraph +sub_modules "PDig";; +\end{redcode} + +\begin{bluecode} + module V : + module E : + module Mark : + module Dfs : + module Bfs : + module Marking : sig val dfs : t -> unit val has_cycle : t -> bool end + module Classic : + module Rand : + module Components : + module PathCheck : + module Topological : + \end{bluecode} + Different modules have corresponding algorithms +\item hierachical + + \begin{redcode} +sub_modules "Graph" (** output too big *) +\end{redcode} +idea. can we draw a tree graph for this?? + +Graph.Pack requires its label being integer +\begin{redcode} +sub_modules "Graph.Pack" +\end{redcode} + +\begin{bluecode} + module Digraph : + module V : + module E : + module Mark : + module Dfs : + module Bfs : + module Marking : + module Classic : + module Rand : + module Components : + module PathCheck : + module Topological : + module Graph : + module V : + module E : + module Mark : + module Dfs : + module Bfs : + module Marking : + module Classic : + module Rand : + module Components : + module PathCheck : + module Topological : +\end{bluecode} + +\item hierachical + for undirected graph + +\begin{alternate} +Graph.Pack.(Di)Graph +Undirected imperative graphs with edges and vertices labeled with integer. +Graph.Imperative.Matrix.(Di)Graph +Imperative Undirected Graphs implemented with adjacency matrices, of course integer(Matrix) + + +Graph.Imperative.(Di)Graph +Imperative Undirected Graphs. +Graph.Persistent.(Di)Graph +Persistent Undirected Graphs. +\end{alternate} + +Here we have functor \textit{Graph.Imperative.Graph.Concrete}, +\textit{Graph.Imperative.Graph.Abstract}, +\textit{Graph.Imperative.Graph.ConcreteLabeled}, +\textit{Graph.Imperative.Graph.AbstractLabeled} + + +we see that +\begin{bluetext} +module Abstract: +functor (V : Sig.ANY_TYPE) -> Sig.IM with type V.label = V.t and type E.label = unit + +module AbstractLabeled: +functor (V : Sig.ANY_TYPE) -> +functor (E : Sig.ORDERED_TYPE_DFT) -> Sig.IM with type V.label = V.t and type E.label = E.t + +module Concrete: +functor (V : Sig.COMPARABLE) -> Sig.I with type V.t = V.t and type V.label = V.t and type E.t = V.t * V.t + and type E.label = unit + +module ConcreteBidirectional: +functor (V : Sig.COMPARABLE) -> Sig.I with type V.t = V.t and type V.label = V.t and type E.t = V.t * V.t +and type E.label = unit + +module ConcreteBidirectionalLabeled: +functor (V : Sig.COMPARABLE) -> +functor (E : Sig.ORDERED_TYPE_DFT) -> Sig.I with type V.t = V.t and type V.label = V.t +and type E.t = V.t * E.t * V.t and type E.label = E.t + +module ConcreteLabeled: +functor (V : Sig.COMPARABLE) -> +functor (E : Sig.ORDERED_TYPE_DFT) -> Sig.I with type V.t = V.t and type V.label = V.t + and type E.t = V.t * E.t * V.t and type E.label = E.t + + \end{bluetext} + + so, as soon as you want to label your vertices with strings and your edges with floats, you should use functor. Take ConcreteLabeled as an example + + + \begin{bluetext} +module V = struct + type t = string + let compare = Pervasives.compare + let hash = Hashtbl.hash + let equal = (=) +end +module E = struct + type t = float + let compare = Pervasives.compare + let default = 0.0 +end +module X = Graph.Imperative.Graph.ConcreteLabeled (V) (E);; +module Y = Graph.Imperative.Digraph.ConcreteLabeled (V) (E);; + +(** + val add_edge : t -> vertex -> vertex -> unit + val add_edge_e : t -> edge -> unit + val remove_edge : t -> vertex -> vertex -> unit + val remove_edge_e : t -> edge -> unit + + Not only that, but the V and E structure will work for + persistent and directed graphs that are concretelabeled, + and you can switch by replacing Imperative with Persistent + , and Graph with Digraph. + *) + +module W = struct + type label = float + type t = float + let weight x = x (* edge label -> weight *) + let compare = Pervasives.compare + let add = (+.) + let zero = 0.0 + end + +module Dijkstra = Graph.Path.Dijkstra (X) (W);; + +\end{bluetext} +\item another example (edge unlabeled, directed graph) + + \begin{bluecode} +open Graph +module V = struct + type t = string + let compare = Pervasives.compare + let hash = Hashtbl.hash + let equal = (=) +end +module G = Imperative.Digraph.Concrete (V) +let g = G.create () +let _ = G.(begin + add_edge g "a" "b"; + add_edge g "a" "c"; + add_edge g "b" "d"; + add_edge g "b" "d" +end ) +module Display = struct + include G + let vertex_name v = (V.label v) + let graph_attributes _ = [] + let default_vertex_attributes _ = [] + let vertex_attributes _ = [] + let default_edge_attributes _ = [] + let edge_attributes _ = [] + let get_subgraph _ = None +end +module Dot_ = Graphviz.Dot(Display) +let _ = + let out = open_out "g.dot" in + finally (fun _ -> close_out out) (fun g -> + let fmt = + (out |> Format.formatter_of_output) in + Dot_.fprint_graph fmt g ) g + \end{bluecode} + It seems that Graphviz.Dot is used to display directed graph, Graphviz.Neato is used to display undirected graph. + + here is a useful example to visualize the output generated by ocamldep. + \begin{bluecode} +open Batteries_uni +open Graph +module V = struct + type t = string + let compare = Pervasives.compare + let hash = Hashtbl.hash + let equal = (=) +end +module StringDigraph = Imperative.Digraph.Concrete (V) +module Display = struct + include StringDigraph + open StringDigraph + let vertex_name v = (V.label v) + let graph_attributes _ = [] + let default_vertex_attributes _ = [] + let vertex_attributes _ = [] + let default_edge_attributes _ = [] + let edge_attributes _ = [] + let get_subgraph _ = None +end + +module DisplayG = Graphviz.Dot(Display) + + +let dot_output g file = + let out = open_out file in + finally (fun _ -> close_out out) (fun g -> + let fmt = + (out |> Format.formatter_of_output) in + DisplayG.fprint_graph fmt g ) g + + +let g_of_edges edges = StringDigraph.( + let g = create () in + let _ = Stream.iter (fun (a,b) -> add_edge g a b) edges in + g +) + +let line = "path.ml: Hashtbl Heap List Queue Sig Util" + +let edges_of_line line = + try + let (a::b::res) = + Pcre.split ~pat:".ml:" ~max:3 line in + let v_a = + let _ = a.[0]<- Char.uppercase a.[0] in + a in + let v_bs = + (Pcre.split ~pat:"\\s+" b ) |> List.filter (fun x -> x <> "") in + let edges = List.map (fun v_b -> v_b, v_a ) v_bs in + edges + with exn -> invalid_arg ("edges_of_line : " ^ line) + +let lines_stream_of_channel chan = Stream.from (fun _ -> + try Some (input_line chan) with End_of_file -> None );; + +let edges_of_channel chan = Stream.( + let lines = lines_stream_of_channel chan in + let edges = lines |> map (edges_of_line |- of_list) |> concat in + edges +) + + +let graph_of_channel = edges_of_channel |- g_of_edges + +let _ = + let stdin = open_in Sys.argv.(1) in + let g = graph_of_channel stdin in begin + Printf.printf "writing to dump.dot\n"; + dot_output g "dump.dot"; + Printf.printf "finished\n" + end +\end{bluecode} + + +\end{enumerate} +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "../master" +%%% End: diff --git a/library/pcre.tex b/library/pcre.tex new file mode 100644 index 0000000..7df44b8 --- /dev/null +++ b/library/pcre.tex @@ -0,0 +1,18 @@ + +pcre is more flexible and dynamic compared with using mikmatch, but +more verbose however. +\begin{enumerate} +\item Backreferences + + \begin{redcode} + Pcre.(pmatch ~flags: [] ~pat:"('\\w)(\\s*)->(\\s*)\\1" " 'a -> 'a");; +\end{redcode} +\begin{bluecode} +bool = true +\end{bluecode} + +\end{enumerate} +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "../master" +%%% End: diff --git a/master.aux b/master.aux new file mode 100644 index 0000000..3b31ecb --- /dev/null +++ b/master.aux @@ -0,0 +1,92 @@ +\relax +\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument} +\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined +\global\let\oldcontentsline\contentsline +\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}} +\global\let\oldnewlabel\newlabel +\gdef\newlabel#1#2{\newlabelxx{#1}#2} +\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}} +\AtEndDocument{\ifx\hyper@anchor\@undefined +\let\contentsline\oldcontentsline +\let\newlabel\oldnewlabel +\fi} +\fi} +\global\let\hyper@last\relax +\gdef\HyperFirstAtBeginDocument#1{#1} +\providecommand\HyField@AuxAddToFields[1]{} +\@writefile{toc}{\contentsline {section}{\numberline {1}Preface}{4}{section.1}} +\@writefile{toc}{\contentsline {section}{\numberline {2}platform}{5}{section.2}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}ocamlbuild}{5}{subsection.2.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}godi}{7}{subsection.2.2}} +\newlabel{sec:godi}{{2.2}{7}{godi\relax }{subsection.2.2}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}ocamlfind}{7}{subsection.2.3}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.4}toplevel}{8}{subsection.2.4}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.5}git}{9}{subsection.2.5}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.6}lexing-ulex-ocamllex}{9}{subsection.2.6}} +\newlabel{sec:parsing-lexing-1}{{2.6}{9}{lexing-ulex-ocamllex\relax }{subsection.2.6}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.7}ocamlyacc or menhir}{16}{subsection.2.7}} +\newlabel{sec:ocamlyacc}{{2.7}{16}{ocamlyacc or menhir\relax }{subsection.2.7}{}} +\@writefile{toc}{\contentsline {section}{\numberline {3}camlp4}{25}{section.3}} +\newlabel{sec:camlp4}{{3}{25}{camlp4\relax }{section.3}{}} +\@writefile{toc}{\contentsline {section}{\numberline {4}practical parts}{61}{section.4}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}batteries}{61}{subsection.4.1}} +\@writefile{toc}{\contentsline {paragraph}{syntax extension}{61}{section*.2}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.1}Dev}{61}{subsubsection.4.1.1}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.2}BOLT}{61}{subsubsection.4.1.2}} +\newlabel{sec:bolt}{{4.1.2}{61}{BOLT\relax }{subsubsection.4.1.2}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Mikmatch}{61}{subsection.4.2}} +\newlabel{sec:mikmatch}{{4.2}{61}{Mikmatch\relax }{subsection.4.2}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.3}pcre}{69}{subsection.4.3}} +\newlabel{sec:pcre}{{4.3}{69}{pcre\relax }{subsection.4.3}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.4}objsize}{69}{subsection.4.4}} +\newlabel{sec:objsize}{{4.4}{69}{objsize\relax }{subsection.4.4}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.5}pa-do}{69}{subsection.4.5}} +\newlabel{sec:pa-do}{{4.5}{69}{pa-do\relax }{subsection.4.5}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.6}caml-inspect}{69}{subsection.4.6}} +\newlabel{sec:caml-inspect}{{4.6}{69}{caml-inspect\relax }{subsection.4.6}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.7}ocamlgraph}{72}{subsection.4.7}} +\newlabel{sec:ocamlgraph}{{4.7}{72}{ocamlgraph\relax }{subsection.4.7}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.8}Modules}{77}{subsection.4.8}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.9}pa-monad}{78}{subsection.4.9}} +\newlabel{sec:pa-monad}{{4.9}{78}{pa-monad\relax }{subsection.4.9}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.10}delimited continuations}{81}{subsection.4.10}} +\newlabel{sec:cont-delim-cont}{{4.10}{81}{delimited continuations\relax }{subsection.4.10}{}} +\@writefile{toc}{\contentsline {section}{\numberline {5}Runtime}{84}{section.5}} +\newlabel{sec:runtime}{{5}{84}{Runtime\relax }{section.5}{}} +\@writefile{toc}{\contentsline {section}{\numberline {6}GC}{87}{section.6}} +\newlabel{sec:gc}{{6}{87}{GC\relax }{section.6}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.1}ocamlrun}{91}{subsection.6.1}} +\newlabel{sec:ocamlrun}{{6.1}{91}{ocamlrun\relax }{subsection.6.1}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.2}complex language features}{91}{subsection.6.2}} +\newlabel{sec:compl-lang-feat}{{6.2}{91}{complex language features\relax }{subsection.6.2}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.2.1}stream expression}{91}{subsubsection.6.2.1}} +\@writefile{toc}{\contentsline {section}{\numberline {7}subtle bugs}{94}{section.7}} +\newlabel{sec:subtle-bugs}{{7}{94}{subtle bugs\relax }{section.7}{}} +\@writefile{toc}{\contentsline {section}{\numberline {8}interoperating with C}{94}{section.8}} +\newlabel{sec:inter-with-c}{{8}{94}{interoperating with C\relax }{section.8}{}} +\@writefile{toc}{\contentsline {section}{\numberline {9}Book}{94}{section.9}} +\@writefile{toc}{\contentsline {subsection}{\numberline {9.1}Developing Applications with Objective Caml}{94}{subsection.9.1}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.1.1}chap7 Development Tools}{102}{subsubsection.9.1.1}} +\newlabel{sec:chap7-devel-tools}{{9.1.1}{102}{chap7 Development Tools\relax }{subsubsection.9.1.1}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {9.2}Ocaml for scientists}{105}{subsection.9.2}} +\newlabel{sec:ocaml-scientists}{{9.2}{105}{Ocaml for scientists\relax }{subsection.9.2}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {9.3}caltech ocaml book}{106}{subsection.9.3}} +\newlabel{sec:caltech-ocaml-book}{{9.3}{106}{caltech ocaml book\relax }{subsection.9.3}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {9.4}The functional approach to programming}{111}{subsection.9.4}} +\newlabel{sec:funct-appr-progr}{{9.4}{111}{The functional approach to programming\relax }{subsection.9.4}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {9.5}practical ocaml}{111}{subsection.9.5}} +\newlabel{sec:practical-ocaml}{{9.5}{111}{practical ocaml\relax }{subsection.9.5}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {9.6}hol-light}{111}{subsection.9.6}} +\newlabel{sec:hol-light}{{9.6}{111}{hol-light\relax }{subsection.9.6}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {9.7}UNIX system programming in ocaml}{111}{subsection.9.7}} +\newlabel{sec:unix-syst-progr}{{9.7}{111}{UNIX system programming in ocaml\relax }{subsection.9.7}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.7.1}chap1}{111}{subsubsection.9.7.1}} +\newlabel{sec:chap1}{{9.7.1}{111}{chap1\relax }{subsubsection.9.7.1}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.7.2}chap2}{113}{subsubsection.9.7.2}} +\newlabel{sec:chap2}{{9.7.2}{113}{chap2\relax }{subsubsection.9.7.2}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {9.8}practical ocaml}{119}{subsection.9.8}} +\newlabel{sec:practical-ocaml}{{9.8}{119}{practical ocaml\relax }{subsection.9.8}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {9.9}tricks}{120}{subsection.9.9}} +\newlabel{sec:tricks}{{9.9}{120}{tricks\relax }{subsection.9.9}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {9.10}ocaml blogs}{123}{subsection.9.10}} +\newlabel{sec:ocaml-blogs}{{9.10}{123}{ocaml blogs\relax }{subsection.9.10}{}} diff --git a/master.dvi b/master.dvi new file mode 100644 index 0000000..051e166 Binary files /dev/null and b/master.dvi differ diff --git a/master.html b/master.html new file mode 100644 index 0000000..9bd0148 --- /dev/null +++ b/master.html @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/master.log b/master.log new file mode 100644 index 0000000..9d10137 --- /dev/null +++ b/master.log @@ -0,0 +1,1247 @@ +This is pdfTeX, Version 3.1415926-1.40.11 (TeX Live 2010) (format=pdflatex 2010.10.24) 26 DEC 2011 12:08 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**\input master.tex +(./master.tex (/usr/local/texlive/2010/texmf-dist/tex/latex/base/article.cls +Document Class: article 2007/10/19 v1.4h Standard LaTeX document class +(/usr/local/texlive/2010/texmf-dist/tex/latex/base/size12.clo +File: size12.clo 2007/10/19 v1.4h Standard LaTeX file (size option) +) +\c@part=\count79 +\c@section=\count80 +\c@subsection=\count81 +\c@subsubsection=\count82 +\c@paragraph=\count83 +\c@subparagraph=\count84 +\c@figure=\count85 +\c@table=\count86 +\abovecaptionskip=\skip41 +\belowcaptionskip=\skip42 +\bibindent=\dimen102 +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/base/inputenc.sty +Package: inputenc 2008/03/30 v1.1d Input encoding file +\inpenc@prehook=\toks14 +\inpenc@posthook=\toks15 + +(/usr/local/texlive/2010/texmf/tex/latex/html/latin9.def +File: latin1.def 1998/03/05 v0.97 Input encoding file(test version: still liabl +e to change) +)) +(/usr/local/texlive/2010/texmf-dist/tex/latex/geometry/geometry.sty +Package: geometry 2010/07/13 v5.5 Page Geometry + +(/usr/local/texlive/2010/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 1999/03/16 v1.13 key=value parser (DPC) +\KV@toks@=\toks16 +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/oberdiek/ifpdf.sty +Package: ifpdf 2010/01/28 v2.1 Provides the ifpdf switch (HO) +Package ifpdf Info: pdfTeX in pdf mode detected. +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/oberdiek/ifvtex.sty +Package: ifvtex 2010/03/01 v1.5 Switches for detecting VTeX and its modes (HO) +Package ifvtex Info: VTeX not detected. +) +\Gm@cnth=\count87 +\Gm@cntv=\count88 +\c@Gm@tempcnt=\count89 +\Gm@bindingoffset=\dimen103 +\Gm@wd@mp=\dimen104 +\Gm@odd@mp=\dimen105 +\Gm@even@mp=\dimen106 +\Gm@layoutwidth=\dimen107 +\Gm@layoutheight=\dimen108 +\Gm@layouthoffset=\dimen109 +\Gm@layoutvoffset=\dimen110 +\Gm@dimlist=\toks17 +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/amsmath/amsmath.sty +Package: amsmath 2000/07/18 v2.13 AMS math features +\@mathmargin=\skip43 + +For additional information on amsmath, use the `?' option. +(/usr/local/texlive/2010/texmf-dist/tex/latex/amsmath/amstext.sty +Package: amstext 2000/06/29 v2.01 + +(/usr/local/texlive/2010/texmf-dist/tex/latex/amsmath/amsgen.sty +File: amsgen.sty 1999/11/30 v2.0 +\@emptytoks=\toks18 +\ex@=\dimen111 +)) +(/usr/local/texlive/2010/texmf-dist/tex/latex/amsmath/amsbsy.sty +Package: amsbsy 1999/11/29 v1.2d +\pmbraise@=\dimen112 +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/amsmath/amsopn.sty +Package: amsopn 1999/12/14 v2.01 operator names +) +\inf@bad=\count90 +LaTeX Info: Redefining \frac on input line 211. +\uproot@=\count91 +\leftroot@=\count92 +LaTeX Info: Redefining \overline on input line 307. +\classnum@=\count93 +\DOTSCASE@=\count94 +LaTeX Info: Redefining \ldots on input line 379. +LaTeX Info: Redefining \dots on input line 382. +LaTeX Info: Redefining \cdots on input line 467. +\Mathstrutbox@=\box26 +\strutbox@=\box27 +\big@size=\dimen113 +LaTeX Font Info: Redeclaring font encoding OML on input line 567. +LaTeX Font Info: Redeclaring font encoding OMS on input line 568. +\macc@depth=\count95 +\c@MaxMatrixCols=\count96 +\dotsspace@=\muskip10 +\c@parentequation=\count97 +\dspbrk@lvl=\count98 +\tag@help=\toks19 +\row@=\count99 +\column@=\count100 +\maxfields@=\count101 +\andhelp@=\toks20 +\eqnshift@=\dimen114 +\alignsep@=\dimen115 +\tagshift@=\dimen116 +\tagwidth@=\dimen117 +\totwidth@=\dimen118 +\lineht@=\dimen119 +\@envbody=\toks21 +\multlinegap=\skip44 +\multlinetaggap=\skip45 +\mathdisplay@stack=\toks22 +LaTeX Info: Redefining \[ on input line 2666. +LaTeX Info: Redefining \] on input line 2667. +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/amsfonts/amssymb.sty +Package: amssymb 2009/06/22 v3.00 + +(/usr/local/texlive/2010/texmf-dist/tex/latex/amsfonts/amsfonts.sty +Package: amsfonts 2009/06/22 v3.00 Basic AMSFonts support +\symAMSa=\mathgroup4 +\symAMSb=\mathgroup5 +LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold' +(Font) U/euf/m/n --> U/euf/b/n on input line 96. +)) +(/usr/local/texlive/2010/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR) + +(/usr/local/texlive/2010/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2009/02/05 v1.0o Standard LaTeX Graphics (DPC,SPQR) + +(/usr/local/texlive/2010/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 1999/03/16 v1.09 sin cos tan (DPC) +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/latexconfig/graphics.cfg +File: graphics.cfg 2010/04/23 v1.9 graphics configuration of TeX Live +) +Package graphics Info: Driver file: pdftex.def on input line 91. + +(/usr/local/texlive/2010/texmf-dist/tex/latex/pdftex-def/pdftex.def +File: pdftex.def 2010/02/14 v0.04n Graphics/color for pdfTeX +\Gread@gobject=\count102 +)) +\Gin@req@height=\dimen120 +\Gin@req@width=\dimen121 +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/float/float.sty +Package: float 2001/11/08 v1.3d Float enhancements (AL) +\c@float@type=\count103 +\float@exts=\toks23 +\float@box=\box28 +\@float@everytoks=\toks24 +\@floatcapt=\box29 +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/tools/array.sty +Package: array 2008/09/09 v2.4c Tabular extension package (FMi) +\col@sep=\dimen122 +\extrarowheight=\dimen123 +\NC@list=\toks25 +\extratabsurround=\skip46 +\backup@length=\skip47 +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty +(/usr/local/texlive/2010/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty +(/usr/local/texlive/2010/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.te +x +\pgfutil@everybye=\toks26 +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def +) (/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex +Package: pgfrcs 2008/02/20 v2.00 (rcs-revision 1.21) +)) +Package: pgf 2008/01/15 v2.00 (rcs-revision 1.12) + (/usr/local/texlive/2010/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty +(/usr/local/texlive/2010/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex +Package: pgfsys 2008/02/07 v2.00 (rcs-revision 1.31) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex +\pgfkeys@pathtoks=\toks27 +\pgfkeys@temptoks=\toks28 +) +\pgf@x=\dimen124 +\pgf@y=\dimen125 +\pgf@xa=\dimen126 +\pgf@ya=\dimen127 +\pgf@xb=\dimen128 +\pgf@yb=\dimen129 +\pgf@xc=\dimen130 +\pgf@yc=\dimen131 +\c@pgf@counta=\count104 +\c@pgf@countb=\count105 +\c@pgf@countc=\count106 +\c@pgf@countd=\count107 +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg +File: pgf.cfg 2008/01/13 (rcs-revision 1.6) +) +Package pgfsys Info: Driver file for pgf: pgfsys-pdftex.def on input line 885. + +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.d +ef +File: pgfsys-pdftex.def 2007/12/20 (rcs-revision 1.20) + +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-p +df.def +File: pgfsys-common-pdf.def 2007/12/17 (rcs-revision 1.8) +))) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath. +code.tex +File: pgfsyssoftpath.code.tex 2008/01/23 (rcs-revision 1.6) +\pgfsyssoftpath@smallbuffer@items=\count108 +\pgfsyssoftpath@bigbuffer@items=\count109 +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol. +code.tex +File: pgfsysprotocol.code.tex 2006/10/16 (rcs-revision 1.4) +)) (/usr/local/texlive/2010/texmf-dist/tex/latex/xcolor/xcolor.sty +Package: xcolor 2007/01/21 v2.11 LaTeX color extensions (UK) + +(/usr/local/texlive/2010/texmf-dist/tex/latex/latexconfig/color.cfg +File: color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive +) +Package xcolor Info: Driver file: pdftex.def on input line 225. +Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1337. +Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1341. +Package xcolor Info: Model `RGB' extended on input line 1353. +Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1355. +Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1356. +Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1357. +Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1358. +Package xcolor Info: Model `Gray' substituted by `gray' on input line 1359. +Package xcolor Info: Model `wave' substituted by `hsb' on input line 1360. +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex +Package: pgfcore 2008/01/15 v2.00 (rcs-revision 1.6) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex +\pgfmath@box=\box30 +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex +\pgfmath@stack=\toks29 +\c@pgfmath@parsecounta=\count110 +\c@pgfmath@parsecountb=\count111 +\c@pgfmath@parsecountc=\count112 +\pgfmath@parsex=\dimen132 +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/math/pgfmathoperations.code +.tex +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/math/pgfmathtrig.code.tex) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/math/pgfmathrnd.code.tex)) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/math/pgfmathbase.code.tex)) +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.co +de.tex +File: pgfcorepoints.code.tex 2008/02/03 (rcs-revision 1.13) +\pgf@picminx=\dimen133 +\pgf@picmaxx=\dimen134 +\pgf@picminy=\dimen135 +\pgf@picmaxy=\dimen136 +\pgf@pathminx=\dimen137 +\pgf@pathmaxx=\dimen138 +\pgf@pathminy=\dimen139 +\pgf@pathmaxy=\dimen140 +\pgf@xx=\dimen141 +\pgf@xy=\dimen142 +\pgf@yx=\dimen143 +\pgf@yy=\dimen144 +\pgf@zx=\dimen145 +\pgf@zy=\dimen146 +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconst +ruct.code.tex +File: pgfcorepathconstruct.code.tex 2008/02/13 (rcs-revision 1.14) +\pgf@path@lastx=\dimen147 +\pgf@path@lasty=\dimen148 +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage +.code.tex +File: pgfcorepathusage.code.tex 2008/01/23 (rcs-revision 1.11) +\pgf@shorten@end@additional=\dimen149 +\pgf@shorten@start@additional=\dimen150 +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.co +de.tex +File: pgfcorescopes.code.tex 2008/01/15 (rcs-revision 1.26) +\pgfpic=\box31 +\pgf@hbox=\box32 +\pgf@layerbox@main=\box33 +\pgf@picture@serial@count=\count113 +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicst +ate.code.tex +File: pgfcoregraphicstate.code.tex 2007/12/12 (rcs-revision 1.8) +\pgflinewidth=\dimen151 +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransform +ations.code.tex +File: pgfcoretransformations.code.tex 2008/02/04 (rcs-revision 1.10) +\pgf@pt@x=\dimen152 +\pgf@pt@y=\dimen153 +\pgf@pt@temp=\dimen154 +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.cod +e.tex +File: pgfcorequick.code.tex 2006/10/11 (rcs-revision 1.2) +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.c +ode.tex +File: pgfcoreobjects.code.tex 2006/10/11 (rcs-revision 1.2) +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathproce +ssing.code.tex +File: pgfcorepathprocessing.code.tex 2008/01/23 (rcs-revision 1.7) +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.co +de.tex +File: pgfcorearrows.code.tex 2007/06/07 (rcs-revision 1.8) +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.cod +e.tex +File: pgfcoreshade.code.tex 2007/12/10 (rcs-revision 1.9) +\pgf@max=\dimen155 +\pgf@sys@shading@range@num=\count114 +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.cod +e.tex +File: pgfcoreimage.code.tex 2008/01/15 (rcs-revision 1.1) +\pgfexternal@startupbox=\box34 +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.co +de.tex +File: pgfcorelayers.code.tex 2008/01/15 (rcs-revision 1.1) +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretranspare +ncy.code.tex +File: pgfcoretransparency.code.tex 2008/01/17 (rcs-revision 1.2) +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns. +code.tex +File: pgfcorepatterns.code.tex 2008/01/15 (rcs-revision 1.1) +))) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.cod +e.tex +File: pgfmoduleshapes.code.tex 2008/02/13 (rcs-revision 1.4) +\pgfnodeparttextbox=\box35 +\toks@savedmacro=\toks30 +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code. +tex +File: pgfmoduleplot.code.tex 2008/01/15 (rcs-revision 1.1) +\pgf@plotwrite=\write3 +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version +-0-65.sty +Package: pgfcomp-version-0-65 2007/07/03 v2.00 (rcs-revision 1.7) +\pgf@nodesepstart=\dimen156 +\pgf@nodesepend=\dimen157 +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version +-1-18.sty +Package: pgfcomp-version-1-18 2007/07/23 v2.00 (rcs-revision 1.1) +)) +(/usr/local/texlive/2010/texmf-dist/tex/latex/pgf/utilities/pgffor.sty +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex +Package: pgffor 2007/11/07 v2.00 (rcs-revision 1.8) +\pgffor@iter=\dimen158 +\pgffor@skip=\dimen159 +)) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.cod +e.tex +Package: tikz 2008/02/13 v2.00 (rcs-revision 1.27) + +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothan +dlers.code.tex +File: pgflibraryplothandlers.code.tex 2007/03/09 v2.00 (rcs-revision 1.9) +\pgf@plot@mark@count=\count115 +\pgfplotmarksize=\dimen160 +) +\tikz@lastx=\dimen161 +\tikz@lasty=\dimen162 +\tikz@lastxsaved=\dimen163 +\tikz@lastysaved=\dimen164 +\tikzleveldistance=\dimen165 +\tikzsiblingdistance=\dimen166 +\tikz@figbox=\box36 +\tikz@tempbox=\box37 +\tikztreelevel=\count116 +\tikznumberofchildren=\count117 +\tikznumberofcurrentchild=\count118 +\tikz@fig@count=\count119 + +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.cod +e.tex +File: pgfmodulematrix.code.tex 2008/01/15 (rcs-revision 1.1) +\pgfmatrixcurrentrow=\count120 +\pgfmatrixcurrentcolumn=\count121 +\pgf@matrix@numberofcolumns=\count122 +) +\tikz@expandcount=\count123 + +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie +s/tikzlibrarytopaths.code.tex +File: tikzlibrarytopaths.code.tex 2008/01/09 v2.00 (rcs-revision 1.1) +))) +(/usr/local/texlive/2010/texmf-dist/tex/latex/tools/enumerate.sty +Package: enumerate 1999/03/05 v3.00 enumerate extensions (DPC) +\@enLab=\toks31 +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/lm/lmodern.sty +Package: lmodern 2009/10/30 v1.6 Latin Modern Fonts +LaTeX Font Info: Overwriting symbol font `operators' in version `normal' +(Font) OT1/cmr/m/n --> OT1/lmr/m/n on input line 22. +LaTeX Font Info: Overwriting symbol font `letters' in version `normal' +(Font) OML/cmm/m/it --> OML/lmm/m/it on input line 23. +LaTeX Font Info: Overwriting symbol font `symbols' in version `normal' +(Font) OMS/cmsy/m/n --> OMS/lmsy/m/n on input line 24. +LaTeX Font Info: Overwriting symbol font `largesymbols' in version `normal' +(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 25. +LaTeX Font Info: Overwriting symbol font `operators' in version `bold' +(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 26. +LaTeX Font Info: Overwriting symbol font `letters' in version `bold' +(Font) OML/cmm/b/it --> OML/lmm/b/it on input line 27. +LaTeX Font Info: Overwriting symbol font `symbols' in version `bold' +(Font) OMS/cmsy/b/n --> OMS/lmsy/b/n on input line 28. +LaTeX Font Info: Overwriting symbol font `largesymbols' in version `bold' +(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 29. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal' +(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 31. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `normal' +(Font) OT1/cmss/m/n --> OT1/lmss/m/n on input line 32. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal' +(Font) OT1/cmr/m/it --> OT1/lmr/m/it on input line 33. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `normal' +(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 34. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold' +(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 35. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold' +(Font) OT1/cmss/bx/n --> OT1/lmss/bx/n on input line 36. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold' +(Font) OT1/cmr/bx/it --> OT1/lmr/bx/it on input line 37. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold' +(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 38. +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/base/fontenc.sty +Package: fontenc 2005/09/27 v1.99g Standard LaTeX package + +(/usr/local/texlive/2010/texmf-dist/tex/latex/base/t1enc.def +File: t1enc.def 2005/09/27 v1.99g Standard LaTeX file +LaTeX Font Info: Redeclaring font encoding T1 on input line 43. +)) +(/usr/local/texlive/2010/texmf-dist/tex/latex/base/textcomp.sty +Package: textcomp 2005/09/27 v1.99g Standard LaTeX package +Package textcomp Info: Sub-encoding information: +(textcomp) 5 = only ISO-Adobe without \textcurrency +(textcomp) 4 = 5 + \texteuro +(textcomp) 3 = 4 + \textohm +(textcomp) 2 = 3 + \textestimated + \textcurrency +(textcomp) 1 = TS1 - \textcircled - \t +(textcomp) 0 = TS1 (full) +(textcomp) Font families with sub-encoding setting implement +(textcomp) only a restricted character set as indicated. +(textcomp) Family '?' is the default used for unknown fonts. +(textcomp) See the documentation for details. +Package textcomp Info: Setting ? sub-encoding to TS1/1 on input line 71. + +(/usr/local/texlive/2010/texmf-dist/tex/latex/base/ts1enc.def +File: ts1enc.def 2001/06/05 v3.0e (jk/car/fm) Standard LaTeX file +) +LaTeX Info: Redefining \oldstylenums on input line 266. +Package textcomp Info: Setting cmr sub-encoding to TS1/0 on input line 281. +Package textcomp Info: Setting cmss sub-encoding to TS1/0 on input line 282. +Package textcomp Info: Setting cmtt sub-encoding to TS1/0 on input line 283. +Package textcomp Info: Setting cmvtt sub-encoding to TS1/0 on input line 284. +Package textcomp Info: Setting cmbr sub-encoding to TS1/0 on input line 285. +Package textcomp Info: Setting cmtl sub-encoding to TS1/0 on input line 286. +Package textcomp Info: Setting ccr sub-encoding to TS1/0 on input line 287. +Package textcomp Info: Setting ptm sub-encoding to TS1/4 on input line 288. +Package textcomp Info: Setting pcr sub-encoding to TS1/4 on input line 289. +Package textcomp Info: Setting phv sub-encoding to TS1/4 on input line 290. +Package textcomp Info: Setting ppl sub-encoding to TS1/3 on input line 291. +Package textcomp Info: Setting pag sub-encoding to TS1/4 on input line 292. +Package textcomp Info: Setting pbk sub-encoding to TS1/4 on input line 293. +Package textcomp Info: Setting pnc sub-encoding to TS1/4 on input line 294. +Package textcomp Info: Setting pzc sub-encoding to TS1/4 on input line 295. +Package textcomp Info: Setting bch sub-encoding to TS1/4 on input line 296. +Package textcomp Info: Setting put sub-encoding to TS1/5 on input line 297. +Package textcomp Info: Setting uag sub-encoding to TS1/5 on input line 298. +Package textcomp Info: Setting ugq sub-encoding to TS1/5 on input line 299. +Package textcomp Info: Setting ul8 sub-encoding to TS1/4 on input line 300. +Package textcomp Info: Setting ul9 sub-encoding to TS1/4 on input line 301. +Package textcomp Info: Setting augie sub-encoding to TS1/5 on input line 302. +Package textcomp Info: Setting dayrom sub-encoding to TS1/3 on input line 303. +Package textcomp Info: Setting dayroms sub-encoding to TS1/3 on input line 304. + +Package textcomp Info: Setting pxr sub-encoding to TS1/0 on input line 305. +Package textcomp Info: Setting pxss sub-encoding to TS1/0 on input line 306. +Package textcomp Info: Setting pxtt sub-encoding to TS1/0 on input line 307. +Package textcomp Info: Setting txr sub-encoding to TS1/0 on input line 308. +Package textcomp Info: Setting txss sub-encoding to TS1/0 on input line 309. +Package textcomp Info: Setting txtt sub-encoding to TS1/0 on input line 310. +Package textcomp Info: Setting futs sub-encoding to TS1/4 on input line 311. +Package textcomp Info: Setting futx sub-encoding to TS1/4 on input line 312. +Package textcomp Info: Setting futj sub-encoding to TS1/4 on input line 313. +Package textcomp Info: Setting hlh sub-encoding to TS1/3 on input line 314. +Package textcomp Info: Setting hls sub-encoding to TS1/3 on input line 315. +Package textcomp Info: Setting hlst sub-encoding to TS1/3 on input line 316. +Package textcomp Info: Setting hlct sub-encoding to TS1/5 on input line 317. +Package textcomp Info: Setting hlx sub-encoding to TS1/5 on input line 318. +Package textcomp Info: Setting hlce sub-encoding to TS1/5 on input line 319. +Package textcomp Info: Setting hlcn sub-encoding to TS1/5 on input line 320. +Package textcomp Info: Setting hlcw sub-encoding to TS1/5 on input line 321. +Package textcomp Info: Setting hlcf sub-encoding to TS1/5 on input line 322. +Package textcomp Info: Setting pplx sub-encoding to TS1/3 on input line 323. +Package textcomp Info: Setting pplj sub-encoding to TS1/3 on input line 324. +Package textcomp Info: Setting ptmx sub-encoding to TS1/4 on input line 325. +Package textcomp Info: Setting ptmj sub-encoding to TS1/4 on input line 326. +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/hyperref/hyperref.sty +Package: hyperref 2010/06/18 v6.81g Hypertext links for LaTeX + +(/usr/local/texlive/2010/texmf-dist/tex/generic/oberdiek/ltxcmds.sty +Package: ltxcmds 2010/04/26 v1.7 LaTeX kernel commands for general use (HO) +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty +Package: kvsetkeys 2010/03/01 v1.9 Key value parser (HO) + +(/usr/local/texlive/2010/texmf-dist/tex/generic/oberdiek/infwarerr.sty +Package: infwarerr 2010/04/08 v1.3 Providing info/warning/message (HO) +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/oberdiek/etexcmds.sty +Package: etexcmds 2010/01/28 v1.3 Prefix for e-TeX command names (HO) +Package etexcmds Info: Could not find \expanded. +(etexcmds) That can mean that you are not using pdfTeX 1.50 or +(etexcmds) that some package has redefined \expanded. +(etexcmds) In the latter case, load this package earlier. +)) +(/usr/local/texlive/2010/texmf-dist/tex/generic/oberdiek/pdfescape.sty +Package: pdfescape 2010/03/01 v1.9 Provides hex, PDF name and string conversion +s (HO) + +(/usr/local/texlive/2010/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty +Package: pdftexcmds 2010/04/01 v0.9 Utility functions of pdfTeX for LuaTeX (HO) + + +(/usr/local/texlive/2010/texmf-dist/tex/generic/oberdiek/ifluatex.sty +Package: ifluatex 2010/03/01 v1.3 Provides the ifluatex switch (HO) +Package ifluatex Info: LuaTeX not detected. +) +Package pdftexcmds Info: LuaTeX not detected. +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +)) +(/usr/local/texlive/2010/texmf-dist/tex/generic/ifxetex/ifxetex.sty +Package: ifxetex 2009/01/23 v0.5 Provides ifxetex conditional +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/oberdiek/hycolor.sty +Package: hycolor 2009/12/12 v1.6 Color options of hyperref/bookmark (HO) + +(/usr/local/texlive/2010/texmf-dist/tex/latex/oberdiek/xcolor-patch.sty +Package: xcolor-patch 2009/12/12 xcolor patch +)) +(/usr/local/texlive/2010/texmf-dist/tex/latex/oberdiek/letltxmacro.sty +Package: letltxmacro 2008/06/24 v1.3 Let assignment for LaTeX macros (HO) +) +\@linkdim=\dimen167 +\Hy@linkcounter=\count124 +\Hy@pagecounter=\count125 + +(/usr/local/texlive/2010/texmf-dist/tex/latex/hyperref/pd1enc.def +File: pd1enc.def 2010/06/18 v6.81g Hyperref: PDFDocEncoding definition (HO) +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/oberdiek/intcalc.sty +Package: intcalc 2007/09/27 v1.1 Expandable integer calculations (HO) +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/latexconfig/hyperref.cfg +File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/oberdiek/kvoptions.sty +Package: kvoptions 2010/02/22 v3.7 Keyval support for LaTeX options (HO) +) +Package hyperref Info: Hyper figures OFF on input line 3658. +Package hyperref Info: Link nesting OFF on input line 3663. +Package hyperref Info: Hyper index ON on input line 3666. +Package hyperref Info: Plain pages OFF on input line 3673. +Package hyperref Info: Backreferencing OFF on input line 3678. + +Implicit mode ON; LaTeX internals redefined +Package hyperref Info: Bookmarks ON on input line 3874. +(/usr/local/texlive/2010/texmf/tex/latex/html/url.sty +Package: url 1999/03/02 ver 1.4 Verb mode for urls, email addresses, and file + names +) +LaTeX Info: Redefining \url on input line 4159. + +(/usr/local/texlive/2010/texmf-dist/tex/generic/oberdiek/bitset.sty +Package: bitset 2007/09/28 v1.0 Data type bit set (HO) + +(/usr/local/texlive/2010/texmf-dist/tex/generic/oberdiek/bigintcalc.sty +Package: bigintcalc 2007/11/11 v1.1 Expandable big integer calculations (HO) +)) +\Fld@menulength=\count126 +\Field@Width=\dimen168 +\Fld@charsize=\dimen169 +\Field@toks=\toks32 +Package hyperref Info: Hyper figures OFF on input line 5137. +Package hyperref Info: Link nesting OFF on input line 5142. +Package hyperref Info: Hyper index ON on input line 5145. +Package hyperref Info: backreferencing OFF on input line 5152. +Package hyperref Info: Link coloring OFF on input line 5157. +Package hyperref Info: Link coloring with OCG OFF on input line 5162. +Package hyperref Info: PDF/A mode OFF on input line 5167. +LaTeX Info: Redefining \ref on input line 5207. +LaTeX Info: Redefining \pageref on input line 5211. + +(/usr/local/texlive/2010/texmf-dist/tex/generic/oberdiek/atbegshi.sty +Package: atbegshi 2010/03/25 v1.12 At begin shipout hook (HO) +) +\Hy@abspage=\count127 +\c@Item=\count128 +\c@Hfootnote=\count129 +) +* hyperref using default driver hpdftex * +(/usr/local/texlive/2010/texmf-dist/tex/latex/hyperref/hpdftex.def +File: hpdftex.def 2010/06/18 v6.81g Hyperref driver for pdfTeX + +(/usr/local/texlive/2010/texmf-dist/tex/latex/oberdiek/atveryend.sty +Package: atveryend 2010/03/24 v1.5 Hooks at very end of document (HO) +Package atveryend Info: \enddocument detected (standard). +) +\Fld@listcount=\count130 +\c@bookmark@seq@number=\count131 + +(/usr/local/texlive/2010/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty +Package: rerunfilecheck 2010/03/16 v1.6 Rerun checks for auxiliary files (HO) + +(/usr/local/texlive/2010/texmf-dist/tex/generic/oberdiek/uniquecounter.sty +Package: uniquecounter 2009/12/18 v1.1 Provides unlimited unique counter (HO) +) +Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2 +71. +) +\Hy@SectionHShift=\skip48 +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/listings/listings.sty +\lst@mode=\count132 +\lst@gtempboxa=\box38 +\lst@token=\toks33 +\lst@length=\count133 +\lst@currlwidth=\dimen170 +\lst@column=\count134 +\lst@pos=\count135 +\lst@lostspace=\dimen171 +\lst@width=\dimen172 +\lst@newlines=\count136 +\lst@lineno=\count137 +\lst@maxwidth=\dimen173 + +(/usr/local/texlive/2010/texmf-dist/tex/latex/listings/lstmisc.sty +File: lstmisc.sty 2007/02/22 1.4 (Carsten Heinz) +\c@lstnumber=\count138 +\lst@skipnumbers=\count139 +\lst@framebox=\box39 +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/listings/listings.cfg +File: listings.cfg 2007/02/22 1.4 listings configuration +)) +Package: listings 2007/02/22 1.4 (Carsten Heinz) + +(/usr/local/texlive/2010/texmf-dist/tex/latex/tools/verbatim.sty +Package: verbatim 2003/08/22 v1.5q LaTeX2e package for verbatim enhancements +\every@verbatim=\toks34 +\verbatim@line=\toks35 +\verbatim@in@stream=\read1 +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty +Package: fancyvrb 2008/02/07 + +Style option: `fancyvrb' v2.7a, with DG/SPQR fixes, and firstline=lastline fix +<2008/02/07> (tvz) +\FV@CodeLineNo=\count140 +\FV@InFile=\read2 +\FV@TabBox=\box40 +\c@FancyVerbLine=\count141 +\FV@StepNumber=\count142 +\FV@OutFile=\write4 +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/wasysym/wasysym.sty +Package: wasysym 2003/10/30 v2.0 Wasy-2 symbol support package +\symwasy=\mathgroup6 +LaTeX Font Info: Overwriting symbol font `wasy' in version `bold' +(Font) U/wasy/m/n --> U/wasy/b/n on input line 90. +) +(./master.aux + +LaTeX Warning: Label `sec:practical-ocaml' multiply defined. + +) +\openout1 = `master.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 100. +LaTeX Font Info: ... okay on input line 100. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 100. +LaTeX Font Info: ... okay on input line 100. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 100. +LaTeX Font Info: ... okay on input line 100. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 100. +LaTeX Font Info: ... okay on input line 100. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 100. +LaTeX Font Info: ... okay on input line 100. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 100. +LaTeX Font Info: ... okay on input line 100. +LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 100. +LaTeX Font Info: Try loading font information for TS1+cmr on input line 100. + + (/usr/local/texlive/2010/texmf-dist/tex/latex/base/ts1cmr.fd +File: ts1cmr.fd 1999/05/25 v2.5h Standard LaTeX font definitions +) +LaTeX Font Info: ... okay on input line 100. +LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 100. +LaTeX Font Info: ... okay on input line 100. +LaTeX Font Info: Try loading font information for T1+lmr on input line 100. + +(/usr/local/texlive/2010/texmf-dist/tex/latex/lm/t1lmr.fd +File: t1lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +*geometry* driver: auto-detecting +*geometry* detected driver: pdftex +*geometry* verbose mode - [ preamble ] result: +* driver: pdftex +* paper: letterpaper +* layout: <same size as paper> +* layoutoffset:(h,v)=(0.0pt,0.0pt) +* modes: +* h-part:(L,W,R)=(72.26999pt, 469.75502pt, 72.26999pt) +* v-part:(T,H,B)=(72.26999pt, 650.43001pt, 72.26999pt) +* \paperwidth=614.295pt +* \paperheight=794.96999pt +* \textwidth=469.75502pt +* \textheight=650.43001pt +* \oddsidemargin=0.0pt +* \evensidemargin=0.0pt +* \topmargin=-37.0pt +* \headheight=12.0pt +* \headsep=25.0pt +* \topskip=12.0pt +* \footskip=30.0pt +* \marginparwidth=35.0pt +* \marginparsep=10.0pt +* \columnsep=10.0pt +* \skip\footins=10.8pt plus 4.0pt minus 2.0pt +* \hoffset=0.0pt +* \voffset=0.0pt +* \mag=1000 +* \@twocolumnfalse +* \@twosidefalse +* \@mparswitchfalse +* \@reversemarginfalse +* (1in=72.27pt=25.4mm, 1cm=28.453pt) + +(/usr/local/texlive/2010/texmf-dist/tex/context/base/supp-pdf.mkii +[Loading MPS to PDF converter (version 2006.09.02).] +\scratchcounter=\count143 +\scratchdimen=\dimen174 +\scratchbox=\box41 +\nofMPsegments=\count144 +\nofMParguments=\count145 +\everyMPshowfont=\toks36 +\MPscratchCnt=\count146 +\MPscratchDim=\dimen175 +\MPnumerator=\count147 +\everyMPtoPDFconversion=\toks37 +) (/usr/local/texlive/2010/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty +Package: epstopdf-base 2010/02/09 v2.5 Base part for package epstopdf + +(/usr/local/texlive/2010/texmf-dist/tex/latex/oberdiek/grfext.sty +Package: grfext 2007/09/30 v1.0 Managing graphics extensions (HO) +) +Package grfext Info: Graphics extension search list: +(grfext) [.png,.pdf,.jpg,.mps,.jpeg,.jbig2,.jb2,.PNG,.PDF,.JPG,.JPE +G,.JBIG2,.JB2,.eps] +(grfext) \AppendGraphicsExtensions on input line 436. + +(/usr/local/texlive/2010/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv +e +)) +\AtBeginShipoutBox=\box42 +Package hyperref Info: Link coloring OFF on input line 100. + +(/usr/local/texlive/2010/texmf-dist/tex/latex/hyperref/nameref.sty +Package: nameref 2010/04/30 v2.40 Cross-referencing by name of section + +(/usr/local/texlive/2010/texmf-dist/tex/latex/oberdiek/refcount.sty +Package: refcount 2008/08/11 v3.1 Data extraction from references (HO) +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/oberdiek/gettitlestring.sty +Package: gettitlestring 2009/12/18 v1.3 Cleanup title references (HO) +) +\c@section@level=\count148 +) +LaTeX Info: Redefining \ref on input line 100. +LaTeX Info: Redefining \pageref on input line 100. +LaTeX Info: Redefining \nameref on input line 100. + +(./master.out) (./master.out) +\@outlinefile=\write5 +\openout5 = `master.out'. + +\c@lstlisting=\count149 +LaTeX Font Info: Try loading font information for OT1+lmr on input line 106. + + +(/usr/local/texlive/2010/texmf-dist/tex/latex/lm/ot1lmr.fd +File: ot1lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +LaTeX Font Info: Try loading font information for OML+lmm on input line 106. + + +(/usr/local/texlive/2010/texmf-dist/tex/latex/lm/omllmm.fd +File: omllmm.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +LaTeX Font Info: Try loading font information for OMS+lmsy on input line 106 +. + +(/usr/local/texlive/2010/texmf-dist/tex/latex/lm/omslmsy.fd +File: omslmsy.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +LaTeX Font Info: Try loading font information for OMX+lmex on input line 106 +. + +(/usr/local/texlive/2010/texmf-dist/tex/latex/lm/omxlmex.fd +File: omxlmex.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <14.4> on input line 106. +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <10> on input line 106. +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <7> on input line 106. +LaTeX Font Info: Try loading font information for U+msa on input line 106. + +(/usr/local/texlive/2010/texmf-dist/tex/latex/amsfonts/umsa.fd +File: umsa.fd 2009/06/22 v3.00 AMS symbols A +) +LaTeX Font Info: Try loading font information for U+msb on input line 106. + +(/usr/local/texlive/2010/texmf-dist/tex/latex/amsfonts/umsb.fd +File: umsb.fd 2009/06/22 v3.00 AMS symbols B +) +LaTeX Font Info: Try loading font information for U+wasy on input line 106. + +(/usr/local/texlive/2010/texmf-dist/tex/latex/wasysym/uwasy.fd +File: uwasy.fd 2003/10/30 v2.0 Wasy-2 symbol font definitions +) [1 + +{/usr/local/texlive/2010/texmf-var/fonts/map/pdftex/updmap/pdftex.map}] (./mast +er.toc +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <12> on input line 3. +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <8> on input line 3. +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <6> on input line 3. + +[2]) +\tf@toc=\write6 +\openout6 = `master.toc'. + + [3] [4] (./ob.tex +LaTeX Font Info: Try loading font information for T1+lmtt on input line 35. + +(/usr/local/texlive/2010/texmf-dist/tex/latex/lm/t1lmtt.fd +File: t1lmtt.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +Overfull \hbox (14.33064pt too wide) in paragraph at lines 62--64 +[]\T1/lmr/m/n/12 .mll .mly sup-ported by de-fault, \T1/lmr/m/it/12 men-hir (-us +e-menhir) \T1/lmr/m/n/12 or add a line \T1/lmr/m/it/12 true : use_menhir + [] + +[5] +Underfull \hbox (badness 10000) in paragraph at lines 83--92 + + [] + + +Overfull \hbox (26.19572pt too wide) in paragraph at lines 124--128 +[] \T1/lmtt/m/n/12 flag ["ocaml"; "doc"] & S[A"-keep-code"]; \T1/lmr/m/n/12 oca +mldep seems to be \T1/lmr/bx/n/12 lightweight + [] + + +Overfull \hbox (5.36957pt too wide) in paragraph at lines 129--150 +[]\T1/lmtt/m/n/12 <pa_*r.{ml,cmo,byte}> : pkg_dynlink , pp(camlp4rf ), use_caml +p4_full + [] + + +Overfull \hbox (91.81961pt too wide) in paragraph at lines 129--150 +[]\T1/lmtt/m/n/12 <*_r.ml>:syntax_camlp4r,pkg_camlp4.quotations.r,pkg_camlp4.ma +cro,pkg_camlp4.extend + [] + + +Overfull \hbox (32.37569pt too wide) in paragraph at lines 129--150 +\T1/lmr/m/n/12 ``[]\T1/lmtt/m/n/12 pa_vector_r.ml\T1/lmr/m/n/12 '':[]\T1/lmtt/m +/n/12 syntax_camlp4r\T1/lmr/m/n/12 ,[]\T1/lmtt/m/n/12 pkg_camlp4.quotations.r\T +1/lmr/m/n/12 , []\T1/lmtt/m/n/12 pkg_camlp4.extend\T1/lmr/m/n/12 , + [] + + +Overfull \hbox (23.89458pt too wide) in paragraph at lines 129--150 +[]\T1/lmtt/m/n/12 <pa_vector_r.{cmo,byte,native}>:pkg_dynlink,use_camlp4_full,p +kg_sexplib + [] + + +Overfull \hbox (36.24458pt too wide) in paragraph at lines 129--150 +[]\T1/lmtt/m/n/12 "wiki_r.ml" or "wiki2_r.ml" : pp(camlp4rf -filter meta), use +_camlp4_full + [] + +[6]) (./godi.tex +LaTeX Font Info: Try loading font information for TS1+lmr on input line 5. + (/usr/local/texlive/2010/texmf-dist/tex/latex/lm/ts1lmr.fd +File: ts1lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +Underfull \hbox (badness 10000) in paragraph at lines 7--8 + + [] + +) (./of.tex [7]) (./toplevel.tex [8]) (./lex.tex +Overfull \hbox (19.61354pt too wide) in paragraph at lines 21--25 +[]\T1/lmr/m/n/12 use de-fault my-ocaml-build.ml, like \T1/lmr/m/it/12 ln -s /m +y-ocaml-build.ml \T1/lmr/m/n/12 make a sym-bol link []\T1/lmtt/m/n/12 pa_ulex.c +ma + [] + +[9] [10] [11] [12] [13]) (./ocaml-lex.tex +Underfull \hbox (badness 10000) in paragraph at lines 17--18 + + [] + +[14] [15] +Underfull \hbox (badness 10000) in paragraph at lines 93--95 + + [] + +) (./ocaml-yacc.tex +Underfull \hbox (badness 10000) in paragraph at lines 5--6 + + [] + +[16] [17] +Overfull \hbox (15.58354pt too wide) in paragraph at lines 137--139 +[]\T1/lmr/m/n/12 we write driver func-tion in lexer for con-ve-nience, since le +xer de-pends on yacc. \T1/lmr/m/it/12 Printex.print + [] + +[18] [19] +Overfull \hbox (10.37354pt too wide) in paragraph at lines 257--259 +[]\T1/lmr/m/it/12 symbol_start_pos \T1/lmr/m/n/12 is set to the be-gin-ning of +the left-most com-po-nent, and \T1/lmr/m/it/12 sym-bol_end_pos + [] + +[20] [21] +Underfull \hbox (badness 10000) in paragraph at lines 386--387 + + [] + +[22] [23] [24]) +Underfull \hbox (badness 10000) in paragraph at lines 158--159 + + [] + +(./camlp4/camlp4_tutorial.tex [25] +Underfull \hbox (badness 10000) in paragraph at lines 70--72 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 73--79 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 80--82 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 83--93 + + [] + +[26] [27] +Underfull \hbox (badness 10000) in paragraph at lines 188--189 + + [] + + +Overfull \hbox (15.40361pt too wide) in paragraph at lines 190--192 +[]\T1/lmr/m/n/12 Struct di-rec-tory has mod-ule Loc, Dyn-loader Func-tor, Camlp +4Ast.Make, To-ken.Make, + [] + +[28] [29] [30]) (./camlp4/revised_syntax.tex [31] [32] [33]) +(./camlp4/experiment.tex [34]) (./camlp4/extensible_parser.tex [35] [36] +Underfull \hbox (badness 10000) in paragraph at lines 102--113 + + [] + + +Overfull \hbox (118.19669pt too wide) in paragraph at lines 161--164 +\T1/lmr/m/n/12 MGram.extend func-tion (or In-sert.extend func-tion) \T1/lmr/m/ +it/12 /SourceCode/ML/godi/build/distfiles/ocaml- + [] + +[37] [38] [39] [40] +Underfull \hbox (badness 10000) in paragraph at lines 483--484 + + [] + +[41] [42] [43] [44] [45]) (./camlp4/jake_blog.tex [46] [47] [48] [49] [50] +[51] [52] +Overfull \hbox (31.87709pt too wide) in paragraph at lines 505--507 +[]\T1/lmr/m/n/12 the reg-is-ter mech-a-nism should be re-mem-bered \T1/lmr/m/it +/12 let mod-ule M = Camlp4.Register.AstFilter + [] + + +Overfull \hbox (36.24458pt too wide) in paragraph at lines 508--514 +[]\T1/lmtt/m/n/12 camlp4of -parser _build/filter.cmo filter_test.ml -filter lif +t -printer o + [] + + +Overfull \hbox (12.61491pt too wide) in paragraph at lines 521--525 +\T1/lmr/m/n/12 lifting func-tion from a type def-i-ni-tion -- these func-tions +are what \T1/lmr/m/it/12 Camlp4AstLifter + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 531--532 + + [] + +[53] [54] [55] +Underfull \hbox (badness 10000) in paragraph at lines 696--697 + + [] + +[56] +Overfull \hbox (38.02379pt too wide) in paragraph at lines 794--796 +\T1/lmr/m/n/12 notice that Syn-tax.AntiquotSyntax.(parse_expr,parse_patt) Syn-t +ax.(parse_implem, + [] + +[57] +Overfull \hbox (5.61972pt too wide) in paragraph at lines 926--935 +[]\T1/lmtt/m/n/12 type 'a expand_fun = Ast.loc -> string option -> string -> 'a + \T1/lmr/m/n/12 so if you + [] + +[58] [59]) +Underfull \hbox (badness 10000) in paragraph at lines 178--183 + + [] + + +Package hyperref Warning: Difference (2) between bookmark levels is greater +(hyperref) than one, level fixed on input line 191. + +[60] (./library/mikmatch.tex [61] [62] [63] [64] [65] [66] [67] [68]) +(./library/pcre.tex) (./library/caml-inspect.tex [69] [70] [71]) +(./library/ocaml-graph.tex [72] [73] +Overfull \hbox (18.51266pt too wide) in paragraph at lines 150--154 +[]\T1/lmr/m/n/12 Here we have func-tor \T1/lmr/m/it/12 Graph.Imperative.Graph.C +oncrete\T1/lmr/m/n/12 , \T1/lmr/m/it/12 Graph.Imperative.Graph.Abstract\T1/lmr/ +m/n/12 , + [] + +[74] [75] [76]) (./module-lang.tex [77]) (./library/monad.tex [78] +Underfull \hbox (badness 10000) in paragraph at lines 79--80 + + [] + +[79]) (./continuations/cont.tex [80] [81] [82] +Overfull \hbox (74.86942pt too wide) in paragraph at lines 216--221 +[]\T1/lmr/m/n/12 Answer type mod-i-fi-ca-tion (se-ri-ous) in the fol-low-ing co +n-text, []\T1/lmtt/m/n/12 reset (fun () -> [...] ^ "word" )\T1/lmr/m/n/12 , + [] + +[83] +Underfull \hbox (badness 10000) in paragraph at lines 248--259 + + [] + +) (./runtime/runtime.tex [84] +Underfull \hbox (badness 10000) in paragraph at lines 100--100 +[]|\T1/lmr/m/n/12 tuples, struct + [] + + +Underfull \hbox (badness 1776) in paragraph at lines 105--105 +[]|\T1/lmr/m/n/12 struct or ar-ray + [] + + +Overfull \hbox (11.61098pt too wide) in paragraph at lines 78--115 +[][] + [] + +[85] [86]) (./runtime/gc.tex [87] [88] [89] [90]) (./lang/stream.tex [91] +Underfull \hbox (badness 10000) in paragraph at lines 98--99 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 106--107 + + [] + +[92] [93]) (./c/M4.tex) (./books/developing_application_with_ocaml.tex +Overfull \hbox (88.25568pt too wide) in paragraph at lines 11--13 +[][]\T1/lmtt/m/n/12 char_of_int int_of_char string_of_int int_of_string []strin +g_of_int 2551 -> ``2551'' + [] + +[94] [95] +Underfull \hbox (badness 10000) in paragraph at lines 123--124 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 143--144 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 171--172 + + [] + +[96] [97] [98] [99] [100] [101] +Underfull \hbox (badness 10000) in paragraph at lines 564--565 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 609--610 + + [] + +[102] [103] +Underfull \hbox (badness 10000) in paragraph at lines 703--705 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 705--706 + + [] + + +Overfull \hbox (38.27107pt too wide) in paragraph at lines 708--716 +[][] + [] + +[104]) (./books/ocaml_for_scientists.tex [105]) (./books/caltech_ocaml.tex +[106] [107] [108] [109] [110]) +(./books/the_functional_approach_to_programming.tex) +(./books/practical_ocaml.tex +Underfull \hbox (badness 10000) in paragraph at lines 6--7 + + [] + +) (./books/hol_light.tex) (./books/unix_system_programming_in_ocaml.tex +[111] +Underfull \hbox (badness 10000) in paragraph at lines 72--73 + + [] + +[112] [113] +Underfull \hbox (badness 10000) in paragraph at lines 203--204 + + [] + +[114] +Underfull \hbox (badness 10000) in paragraph at lines 317--318 + + [] + +[115] [116] [117] +Underfull \hbox (badness 10000) in paragraph at lines 472--473 + + [] + +[118]) (./books/practical_ocaml.tex +Underfull \hbox (badness 10000) in paragraph at lines 6--7 + + [] + +) (./trival_tricks.tex [119] [120] [121]) (./blogs.tex [122]) +Package atveryend Info: Empty hook `BeforeClearDocument' on input line 312. + [123] +Package atveryend Info: Empty hook `AfterLastShipout' on input line 312. + +(./master.aux) +Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 312. +Package rerunfilecheck Info: File `master.out' has not changed. +(rerunfilecheck) Checksum: C2C4499DCED12225EA56C3181D1BF859;2738. + + +LaTeX Warning: There were multiply-defined labels. + + ) +Here is how much of TeX's memory you used: + 15735 strings out of 493747 + 252925 string characters out of 3143545 + 329146 words of memory out of 3000000 + 18095 multiletter control sequences out of 15000+200000 + 59582 words of font info for 65 fonts, out of 3000000 for 9000 + 714 hyphenation exceptions out of 8191 + 47i,9n,49p,671b,857s stack positions out of 5000i,500n,10000p,200000b,50000s +{/usr/local/texlive/2010/texmf-dist/fonts/enc/dvips/lm/lm-rm.enc}{/usr/local/ +texlive/2010/texmf-dist/fonts/enc/dvips/lm/lm-mathsy.enc}{/usr/local/texlive/20 +10/texmf-dist/fonts/enc/dvips/lm/lm-mathit.enc}{/usr/local/texlive/2010/texmf-d +ist/fonts/enc/dvips/lm/lm-ts1.enc}{/usr/local/texlive/2010/texmf-dist/fonts/enc +/dvips/lm/lm-ec.enc}</usr/local/texlive/2010/texmf-dist/fonts/type1/public/lm/l +mbx12.pfb></usr/local/texlive/2010/texmf-dist/fonts/type1/public/lm/lmmi12.pfb> +</usr/local/texlive/2010/texmf-dist/fonts/type1/public/lm/lmr12.pfb></usr/local +/texlive/2010/texmf-dist/fonts/type1/public/lm/lmr17.pfb></usr/local/texlive/20 +10/texmf-dist/fonts/type1/public/lm/lmr8.pfb></usr/local/texlive/2010/texmf-dis +t/fonts/type1/public/lm/lmri12.pfb></usr/local/texlive/2010/texmf-dist/fonts/ty +pe1/public/lm/lmsy10.pfb></usr/local/texlive/2010/texmf-dist/fonts/type1/public +/lm/lmtt12.pfb></usr/local/texlive/2010/texmf-dist/fonts/type1/public/lm/lmtt8. +pfb></usr/local/texlive/2010/texmf-dist/fonts/type1/public/wasy/wasy10.pfb> +Output written on master.pdf (123 pages, 434639 bytes). +PDF statistics: + 1251 PDF objects out of 1440 (max. 8388607) + 1104 compressed objects within 12 object streams + 473 named destinations out of 1000 (max. 500000) + 373 words of extra memory for PDF output out of 10000 (max. 10000000) + diff --git a/master.out b/master.out new file mode 100644 index 0000000..34b7469 --- /dev/null +++ b/master.out @@ -0,0 +1,45 @@ +\BOOKMARK [1][-]{section.1}{Preface}{}% 1 +\BOOKMARK [1][-]{section.2}{platform}{}% 2 +\BOOKMARK [2][-]{subsection.2.1}{ocamlbuild}{section.2}% 3 +\BOOKMARK [2][-]{subsection.2.2}{godi}{section.2}% 4 +\BOOKMARK [2][-]{subsection.2.3}{ocamlfind}{section.2}% 5 +\BOOKMARK [2][-]{subsection.2.4}{toplevel}{section.2}% 6 +\BOOKMARK [2][-]{subsection.2.5}{git}{section.2}% 7 +\BOOKMARK [2][-]{subsection.2.6}{lexing-ulex-ocamllex}{section.2}% 8 +\BOOKMARK [2][-]{subsection.2.7}{ocamlyacc or menhir}{section.2}% 9 +\BOOKMARK [1][-]{section.3}{camlp4}{}% 10 +\BOOKMARK [1][-]{section.4}{practical parts}{}% 11 +\BOOKMARK [2][-]{subsection.4.1}{batteries}{section.4}% 12 +\BOOKMARK [3][-]{section*.2}{syntax extension}{subsection.4.1}% 13 +\BOOKMARK [3][-]{subsubsection.4.1.1}{Dev}{subsection.4.1}% 14 +\BOOKMARK [3][-]{subsubsection.4.1.2}{BOLT}{subsection.4.1}% 15 +\BOOKMARK [2][-]{subsection.4.2}{Mikmatch}{section.4}% 16 +\BOOKMARK [2][-]{subsection.4.3}{pcre}{section.4}% 17 +\BOOKMARK [2][-]{subsection.4.4}{objsize}{section.4}% 18 +\BOOKMARK [2][-]{subsection.4.5}{pa-do}{section.4}% 19 +\BOOKMARK [2][-]{subsection.4.6}{caml-inspect}{section.4}% 20 +\BOOKMARK [2][-]{subsection.4.7}{ocamlgraph}{section.4}% 21 +\BOOKMARK [2][-]{subsection.4.8}{Modules}{section.4}% 22 +\BOOKMARK [2][-]{subsection.4.9}{pa-monad}{section.4}% 23 +\BOOKMARK [2][-]{subsection.4.10}{delimited continuations}{section.4}% 24 +\BOOKMARK [1][-]{section.5}{Runtime}{}% 25 +\BOOKMARK [1][-]{section.6}{GC}{}% 26 +\BOOKMARK [2][-]{subsection.6.1}{ocamlrun}{section.6}% 27 +\BOOKMARK [2][-]{subsection.6.2}{complex language features}{section.6}% 28 +\BOOKMARK [3][-]{subsubsection.6.2.1}{stream expression}{subsection.6.2}% 29 +\BOOKMARK [1][-]{section.7}{subtle bugs}{}% 30 +\BOOKMARK [1][-]{section.8}{interoperating with C}{}% 31 +\BOOKMARK [1][-]{section.9}{Book}{}% 32 +\BOOKMARK [2][-]{subsection.9.1}{Developing Applications with Objective Caml}{section.9}% 33 +\BOOKMARK [3][-]{subsubsection.9.1.1}{chap7 Development Tools}{subsection.9.1}% 34 +\BOOKMARK [2][-]{subsection.9.2}{Ocaml for scientists}{section.9}% 35 +\BOOKMARK [2][-]{subsection.9.3}{caltech ocaml book}{section.9}% 36 +\BOOKMARK [2][-]{subsection.9.4}{The functional approach to programming}{section.9}% 37 +\BOOKMARK [2][-]{subsection.9.5}{practical ocaml}{section.9}% 38 +\BOOKMARK [2][-]{subsection.9.6}{hol-light}{section.9}% 39 +\BOOKMARK [2][-]{subsection.9.7}{UNIX system programming in ocaml}{section.9}% 40 +\BOOKMARK [3][-]{subsubsection.9.7.1}{chap1}{subsection.9.7}% 41 +\BOOKMARK [3][-]{subsubsection.9.7.2}{chap2}{subsection.9.7}% 42 +\BOOKMARK [2][-]{subsection.9.8}{practical ocaml}{section.9}% 43 +\BOOKMARK [2][-]{subsection.9.9}{tricks}{section.9}% 44 +\BOOKMARK [2][-]{subsection.9.10}{ocaml blogs}{section.9}% 45 diff --git a/master.pdf b/master.pdf new file mode 100644 index 0000000..6466e23 Binary files /dev/null and b/master.pdf differ diff --git a/master.rel b/master.rel new file mode 100644 index 0000000..a2b623d --- /dev/null +++ b/master.rel @@ -0,0 +1,224 @@ +;; RefTeX parse info file +;; File: /Users/bob/SourceCode/Notes/ocaml-book/master.tex +;; User: bob (bobzhang) + +(set reftex-docstruct-symbol '( + + +(xr nil "\\\\\\\\\\\\") + +(index-tags) + +(is-multi t) + +(bibview-cache) + +(master-dir . "/Users/bob/SourceCode/Notes/ocaml-book/") + +(label-numbers) + +(bof "/Users/bob/SourceCode/Notes/ocaml-book/master.tex") + +(toc "toc" " 1 tool chain" "/Users/bob/SourceCode/Notes/ocaml-book/master.tex" nil 2 "1" "\\section{tool chain}" 2759) + +(toc "toc" " 1.1 ocamlbuild" "/Users/bob/SourceCode/Notes/ocaml-book/master.tex" nil 3 "1.1" "\\subsection{ocamlbuild}" 2780) + +(toc "toc" " 1.1.1 directory hierarchy" "/Users/bob/SourceCode/Notes/ocaml-book/master.tex" nil 4 "1.1.1" "\\subsubsection{directory hierarchy}" 2804) + +(toc "toc" " 1.1.2 arguments" "/Users/bob/SourceCode/Notes/ocaml-book/master.tex" nil 4 "1.1.2" "\\subsubsection{arguments}" 3215) + +(toc "toc" " 1.1.3 with lex yacc, ocamlfind " "/Users/bob/SourceCode/Notes/ocaml-book/master.tex" nil 4 "1.1.3" "\\subsubsection{with lex yacc, ocamlfind }" 3860) + +("sec:with-lex-yacc" "s" "\\begin{itemize} " "/Users/bob/SourceCode/Notes/ocaml-book/master.tex" nil) + +(toc "toc" " 1.1.4 predicates" "/Users/bob/SourceCode/Notes/ocaml-book/master.tex" nil 4 "1.1.4" "\\subsubsection{predicates}" 4537) + +(toc "toc" " 1.1.5 godi" "/Users/bob/SourceCode/Notes/ocaml-book/master.tex" nil 4 "1.1.5" "\\subsubsection{godi}" 6971) + +("sec:godi" "s" "\\begin{itemize} " "/Users/bob/SourceCode/Notes/ocaml-book/master.tex" nil) + +(toc "toc" " 1.2 ocamlfind" "/Users/bob/SourceCode/Notes/ocaml-book/master.tex" nil 3 "1.2" "\\subsection{ocamlfind}" 7559) + +(toc "toc" " 1.3 toplevel" "/Users/bob/SourceCode/Notes/ocaml-book/master.tex" nil 3 "1.3" "\\subsection{toplevel}" 8480) + +(toc "toc" " 1.4 git" "/Users/bob/SourceCode/Notes/ocaml-book/master.tex" nil 3 "1.4" "\\subsection{git}" 11164) + +(toc "toc" " 1.5 parsing lexing" "/Users/bob/SourceCode/Notes/ocaml-book/master.tex" nil 3 "1.5" "\\subsection{parsing lexing}" 11289) + +("sec:parsing-lexing" "s" "\\subsubsection{lexing-ulex} \\begin{itemize} " "/Users/bob/SourceCode/Notes/ocaml-book/master.tex" nil) + +(toc "toc" " 1.5.1 lexing-ulex" "/Users/bob/SourceCode/Notes/ocaml-book/master.tex" nil 4 "1.5.1" "\\subsubsection{lexing-ulex}" 11345) + +("sec:parsing-lexing-1" "s" "\\begin{itemize} " "/Users/bob/SourceCode/Notes/ocaml-book/master.tex" nil) + +(toc "toc" " 1.6 ocamlyacc" "/Users/bob/SourceCode/Notes/ocaml-book/master.tex" nil 3 "1.6" "\\subsection{ocamlyacc}" 3513) + +("sec:ocamlyacc" "s" nil "/Users/bob/SourceCode/Notes/ocaml-book/master.tex" nil "") + +(toc "toc" " 1.6 parsing" "/Users/bob/SourceCode/Notes/ocaml-book/master.tex" nil 3 "1.6" "\\subsection{parsing}" 22365) + +("sec:parsing" "s" "\\section{camlp4} \\begin{enumerate} \\input{./camlp4/camlp4_tutorial} \\input{./camlp4/revised_syntax}" "/Users/bob/SourceCode/Notes/ocaml-book/master.tex" nil) + +(toc "toc" " 2 camlp4" "/Users/bob/SourceCode/Notes/ocaml-book/master.tex" nil 2 "2" "\\section{camlp4}" 22408) + +("sec:camlp4" "s" "\\begin{enumerate} \\input{./camlp4/camlp4_tutorial} \\input{./camlp4/revised_syntax} \\input{./camlp4/e" "/Users/bob/SourceCode/Notes/ocaml-book/master.tex" nil) + +(bof "/Users/bob/SourceCode/Notes/ocaml-book/camlp4/camlp4_tutorial.tex") + +(eof "/Users/bob/SourceCode/Notes/ocaml-book/camlp4/camlp4_tutorial.tex") + +(bof "/Users/bob/SourceCode/Notes/ocaml-book/camlp4/revised_syntax.tex") + +(eof "/Users/bob/SourceCode/Notes/ocaml-book/camlp4/revised_syntax.tex") + +(bof "/Users/bob/SourceCode/Notes/ocaml-book/camlp4/experiment.tex") + +(eof "/Users/bob/SourceCode/Notes/ocaml-book/camlp4/experiment.tex") + +(bof "/Users/bob/SourceCode/Notes/ocaml-book/camlp4/extensible_parser.tex") + +(eof "/Users/bob/SourceCode/Notes/ocaml-book/camlp4/extensible_parser.tex") + +(bof "/Users/bob/SourceCode/Notes/ocaml-book/camlp4/jake_blog.tex") + +(eof "/Users/bob/SourceCode/Notes/ocaml-book/camlp4/jake_blog.tex") + +(toc "toc" " 3 libraries" "/Users/bob/SourceCode/Notes/ocaml-book/master.tex" nil 2 "3" "\\section{libraries}" 22999) + +(toc "toc" " 3.1 batteries" "/Users/bob/SourceCode/Notes/ocaml-book/master.tex" nil 3 "3.1" "\\subsection{batteries}" 23020) + +(toc "toc" " 3.1.0.1 syntax extension" "/Users/bob/SourceCode/Notes/ocaml-book/master.tex" nil 5 "3.1.0.1" "\\paragraph{syntax extension}" 23043) + +(toc "toc" " 3.1.1 Dev" "/Users/bob/SourceCode/Notes/ocaml-book/master.tex" nil 4 "3.1.1" "\\subsubsection{Dev}" 23445) + +(toc "toc" " 3.1.2 BOLT" "/Users/bob/SourceCode/Notes/ocaml-book/master.tex" nil 4 "3.1.2" "\\subsubsection{BOLT}" 23542) + +("sec:bolt" "s" "\\input{./library/mikmatch.tex} \\subsection{objsize} \\subsection{pa-do} \\label{sec:pa-do} \\begin{ite" "/Users/bob/SourceCode/Notes/ocaml-book/master.tex" nil) + +(bof "/Users/bob/SourceCode/Notes/ocaml-book/library/mikmatch.tex") + +(toc "toc" " 3.2 Mikmatch" "/Users/bob/SourceCode/Notes/ocaml-book/library/mikmatch.tex" nil 3 "3.2" "\\subsection{Mikmatch}" 3) + +("sec:mikmatch" "s" "Directly supported in toplevel Regular expression \\emph{share} their own namespace. \\begin{enumerate" "/Users/bob/SourceCode/Notes/ocaml-book/library/mikmatch.tex" nil) + +(eof "/Users/bob/SourceCode/Notes/ocaml-book/library/mikmatch.tex") + +(toc "toc" " 3.3 objsize" "/Users/bob/SourceCode/Notes/ocaml-book/master.tex" nil 3 "3.3" "\\subsection{objsize}" 23614) + +("sec:objsize" "s" "\\subsection{pa-do} \\begin{itemize} " "/Users/bob/SourceCode/Notes/ocaml-book/master.tex" nil) + +(toc "toc" " 3.4 pa-do" "/Users/bob/SourceCode/Notes/ocaml-book/master.tex" nil 3 "3.4" "\\subsection{pa-do}" 23657) + +("sec:pa-do" "s" "\\begin{itemize} " "/Users/bob/SourceCode/Notes/ocaml-book/master.tex" nil) + +(toc "toc" " 3.5 Modules" "/Users/bob/SourceCode/Notes/ocaml-book/master.tex" nil 3 "3.5" "\\subsection{Modules}" 23753) + +(toc "toc" " 3.6 continuation delimited continuations" "/Users/bob/SourceCode/Notes/ocaml-book/master.tex" nil 3 "3.6" "\\subsection{continuation delimited continuations}" 25659) + +("sec:cont-delim-cont" "s" "Continuatioins A conditional banch selects a continuation from the two possible futures; rasing an e" "/Users/bob/SourceCode/Notes/ocaml-book/master.tex" nil) + +(toc "toc" " 3.7 ocamlexc" "/Users/bob/SourceCode/Notes/ocaml-book/master.tex" nil 3 "3.7" "\\subsection{ocamlexc}" 32858) + +("sec:ocamlexc" "s" "\\section{Runtime} \\begin{itemize} " "/Users/bob/SourceCode/Notes/ocaml-book/master.tex" nil) + +(toc "toc" " 4 Runtime" "/Users/bob/SourceCode/Notes/ocaml-book/master.tex" nil 2 "4" "\\section{Runtime}" 32903) + +("sec:runtime" "s" "\\begin{itemize} " "/Users/bob/SourceCode/Notes/ocaml-book/master.tex" nil) + +(toc "toc" " 4.1 GC" "/Users/bob/SourceCode/Notes/ocaml-book/master.tex" nil 3 "4.1" "\\subsection{GC}" 39535) + +("sec:gc" "s" "\\begin{itemize} " "/Users/bob/SourceCode/Notes/ocaml-book/master.tex" nil) + +(toc "toc" " 4.2 ocamlrun" "/Users/bob/SourceCode/Notes/ocaml-book/master.tex" nil 3 "4.2" "\\subsection{ocamlrun}" 49145) + +("sec:ocamlrun" "s" "\\begin{itemize} " "/Users/bob/SourceCode/Notes/ocaml-book/master.tex" nil) + +(toc "toc" " 5 Book" "/Users/bob/SourceCode/Notes/ocaml-book/master.tex" nil 2 "5" "\\section{Book}" 49522) + +(bof "/Users/bob/SourceCode/Notes/ocaml-book/books/developing_application_with_ocaml.tex") + +(toc "toc" " 5.1 Developing Applications with Objective Caml" "/Users/bob/SourceCode/Notes/ocaml-book/books/developing_application_with_ocaml.tex" nil 3 "5.1" "\\subsection{Developing Applications with Objective Caml}" 1) + +(toc "toc" " 5.2 chap7 Development Tools" "/Users/bob/SourceCode/Notes/ocaml-book/books/developing_application_with_ocaml.tex" nil 3 "5.2" "\\subsection{chap7 Development Tools}" 15824) + +("sec:chap7-devel-tools" "s" nil "/Users/bob/SourceCode/Notes/ocaml-book/books/developing_application_with_ocaml.tex" nil "") + +(toc "toc" " 5.2 " "/Users/bob/SourceCode/Notes/ocaml-book/books/developing_application_with_ocaml.tex" nil 3 "5.2" "\\subsection{}" 15824) + +(eof "/Users/bob/SourceCode/Notes/ocaml-book/books/developing_application_with_ocaml.tex") + +(bof "/Users/bob/SourceCode/Notes/ocaml-book/books/ocaml_for_scientists.tex") + +(toc "toc" " 5.2 Ocaml for scientists" "/Users/bob/SourceCode/Notes/ocaml-book/books/ocaml_for_scientists.tex" nil 3 "5.2" "\\subsection{Ocaml for scientists}" 1) + +("sec:ocaml-scientists" "s" "\\begin{itemize} " "/Users/bob/SourceCode/Notes/ocaml-book/books/ocaml_for_scientists.tex" nil) + +(eof "/Users/bob/SourceCode/Notes/ocaml-book/books/ocaml_for_scientists.tex") + +(bof "/Users/bob/SourceCode/Notes/ocaml-book/books/caltech_ocaml.tex") + +(toc "toc" " 5.3 caltech ocaml book" "/Users/bob/SourceCode/Notes/ocaml-book/books/caltech_ocaml.tex" nil 3 "5.3" "\\subsection{caltech ocaml book}" 2) + +("sec:caltech-ocaml-book" "s" "\\begin{enumerate}[(a)] " "/Users/bob/SourceCode/Notes/ocaml-book/books/caltech_ocaml.tex" nil) + +(eof "/Users/bob/SourceCode/Notes/ocaml-book/books/caltech_ocaml.tex") + +(bof "/Users/bob/SourceCode/Notes/ocaml-book/books/the_functional_approach_to_programming.tex") + +(toc "toc" " 5.4 The functional approach to programming" "/Users/bob/SourceCode/Notes/ocaml-book/books/the_functional_approach_to_programming.tex" nil 3 "5.4" "\\subsection{The functional approach to programming}" 1) + +("sec:funct-appr-progr" "s" "%%% Local Variables: %%% mode: latex %%% TeX-master: \"../master\" %%% End: " "/Users/bob/SourceCode/Notes/ocaml-book/books/the_functional_approach_to_programming.tex" nil) + +(eof "/Users/bob/SourceCode/Notes/ocaml-book/books/the_functional_approach_to_programming.tex") + +(bof "/Users/bob/SourceCode/Notes/ocaml-book/books/practical_ocaml.tex") + +(toc "toc" " 5.5 practical ocaml" "/Users/bob/SourceCode/Notes/ocaml-book/books/practical_ocaml.tex" nil 3 "5.5" "\\subsection{practical ocaml}" 1) + +("sec:practical-ocaml" "s" "%%% Local Variables: %%% mode: latex %%% TeX-master: \"../master\" %%% End: " "/Users/bob/SourceCode/Notes/ocaml-book/books/practical_ocaml.tex" nil) + +(eof "/Users/bob/SourceCode/Notes/ocaml-book/books/practical_ocaml.tex") + +(bof "/Users/bob/SourceCode/Notes/ocaml-book/books/hol_light.tex") + +(toc "toc" " 5.6 hol-light" "/Users/bob/SourceCode/Notes/ocaml-book/books/hol_light.tex" nil 3 "5.6" "\\subsection{hol-light}" 1) + +("sec:hol-light" "s" "\\begin{itemize} " "/Users/bob/SourceCode/Notes/ocaml-book/books/hol_light.tex" nil) + +(eof "/Users/bob/SourceCode/Notes/ocaml-book/books/hol_light.tex") + +(bof "/Users/bob/SourceCode/Notes/ocaml-book/books/unix_system_programming_in_ocaml.tex") + +(toc "toc" " 5.7 UNIX system programming in ocaml" "/Users/bob/SourceCode/Notes/ocaml-book/books/unix_system_programming_in_ocaml.tex" nil 3 "5.7" "\\subsection{UNIX system programming in ocaml}" 1) + +("sec:unix-syst-progr" "s" "\\subsubsection{chap1} %%% Local Variables: %%% mode: latex %%% TeX-master: \"../master\" %%% End: " "/Users/bob/SourceCode/Notes/ocaml-book/books/unix_system_programming_in_ocaml.tex" nil) + +(toc "toc" " 5.7.1 chap1" "/Users/bob/SourceCode/Notes/ocaml-book/books/unix_system_programming_in_ocaml.tex" nil 4 "5.7.1" "\\subsubsection{chap1}" 76) + +("sec:chap1" "s" "%%% Local Variables: %%% mode: latex %%% TeX-master: \"../master\" %%% End: " "/Users/bob/SourceCode/Notes/ocaml-book/books/unix_system_programming_in_ocaml.tex" nil) + +(toc "toc" " 5.7.2 chap2" "/Users/bob/SourceCode/Notes/ocaml-book/books/unix_system_programming_in_ocaml.tex" nil 4 "5.7.2" "\\subsubsection{chap2}" 4743) + +("sec:chap2" "s" nil "/Users/bob/SourceCode/Notes/ocaml-book/books/unix_system_programming_in_ocaml.tex" nil "") + +(eof "/Users/bob/SourceCode/Notes/ocaml-book/books/unix_system_programming_in_ocaml.tex") + +(bof "/Users/bob/SourceCode/Notes/ocaml-book/trival_tricks.tex") + +(toc "toc" " 5.8 tricks" "/Users/bob/SourceCode/Notes/ocaml-book/trival_tricks.tex" nil 3 "5.8" "\\subsection{tricks}" 1) + +("sec:tricks" "s" "\\begin{itemize} " "/Users/bob/SourceCode/Notes/ocaml-book/trival_tricks.tex" nil) + +(eof "/Users/bob/SourceCode/Notes/ocaml-book/trival_tricks.tex") + +(bof "/Users/bob/SourceCode/Notes/ocaml-book/blogs.tex") + +(toc "toc" " 5.9 ocaml blogs" "/Users/bob/SourceCode/Notes/ocaml-book/blogs.tex" nil 3 "5.9" "\\subsection{ocaml blogs}" 2) + +("sec:ocaml-blogs" "s" "\\href{http://ygrek.org.ua/p/ocaml.html}{ygrek} " "/Users/bob/SourceCode/Notes/ocaml-book/blogs.tex" nil) + +(eof "/Users/bob/SourceCode/Notes/ocaml-book/blogs.tex") + +(eof "/Users/bob/SourceCode/Notes/ocaml-book/master.tex") +)) + diff --git a/master.synctex.gz b/master.synctex.gz new file mode 100644 index 0000000..6acda8e Binary files /dev/null and b/master.synctex.gz differ diff --git a/master.tex b/master.tex new file mode 100644 index 0000000..55af4d2 --- /dev/null +++ b/master.tex @@ -0,0 +1,318 @@ +%%% master.tex --- + +%% Author: bob@bobmatoMacBook-Pro.local +%% Version: $Id: ocaml-hacker.tex,v 0.0 2011/10/23 02:58:53 bob Exp$ + + + +\documentclass[12pt,a4paper]{article} +% \documentstyle{book} +\usepackage[latin9]{inputenc} +\usepackage[letterpaper]{geometry} +\geometry{verbose,tmargin=1in,bmargin=1in,lmargin=1in,rmargin=1in} +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{graphicx} +\usepackage{float} +\usepackage{array} +\usepackage{tikz} +\usepackage{enumerate} +%% for underscore _ work +\usepackage{lmodern} +\usepackage[T1]{fontenc} +\usepackage{textcomp} +\usepackage{hyperref} + +\usepackage{listings} +\usepackage{verbatim} +\usepackage{color} +\usepackage{fancyvrb} +\usepackage{wasysym} +% seems conflict with differnt packages ,fancybox,calc} +% \usepackage{xcolor} + +% \newenvironment{inverseverbatim}{\VerbatimEnvironment% +% \noindent +% % {\columnwidth-\leftmargin-\rightmargin-2\fboxsep-2\fboxrule-4pt} +% \begin{Sbox} +% \begin{minipage}{\linewidth-2\fboxsep-2\fboxrule-4pt} +% \begin{Verbatim} +% } +% {% +% \end{Verbatim} +% \end{minipage} +% \end{Sbox} +% \fcolorbox{green}{black}{\TheSbox} +% } + +% \newenvironment{inverseverbatim}{\begin{Verbatim}} {\end{Verbatim}} + +\makeatletter +\def\inverseverbatim{% + \color{red}\scriptsize + \def\verbatim@processline{% + {\setbox0=\hbox{\the\verbatim@line}% + \hsize=\wd0 \the\verbatim@line\par}}% + \@minipagetrue + \@tempswatrue + \@totalleftmargin\z@ + \setbox0=\vbox\bgroup \verbatim +} +\def\endinverseverbatim{% + \endverbatim + \unskip\setbox0=\lastbox + \egroup + \colorbox{white}{\box0}% +} + \makeatother + + +% \newenvironment{bluecode}{\Verbatim[fomartcom=\color{blue}]}{\endVerbatim} + +% \lstset{{[Objective]Caml}} + + +%% end + +% \usepackage{lstset} +% New commands serve as shorthand for frequently used command combinations. +\newcommand{\ind}[1]{\mathbf{1}\left(#1\right)} +\newcommand{\bx}{\mathbf{x}} +\newcommand{\E}{\mathbf{E}} + +\definecolor{MyDarkBlue}{rgb}{0,0.08,0.45} + +\DefineVerbatimEnvironment{bluecode}{Verbatim}{formatcom=\color{blue},fontsize=\scriptsize} +\DefineVerbatimEnvironment{redcode}{Verbatim}{formatcom=\color{red},fontsize=\scriptsize} +\DefineVerbatimEnvironment{bluetext}{Verbatim}{formatcom=\color{MyDarkBlue},fontsize=\scriptsize} + +\newcommand{\ChangeLine}[1]{% +\ifodd\value{FancyVerbLine}% +\textcolor{red}{#1}\else\textcolor{blue}{#1}\fi} + + + +\DefineVerbatimEnvironment{alternate}{Verbatim}{formatcom=\renewcommand{\FancyVerbFormatLine}{\ChangeLine},fontsize=\scriptsize}{} +%% \usepackage[debugshow,final]{graphics} +%% \revision$Header: /Users/bob/SourceCode/Notes/ocaml-hacker.tex,v 0.0 2011/10/23 02:58:53 bob Exp$ +\def\dashfill{\cleaders\hbox{-}\hfill} + +\begin{document} + +\setcounter{tocdepth}{4} +\title{OCaml Notes} +\author{Hongbo Zhang} +\maketitle + +\newpage + +\tableofcontents + +\vspace*{1cm} + +\newpage + +\section{Preface} +\begin{quotation} + \textit{ +This is a book about hacking in ocaml. +It's assumed that you already understand the underlying theory. Happy hacking} + +\smiley + +\textit{Most parts are filled with code blocks, maybe I will add some comments in the future. Still a book in progress. Don't distribute it.} +\end{quotation} + +\newpage +\section{platform} + +% ocamlbuild +\input{./ob.tex} + +\input{./godi.tex} + +\input{./of.tex} + +\input{./toplevel.tex} + +\subsection{git} +\begin{itemize} +\item ignore set \\ + \verb|_log _build *.native *.byte *.d.native *.p.byte| +\end{itemize} + +\subsection{lexing-ulex-ocamllex} +\label{sec:parsing-lexing-1} +\input{./lex.tex} + +\input{./ocaml-lex.tex} + +\subsection{ocamlyacc or menhir} +\label{sec:ocamlyacc} +\input{./ocaml-yacc.tex} + + +\section{camlp4} +\label{sec:camlp4} +\begin{enumerate} +\item a brief intro to recursive descent parser \\ + + grammar transform + \begin{bluetext} + a : a x | b (x can be anything) + => + a : b r + r : x r | e + ---- + exp : exp op exp | prim + => + exp : prim expR + expR : op exp expR | e + \end{bluetext} + \input{./camlp4/camlp4_tutorial} + \input{./camlp4/revised_syntax} + \input{./camlp4/experiment} + \input{./camlp4/extensible_parser} + \input{./camlp4/jake_blog} + +\item useful links + \href{http://brion.inria.fr/gallium/index.php/Abstract\_Syntax\_Tree}{Abstract\_Syntax\_Tree} \\ + \href{http://elehack.net/michael/blog/2010/06/ocaml-syntax-extension}{elehack} \\ + \href{http://andreiformiga.com/blog/?p=99}{meta-guide} \\ + \href{http://www.wisdomandwonder.com/link/5302/resources-for-learning-camlp4}{camlp4} \\ + +\end{enumerate} +\section{practical parts} + + +\subsection{batteries} + +\paragraph{syntax extension} +Not of too much use , {\bf Never use it in the toplevel} +\begin{itemize} +\item comprehension (M.filter, concat, map, filter\_map, enum, of\_enum) \\ + since it's at preproccessed stage, you can use some trick \\ + \verb|let module Enum = List in | will change the semantics \\ + \verb|let open Enum in| doesn't make sense, since it uses qualified name inside +\end{itemize} +\subsubsection{Dev} +\begin{itemize} +\item make changes in both .ml and .mli files +\end{itemize} + +\subsubsection{BOLT} +\label{sec:bolt} + + +\subsection{Mikmatch} +\label{sec:mikmatch} + +\input{./library/mikmatch.tex} + +\subsection{pcre} +\label{sec:pcre} +\input{./library/pcre.tex} + +\subsection{objsize} +\label{sec:objsize} + + +\subsection{pa-do} +\label{sec:pa-do} + +\begin{itemize} +\item delimited overloading +\end{itemize} + + +\subsection{caml-inspect} +\label{sec:caml-inspect} +\input{./library/caml-inspect.tex} + +\subsection{ocamlgraph} +\label{sec:ocamlgraph} +\input{./library/ocaml-graph.tex} + +\subsection{Modules} +\input{./module-lang.tex} + +\subsection{pa-monad} +\label{sec:pa-monad} + +\input{./library/monad.tex} + +\subsection{delimited continuations} +\label{sec:cont-delim-cont} +\input{./continuations/cont.tex} + +\end{enumerate} + +\section{Runtime} +\label{sec:runtime} +\input{./runtime/runtime.tex} + +\section{GC} +\label{sec:gc} +\input{./runtime/gc.tex} + +\subsection{ocamlrun} +\label{sec:ocamlrun} +\begin{itemize} +\item \href{http://caml.inria.fr/pub/docs/manual-ocaml/manual024.html#toc88}{ocamlrun} \\ + the ocamlrun command comprises three main parts: the bytecode + interpreter, the memory allocator and garbage collector, + and a set of c functions that implement primitive operations + such as input/output. + +\end{itemize} + +\subsection{complex language features} +\label{sec:compl-lang-feat} +\subsubsection{stream expression} +\input{./lang/stream.tex} + +\section{subtle bugs} +\label{sec:subtle-bugs} +\begin{enumerate} +\item reload duplicate modules \\ + this is fragile when you load some modules like syntax extension, or toploop modules. use \textit{ocamlobjinfo} to + see which modules are loaded exactly +\end{enumerate} + + +\section{interoperating with C} +\label{sec:inter-with-c} + +\input{./c/M4.tex} + + +\section{Book} + + +\input{./books/developing_application_with_ocaml} + +\input{./books/ocaml_for_scientists} + +\input{./books/caltech_ocaml} + +\input{./books/the_functional_approach_to_programming} + +\input{./books/practical_ocaml} + +\input{./books/hol_light} + +\input{./books/unix_system_programming_in_ocaml} + +\input{./books/practical_ocaml.tex} + +\input{trival_tricks} + +\input{blogs} + +\end{document} + + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "master" +%%% End: diff --git a/master.toc b/master.toc new file mode 100644 index 0000000..9fdbb59 --- /dev/null +++ b/master.toc @@ -0,0 +1,45 @@ +\contentsline {section}{\numberline {1}Preface}{4}{section.1} +\contentsline {section}{\numberline {2}platform}{5}{section.2} +\contentsline {subsection}{\numberline {2.1}ocamlbuild}{5}{subsection.2.1} +\contentsline {subsection}{\numberline {2.2}godi}{7}{subsection.2.2} +\contentsline {subsection}{\numberline {2.3}ocamlfind}{7}{subsection.2.3} +\contentsline {subsection}{\numberline {2.4}toplevel}{8}{subsection.2.4} +\contentsline {subsection}{\numberline {2.5}git}{9}{subsection.2.5} +\contentsline {subsection}{\numberline {2.6}lexing-ulex-ocamllex}{9}{subsection.2.6} +\contentsline {subsection}{\numberline {2.7}ocamlyacc or menhir}{16}{subsection.2.7} +\contentsline {section}{\numberline {3}camlp4}{25}{section.3} +\contentsline {section}{\numberline {4}practical parts}{61}{section.4} +\contentsline {subsection}{\numberline {4.1}batteries}{61}{subsection.4.1} +\contentsline {paragraph}{syntax extension}{61}{section*.2} +\contentsline {subsubsection}{\numberline {4.1.1}Dev}{61}{subsubsection.4.1.1} +\contentsline {subsubsection}{\numberline {4.1.2}BOLT}{61}{subsubsection.4.1.2} +\contentsline {subsection}{\numberline {4.2}Mikmatch}{61}{subsection.4.2} +\contentsline {subsection}{\numberline {4.3}pcre}{69}{subsection.4.3} +\contentsline {subsection}{\numberline {4.4}objsize}{69}{subsection.4.4} +\contentsline {subsection}{\numberline {4.5}pa-do}{69}{subsection.4.5} +\contentsline {subsection}{\numberline {4.6}caml-inspect}{69}{subsection.4.6} +\contentsline {subsection}{\numberline {4.7}ocamlgraph}{72}{subsection.4.7} +\contentsline {subsection}{\numberline {4.8}Modules}{77}{subsection.4.8} +\contentsline {subsection}{\numberline {4.9}pa-monad}{78}{subsection.4.9} +\contentsline {subsection}{\numberline {4.10}delimited continuations}{81}{subsection.4.10} +\contentsline {section}{\numberline {5}Runtime}{84}{section.5} +\contentsline {section}{\numberline {6}GC}{87}{section.6} +\contentsline {subsection}{\numberline {6.1}ocamlrun}{91}{subsection.6.1} +\contentsline {subsection}{\numberline {6.2}complex language features}{91}{subsection.6.2} +\contentsline {subsubsection}{\numberline {6.2.1}stream expression}{91}{subsubsection.6.2.1} +\contentsline {section}{\numberline {7}subtle bugs}{94}{section.7} +\contentsline {section}{\numberline {8}interoperating with C}{94}{section.8} +\contentsline {section}{\numberline {9}Book}{94}{section.9} +\contentsline {subsection}{\numberline {9.1}Developing Applications with Objective Caml}{94}{subsection.9.1} +\contentsline {subsubsection}{\numberline {9.1.1}chap7 Development Tools}{102}{subsubsection.9.1.1} +\contentsline {subsection}{\numberline {9.2}Ocaml for scientists}{105}{subsection.9.2} +\contentsline {subsection}{\numberline {9.3}caltech ocaml book}{106}{subsection.9.3} +\contentsline {subsection}{\numberline {9.4}The functional approach to programming}{111}{subsection.9.4} +\contentsline {subsection}{\numberline {9.5}practical ocaml}{111}{subsection.9.5} +\contentsline {subsection}{\numberline {9.6}hol-light}{111}{subsection.9.6} +\contentsline {subsection}{\numberline {9.7}UNIX system programming in ocaml}{111}{subsection.9.7} +\contentsline {subsubsection}{\numberline {9.7.1}chap1}{111}{subsubsection.9.7.1} +\contentsline {subsubsection}{\numberline {9.7.2}chap2}{113}{subsubsection.9.7.2} +\contentsline {subsection}{\numberline {9.8}practical ocaml}{119}{subsection.9.8} +\contentsline {subsection}{\numberline {9.9}tricks}{120}{subsection.9.9} +\contentsline {subsection}{\numberline {9.10}ocaml blogs}{123}{subsection.9.10} diff --git a/module-lang.tex b/module-lang.tex new file mode 100644 index 0000000..bdf91f5 --- /dev/null +++ b/module-lang.tex @@ -0,0 +1,75 @@ + +\begin{itemize} +\item BatEnum + \begin{itemize} + \item utilities + + +\begin{bluecode} + range ~until:20 3 + filter, concat, map, filter_map + (--), (--^) (|>) (@/) (/@) + No_more_elements (*interface for dev to raise (in Enum.make next)*) + icons, lcons, cons +\end{bluecode} + + \item don't play effects with enum + \item idea??? how about divide enum to two; one is just for iterator + the other is for lazy evaluation. (iterator is lazy???) + \end{itemize} +\item Set (\emph{one comparison, one container}) + + +\begin{bluecode} +Set.IntSet +Set.CharSet +Set.RopeSet +Set.NumStringSet +\end{bluecode} +for polymorphic set + +\begin{bluecode} +split +union +empty +add +\end{bluecode} + why polymorphic set is dangerous? Because in Haskell, \textit{Eq a =>} is implicitly + you want to make your comparison method is unique, otherwise you + union two sets, how to make sure they use the same comparison, here + we use abstraction types, one comparison, one container + we can not override polymorphic = behavior, polymorphic = is pretty bad practice + for complex data structure, mostly not you want, so write compare by yourself + +As follows, compare is the right semantics. +\begin{alternate} +# Set.IntSet.(compare (of_enum (1--5)) (of_enum (List.enum [5;3;4;2;1])));; +- : int = 0 +# Set.IntSet.(of_enum (1--5) = of_enum (List.enum [5;3;4;2;1]));; +- : bool = false +\end{alternate} + + +\item caveat + \begin{itemize} + \item module syntax + + \begin{bluecode} +module Enum = struct + include Enum include Labels include Exceptionless +end +\end{bluecode} + + + floating nested modules up (Enum.include, etc) + include Enum, will expose all Enum have to the following context, so Enum.Labels + is as Labels, so you can now include Labels, but \emph{Labels.v will override Enum.v}, + maybe you want it, and \emph{module Enum still has Enum.Labels.v}, we just duplicated + the nested module into toplevel + \end{itemize} +\end{itemize} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "master" +%%% End: diff --git a/ob.tex b/ob.tex new file mode 100644 index 0000000..2d269a2 --- /dev/null +++ b/ob.tex @@ -0,0 +1,156 @@ + +\subsection{ocamlbuild} +\begin{enumerate} +\item directory hierarchy \\ +code : \textit{\_build} +\begin{enumerate} +\item ob \emph{automatically creates a symbol link} to the executable it + produces in the current directory +\item ob copies the sources and compiles them in \_build (default) +\item hygiene rules at start up (.cmo, .cmi, or .o should appear + outside of the \_build) (-no-hygiene) +\item ob must be invoked in the root directory +\end{enumerate} + +\item arguments + +\begin{enumerate} +\item \textit{ocamlbuild -quite xx.native -- args} +\item \textit{ocamlbuild -quite -use-ocamlfind xx.native -- args} +\item -log -verbose -clean \\ + check \textit{\_build/\_log} file for detailed building process +\item -cflags \\ + pass flags to \textbf{ocamlc} i.e. + -cflags -I,+lablgtk,-rectypes. (needed at compile time) +\item -lflags \\ + needed at linking time +\item -libs \\ + linking with \textbf{ external} libraries. i.e. \emph{-libs unix,num}. + you may need \emph{-cflags -I,/usr/local/lib/ocaml} \emph{-lflags -I,/usr/local/lib/ocaml} to make it work +\item -use-ocamlfind +\item -pkgs oUnit + +\item \textit{mllib} file + + \begin{redcode} +cat top_level.mllib +\end{redcode} +\begin{bluecode} +Dir_top_level_util +Dir_top_level +\end{bluecode} + +then you can \textit{ocamlbuild top\_level.cma}, then you can use +\textit{ocamlobjinfo} to see exactly which modules are compacted into +it. + +\begin{redcode} +ocamlobjinfo _build/top_level.cma | grep Unit +\end{redcode} + +\begin{bluecode} +Unit name: Dir_top_level_util +Unit name: Dir_top_level +\end{bluecode} + + +\end{enumerate} + +\item with lex yacc, ocamlfind + +\begin{enumerate} +\item .mll .mly supported by default, \textit{menhir (-use-menhir)} or add a line + \textit{true : use\_menhir} + +\item add a line in tags file + \textit{<*.ml> : pkg\_sexplib.syntax, pkg\_batteries.syntax, syntax\_camlp4o} \\ + here \textit{syntax\_camlp4o} is translated by myocamlbuild.ml to \emph{-syntax camlp4o} to pass to ocamlfind + +\item another typical tags file using \textbf{ syntax extension} + + +\begin{bluetext} +<*.ml>: package(lwt.unix), package(lwt.syntax), syntax(camlp4o) -- only needs lwt.syntax when preprocessing +"prog.byte": package(lwt.unix) +\end{bluetext} + + +\end{enumerate} + +\item predicates + +\begin{enumerate} +\item simple regexes \\ + <**/*.ml> means that .ml files in \emph{current dir or sub dir} + <**/*.ml> <**/*.mli> <**/*.mlpack> <**/*.ml.depends> : ocaml \\ + <**/*.byte> : ocaml, byte, program \\ + <*.ml> or <*.byte> or <*.native> : pkg\_oUnit \\ + <**/*.{native,byte}> : \verb|use_unix| \\ + <{batMutex,batRMutex}.{ml,mli}>: threads \\ + e1 or e2 , e1 and e2, not e, true ,false \\ + true:use\_menhir \\ +\item ocamlbuild cares white space, \textbf{ take care when write tags file} +\item foo.itarget + + +\begin{redcode} +bash$ cat foo.itarget +\end{redcode} + +\begin{bluecode} +main.native +main.byte +stuff.docdir/index.html +\end{bluecode} + +% $ + +\textbf{ ocamlbuild foo.otarget} + +\item packing modules + + +\begin{redcode} +$ cat foo.mlpack +\end{redcode} + +\begin{bluecode} +Bar +Baz +\end{bluecode} + +% $ + +\item document \\ + when you use -keep-code flag in myocamlbuild.ml, \textit{only} document of exposed modules are kept, not very useful \\ + \verb| flag ["ocaml"; "doc"] & S[A"-keep-code"];| + ocamldep seems to be \textbf{ lightweight} + +\item syntax extension \\ + Just for preprocessing, you can also use pp. \\ + \verb|<pa_*r.{ml,cmo,byte}> : pkg_dynlink , pp(camlp4rf ), use_camlp4_full| \\ + Here it not only use preporcessor, but also \textbf{ link} with it. \\ + Take ulex for example, for \textbf{ pre-processing} \\ + \verb|<*_ulex.ml> : syntax_camlp4o,pkg_ulex,pkg_camlp4.macro|, + For \textbf{ linking} \\ + \verb|<*_ulex.{byte,native}> : pkg_ulex|. \\ + Normal for any revised syntax, you can say \\ + \verb|<*_r.ml>:syntax_camlp4r,pkg_camlp4.quotations.r,pkg_camlp4.macro,pkg_camlp4.extend| \\ + You can use \textbf{ several syntax extensions} together, as above. \\ + ``\verb|pa_vector_r.ml|'':\verb|syntax_camlp4r|,\verb|pkg_camlp4.quotations.r|, + \verb|pkg_camlp4.extend|, \verb|pkg_sexplib.syntax| + for \textbf{ preprocessing}, and \\ + \verb|<pa_vector_r.{cmo,byte,native}>:pkg_dynlink,use_camlp4_full,pkg_sexplib| for \textbf{ linking} . \\ + \textbf{ order matters} \\ + For \textbf{ original} syntax, \verb|<*_o.ml> : syntax_camlp4o,pkg_sexplib.syntax| \\ + For \textbf{ filter} \verb|"map_filter_r.ml" : pp(camlp4r -filter map)|. and \\ + \verb|"wiki_r.ml" or "wiki2_r.ml" : pp(camlp4rf -filter meta), use_camlp4_full|\\ + The .mli file also needs \verb|"wiki2_r.mli" : use_camlp4_full| \\ + for more information, check out \textbf{ camlp4/examples}. when you use pp flag, you need to specify the path to \verb|pa_xx.cmo|, so symbol link may help. +\end{enumerate} + +\end{enumerate} +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "master" +%%% End: diff --git a/ocaml-lex.tex b/ocaml-lex.tex new file mode 100644 index 0000000..1977baa --- /dev/null +++ b/ocaml-lex.tex @@ -0,0 +1,127 @@ + +\href{http://caml.inria.fr/pub/docs/manual-ocaml/manual026.html}{ocamllex} + +\begin{enumerate} +\item \textit{module Lexing} + \begin{redcode} + se_str "from" "Lexing";; + \end{redcode} + +\begin{bluecode} + val from_string : string -> lexbuf + val from_function : (string -> int -> int) -> lexbuf + val from_input : BatIO.input -> Lexing.lexbuf + val from_channel : BatIO.input -> Lexing.lexbuf +\end{bluecode} + +\item syntax \\ + + \begin{bluetext} + {header} + let ident = regexp ... + rule entrypoint [arg1 .. argn ] = + parse regexp {action } + | .. + | regexp {action} + and entrypoint [arg1 .. argn] = + parse .. + and ... + {trailer} + \end{bluetext} + + The parse keyword can be replaced by shortest keyword. + + Typically, the header section contains the \textit{open} directives + required by the actions + + All identifiers starting with \verb|__ocaml_lex| are reserved for use by + \textbf{ocamllex} +\item example + for me, best practice is put some test code in the trailer part, and + use \textit{ocamlbuild fc\_lexer.byte --} to verify, or write a + makefile. you can write several indifferent rule in a file using and. + + \begin{bluetext} + +(* verbatim translate *) +rule translate = parse + | "current_directory" {print_string (Sys.getcwd ()); translate lexbuf} + | _ as c {print_char c ; translate lexbuf} + | eof {exit 0} + +{ + let _ = + let chan = open_in "fc_lexer.mll" in begin + translate (Lexing.from_channel chan ); + close_in chan + end + +} + +\end{bluetext} + +\begin{alternate} +Legacy.Printexc.print;; +- : ('a -> 'b) -> 'a -> 'b = <fun> +\end{alternate} +\item caveat \\ + the longest(shortest) win, then consider the order of each regexp + later. + Actions are evaluated after the \textit{lexbuf} is bound to the + current lexer buffer and the identifier following the keyword + \textit{as} to the matched string. +\item position \\ + The lexing engine manages only the \textit{pos\_cnum} field of + \textit{lexbuf.lex\_curr\_p} with the number of chars read from the + start of lexbuf. you are responsible for the other fields to be + accurate. + i.e. + \begin{bluetext} +let incr_linenum lexbuf = Lexing.( + let pos = lexbuf.lex_curr_p in + lexbuf.lex_curr_p <- { pos with + pos_lnum = pos.pos_lnum + 1; (* line number *) + pos_bol = pos.pos_cnum; (* the offset of the beginning of the + line *) + }) + \end{bluetext} + +\item combine with ocamlyacc \\ +normally just add \textit{open Parse} in the header, and use the +token defined in \textit{Parse} + +\item tips \\ + \begin{enumerate} + \item keyword table + \begin{bluetext} + {let keyword_table = Hashtbl.create 72 + let _ = ... + } + rule token = parse + | ['A'-'z' 'a'-'z'] ['A'-'z' 'A'-'z' '0'-'9' '_'] * as id + {try Hashtbl.find keyword_table id with Not_found -> IDENT id} + | ... + \end{bluetext} + \item for sharing \textbf{why ocamllex sucks}\\ + some complex regexps are not easy to write, like string, but sharing + is hard. To my knowledge, cpp preprocessor is fit for this task here. + camlp4 is not fit, it will check other syntax, if you use ulex, camlp4 + will do this job. + So, my Makefile is part like this + \begin{bluetext} +lexer : + cpp fc_lexer.mll.bak > fc_lexer.mll + ocamlbuild -no-hygiene fc_lexer.byte -- + \end{bluetext} + even so, sharing is still very hard, since the built in compiler used another way to write string lexing. painful too sharing. so ulex wins in both aspects. + sharing in ulex is much easier. + \end{enumerate} + + +\end{enumerate} +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "master" +%%% End: + + diff --git a/ocaml-yacc.tex b/ocaml-yacc.tex new file mode 100644 index 0000000..b9a3f6b --- /dev/null +++ b/ocaml-yacc.tex @@ -0,0 +1,610 @@ + + + +\begin{enumerate} +\item syntax \\ + + \begin{bluetext} + % {header + % } + %% + Grammar rules + %% + trailer + \end{bluetext} + +A tiny example as follows (It has a subtle bug, readers should find it) + \begin{bluecode} + +% { + open Printf + let parse_error s = + print_endline "error\n"; + print_endline s ; + flush stdout +%} + + +%token <float> NUM +%token PLUS MINUS MULTIPLY DIVIDE CARET UMINUS +%token NEWLINE + +%start input +%type <unit> input +%type <float> exp +%% /* rules and actions */ + +input: /* empty */ {} + | input line {} +; + +line: NEWLINE {} + |exp NEWLINE {printf "\t%.10g\n" $1 ; flush stdout} +; + +exp: NUM { $1 } + |exp exp PLUS {$1 +. $2 } + |exp exp MINUS {$1 -. $2 } + |exp exp MULTIPLY {$1 *. $2 } + |exp exp DIVIDE {$1 /. $2 } + |exp exp CARET {$1 ** $2 } + |exp UMINUS {-. $1 } +; + +%% +\end{bluecode} + +Notice that start non-terminal can be given \textit{several}, then you will +have a different .mli file, notice that it's different from ocamllex, +ocamlyacc will generate a .mli file, so here we get the output +interface as follows: + +\begin{bluetext} + %type <type> nonterminal ... nonterminal + %start symbol ... symbol +\end{bluetext} + +\begin{bluecode} +type token = + | NUM of (float) + | PLUS + | MINUS + | MULTIPLY + | DIVIDE + | CARET + | UMINUS + | NEWLINE +val input : + (Lexing.lexbuf -> token) -> Lexing.lexbuf -> unit +val exp : + (Lexing.lexbuf -> token) -> Lexing.lexbuf -> float +\end{bluecode} + + +first gammar +\begin{bluetext} + input : /*empty*/ {} | input line {}; +\end{bluetext} +Notice here we \textbf{preferred left-recursive} in yacc. +The underlying theory for LALR prefers LR. because all the elements +\textit{must be shifted onto the stack before the rule can be applied even once.} +empty corresponds Ctrl-d. +\begin{bluetext} + exp : NUM | exp exp PLUS | exp exp MINUS ... ; +\end{bluetext} + +Here is our lexer +\begin{bluetext} +{ + open Rpcalc + open Printf + let first = ref true +} +let digit = ['0'-'9'] +rule token = parse + |[' ' '\t' ] {token lexbuf} + |'\n' {NEWLINE} + | (digit+ | "." digit+ | digit+ "." digit*) as num + {NUM (float_of_string num)} + |'+' {PLUS} + |'-' {MINUS} + |'*' {MULTIPLY} + |'/' {DIVIDE} + |'^' {CARET} + |'n' {UMINUS} + |_ as c {printf "unrecognized char %c" c ; token lexbuf} + |eof { + if !first then begin first := false; NEWLINE end + else raise End_of_file } + + +{ + let main () = + let file = Sys.argv.(1) in + let chan = open_in file in + try + let lexbuf = Lexing.from_channel chan in + while true do + Rpcalc.input token lexbuf + done + with End_of_file -> close_in chan + + let _ = Printexc.print main () + +} +\end{bluetext} + +we write driver function in lexer for convenience, since lexer depends +on yacc. \textit{Printex.print} +\item precedence associatitvity \\ + operator precedence is determined by the line ordering of the + declarations; + \textit{\%prec} in the grammar section, the \textit{\%prec} simply + instructs ocamlyacc that the rule \textit{|Minus exp } has the same + precedence as NEG + \textit{\%left,\%right,\%nonassoc} + \begin{enumerate} + \item The associatitvity of an operator op determines how repeated + uses of the operator nest: whether \textit{x op y op z} is parsed + by grouping \textit{x} with \textit{y} or. nonassoc will consider + it as an error + \item All the tokens declared in a single precedence declaration + have equal precedence and nest together according to their + associatitvity + \end{enumerate} + + + \begin{bluetext} +%{ + open Printf + open Lexing + let parse_error s = + print_endline "impossible happend! panic \n"; + print_endline s ; + flush stdout +%} + +%token NEWLINE +%token LPAREN RPAREN +%token <float> NUM +%token PLUS MINUS MULTIPLY DIVIDE CARET + + +%left PLUS MINUS MULTIPLY DIVIDE NEG +%right CARET + +%start input +%start exp +%type <unit> input +%type <float> exp + +%% /* rules and actions */ + + +input: /* empty */ {} + | input line {} +; + +line: NEWLINE {} + |exp NEWLINE {printf "\t%.10g\n" $1 ; flush stdout} +; + +exp: NUM { $1 } + | exp PLUS exp { $1 +. $3 } + | exp MINUS exp { $1 -. $3 } + | exp MULTIPLY exp { $1 *. $3 } + | exp DIVIDE exp { $1 /. $3 } + | MINUS exp %prec NEG { -. $2 } + | exp CARET exp { $1 ** $3 } + | LPAREN exp RPAREN { $2 } +; + +%% + \end{bluetext} + % $ + notice here the \textit{NEG} is a place a holder, it takes the + place, but it's not a token. since here we need \textit{MINUS} has + different levels. the interface file is as follows + + \begin{bluetext} +type token = + | NEWLINE + | LPAREN + | RPAREN + | NUM of (float) + | PLUS + | MINUS + | MULTIPLY + | DIVIDE + | CARET + +val input : + (Lexing.lexbuf -> token) -> Lexing.lexbuf -> unit +val exp : + (Lexing.lexbuf -> token) -> Lexing.lexbuf -> float + \end{bluetext} + +\item error recovery \\ + by default, the parser function raises exception after calling \textit{parse\_error} + The ocamlyacc reserved word \textit{error} + + \begin{bluetext} + line: NEWLINE |exp NEWLINE | error NEWLINE {} + \end{bluetext} + if an expression that cannot be evaluated is read, the error will be + recognized by the third rule for line, and parsing will continue + (parse\_error is still called). This form of error recovery deals + with syntax errors. There are also other kinds of errors. + +\item location tracking \\ + it's very easy. First, remember to use \textit{Lexing.new\_line} to + track your line number, then use + \textit{rhs\_start\_pos, rhs\_end\_pos} to track the symbolposition. + 1 for the leftmost component. +\begin{bluetext} + Parsing.( + let start_pos = rhs_start_pos 3 in + let end_pos = rhs_end_pos 3 in + printf "%d.%d --- %d.%d: dbz" + start_pos.pos_lnum (start_pos.pos_cnum -start_pos.pos_bol) + end_pos.pos_lnum (end_pos.pos_cnum - end_pos.pos_bol); + 1.0 + ) +\end{bluetext} +For groupings, use the following function \textit{symbol\_start\_pos, + symbol\_end\_pos} + +\textit{symbol\_start\_pos} is set to the beginning of the leftmost +component, and \textit{symbol\_end\_pos} to the end of the rightmost component. +\item a complex example + + \begin{bluetext} +%{ + open Printf + open Lexing + let parse_error s = + print_endline "impossible happend! panic \n"; + print_endline s ; + flush stdout + let var_table = Hashtbl.create 16 +%} + + +%token NEWLINE +%token LPAREN RPAREN EQ +%token <float> NUM +%token PLUS MINUS MULTIPLY DIVIDE CARET +%token <string> VAR +%token <float->float>FNCT /* built in function */ + +%left PLUS MINUS +%left MULTIPLY DIVIDE +%left NEG + +%right CARET +%start input +%start exp +%type <unit> input +%type <float> exp + +%% /* rules and actions */ + + +input: /* empty */ {} + | input line {} +; + +line: NEWLINE {} + |exp NEWLINE {printf "\t%.10g\n" $1 ; flush stdout} + |error NEWLINE {} +; + +exp: NUM { $1 } + | VAR + {try Hashtbl.find var_table $1 + with Not_found -> + printf "unbound value '%s'\n" $1; + 0.0 + } + | VAR EQ exp + {Hashtbl.replace var_table $1 $3; $3} + | FNCT LPAREN exp RPAREN + { $1 $3 } + | exp PLUS exp { $1 +. $3 } + | exp MINUS exp { $1 -. $3 } + | exp MULTIPLY exp { $1 *. $3 } + | exp DIVIDE exp + { if $3 <> 0. then $1 /. $3 + else + Parsing.( + let start_pos = rhs_start_pos 3 in + let end_pos = rhs_end_pos 3 in + printf "%d.%d --- %d.%d: dbz" + start_pos.pos_lnum (start_pos.pos_cnum -start_pos.pos_bol) + end_pos.pos_lnum (end_pos.pos_cnum - end_pos.pos_bol); + 1.0 + )} + | MINUS exp %prec NEG { -. $2 } + | exp CARET exp { $1 ** $3 } + | LPAREN exp RPAREN { $2 } +; + +%% + + + +(** lexer file *) +{ + open Rpcalc + open Printf + let first = ref true +} + + +let digit = ['0'-'9'] +let id = ['a'-'z']+ +rule token = parse + |[' ' '\t' ] {token lexbuf} + |'\n' {Lexing.new_line lexbuf ; NEWLINE} + | (digit+ | "." digit+ | digit+ "." digit*) as num + {NUM (float_of_string num)} + |'+' {PLUS} + |'-' {MINUS} + |'*' {MULTIPLY} + |'/' {DIVIDE} + |'^' {CARET} + |'(' {LPAREN} + |')' {RPAREN} + |"sin" {FNCT(sin)} + |"cos" {FNCT(cos) } + |id as x {VAR x} + |'=' {EQ} + |_ as c {printf "unrecognized char %c" c ; token lexbuf} + |eof { + if !first then begin first := false; NEWLINE end + else raise End_of_file } + + +{ + let main () = + let file = Sys.argv.(1) in + let chan = open_in file in + try + let lexbuf = Lexing.from_channel chan in + while true do + Rpcalc.input token lexbuf + done + with End_of_file -> close_in chan + + let _ = Printexc.print main () + +} + +\end{bluetext} +%$ in my opinion, the best practice is first modify .mly file, then +change .mll file later +\item shift reduce conflict \\ + + \begin{bluetext} + + +%token ID COMMA COLON +%token BOGUS /* NEVER LEX */ +%start def +%type <unit>def +%% +def: param_spec return_spec COMMA {} + ; +param_spec: ty {} + | name_list COLON ty {} + ; + +/* +return_spec: + ty {} + | name COLON ty {} + + | ID BOGUS {} // This rule is never used + ; +*/ + +/* another way to fix the prob */ + +return_spec : ty {} + | ID COLON ty {} + +ty: ID {} + ; +name: ID {} + ; +name_list: + name {} + | name COMMA name_list {} + ; + + + \end{bluetext} + + + \item shift-reduce conflict \\ + a very nice tutorial + \href{http://www.cs.uiuc.edu/class/sp10/cs421/lectures/lecture%2010%20supp.pdf}{shift-reduce} + the prec trick is covered not correctly in this tutorial. + + The symbols are declared to associate to the left, right, + nonassoc. The symbols are \textit{usually} tokens, they can + also be \textit{dummy} nonterminals, for use with the \%prec + directive in the rule. + + \begin{enumerate} + \item Tokens and rules have precedences. The precedence of a + \textit{rule} is the precedence of its \textit{rightmost} + terminal. you can override this default by using the + \textit{\%prec} directive in the rule + \item A reduce/reduce conflict is resolved in favor of the + first ruel(in the order given by the source file) + \item A shift/reduce conflict is resolved by comparing the + \textit{predecence of the rule to be reduced} with the \textit{precedence of + the token to be shifted}. If the predecence of the rule is + higher, then the rule will be reducecd; if the predecence of + the token is higher then token will be shifted. + \item A shift/reduce conflict between a rule and a token with + the same precedence will be resolved using the + associativity. + \item when a shift/reduce can not be resolved, a warning, and + in favor of \textit{shift} + \end{enumerate} + \begin{bluecode} + +%{%} + + +%token OPAREN CPAREN ID SEMIC DOT INT EQUAL + +%start stmt +%type <int> stmt + +%% +stmt: methodcall {0} | arrayasgn {0} +; + +/* +previous +methodcall: target OPAREN CPAREN SEMIC {0} +; +target: ID DOT ID {0} |ID {0} +; + +our strategy was to remove the "extraneous" non-terminal in the +methodcall production, by moving one of the right-hand sides of target +to the methodcall production + +*/ + +methodcall: target OPAREN CPAREN SEMIC {0} | ID OPAREN CPAREN SEMIC {0} +; +target: ID DOT ID {0} +; +arrayasgn: ID OPAREN INT CPAREN EQUAL INT SEMIC {0} +; + + + +\end{bluecode} + +\begin{bluecode} + %{ +%} + +%token RETURN ID SEMI EQ PLUS + +%start methodbody +%type <unit> methodbody + +%% + +methodbody: stmtlist RETURN ID {} +; +/* +stmtlist: stmt stmtlist {} | stmt {} +; +the strategy here is simple, we use left-recursion instead of +right-recursion +*/ + +stmtlist: stmtlist stmt {} | stmt {} +; + +stmt: RETURN ID SEMI {} | ID EQ ID PLUS ID {} +; + +\end{bluecode} + + +\begin{bluecode} +%{ + +%} + +%token PLUS TIMES ID LPAREN RPAREN + + +%left PLUS +%left TIMES /* weird ocamlyacc can not detect typo TIMEs */ + +/* +here we add assiocaitivity and precedence +*/ + +%start expr +%type <unit> expr + + +%% + +expr: expr PLUS expr {} + | expr TIMES expr {} + | ID {} + | LPAREN expr RPAREN {} +; + +\end{bluecode} + + +\begin{bluecode} +%{ + +%} + +%token ID EQ LPAREN RPAREN IF ELSE THEN + + +%nonassoc THEN +%nonassoc ELSE + +/* +here we used a nice trick to +handle such ambiguity. set precedence of THEN, ELSE +both needed +*/ + +%start stmt +%type <unit> stmt + +%% + + +stmt: ID EQ ID {} + | IF LPAREN ID RPAREN THEN stmt {} + | IF LPAREN ID RPAREN THEN stmt ELSE stmt {} + + +; +/* +It's tricky here we modify the grammar an unambiguous one +*/ + + +/* +stmt : matched {} + | unmatched {} + ; + +matched : IF '(' ID ')' matched ELSE matched {} + ; + +unmatched : IF '(' ID ')' matched {} + | IF '(' ID ')' unmatched {} + | IF '(' ID ')' matched ELSE unmatched {} + ; +*/ +%% + +\end{bluecode} + + +\end{enumerate} +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "master" +%%% End: diff --git a/ocaml.pdf b/ocaml.pdf new file mode 100644 index 0000000..770ebe3 Binary files /dev/null and b/ocaml.pdf differ diff --git a/of.tex b/of.tex new file mode 100644 index 0000000..223601e --- /dev/null +++ b/of.tex @@ -0,0 +1,48 @@ +\subsection{ocamlfind} + +\href{http://projects.camlcity.org/projects/dl/findlib-1.2.3/doc/ref-html/r17.html}{findlib} + + +\begin{itemize} +\item \emph{ocamlfind browser -all } + +\item \emph{ocamlfind browser -package batteries} + +\item syntax extension \\ +ocamlfind ocamldep -package camlp4,xstrp4 -syntax camlp4r file1.ml file2.ml \\ +ocamlfind can only handle flag camlp4r, flag camlp4o, so if you want to +use other extensions, use -package camlp4,xstrp4, i.e. -package camlp4.macro + +\item META file (exmaple) + + +\begin{bluetext} +name="toplevel" +description = "toplevel hacking" +requires = "" +archive(byte) = "dir_top_level.cmo" +archive(native) = "dir_top_level.cmx" +version = "0.1" +\end{bluetext} + + +\item simple Makefile for ocamlfind + + +\begin{bluetext} +all: + @ocamlfind install toplevel META _build/*.cm[oxi] +clean: + @ocamlfind remove toplevel +\end{bluetext} + + + +\end{itemize} + + + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "master" +%%% End: diff --git a/prv_master.log b/prv_master.log new file mode 100644 index 0000000..986b7a6 --- /dev/null +++ b/prv_master.log @@ -0,0 +1,1614 @@ +This is pdfTeX, Version 3.1415926-1.40.11 (TeX Live 2010) (format=latex 2010.10.24) 3 DEC 2011 11:44 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**&latex prv_master.ini \nonstopmode\nofiles\PassOptionsToPackage{active,tightp +age,auctex}{preview}\AtBeginDocument{\ifx\ifPreview\undefined\RequirePackage[di +splaymath,floats,graphics,textmath,sections,footnotes]{preview}[2004/11/05]\fi} + \input master.tex +(./prv_master.ini +LaTeX2e <2009/09/24> +Babel <v3.8l> and hyphenation patterns for english, dumylang, nohyphenation, ge +rman-x-2009-06-19, ngerman-x-2009-06-19, ancientgreek, ibycus, arabic, armenian +, basque, bulgarian, catalan, pinyin, coptic, croatian, czech, danish, dutch, u +kenglish, usenglishmax, esperanto, estonian, farsi, finnish, french, galician, +german, ngerman, swissgerman, monogreek, greek, hungarian, icelandic, assamese, + bengali, gujarati, hindi, kannada, malayalam, marathi, oriya, panjabi, tamil, +telugu, indonesian, interlingua, irish, italian, kurmanji, lao, latin, latvian, + lithuanian, mongolian, mongolianlmc, bokmal, nynorsk, polish, portuguese, roma +nian, russian, sanskrit, serbian, slovak, slovenian, spanish, swedish, turkish, + turkmen, ukrainian, uppersorbian, welsh, loaded. +(/usr/local/texlive/2010/texmf-dist/tex/latex/carlisle/mylatex.ltx) +(/usr/local/texlive/2010/texmf-dist/tex/latex/tools/.tex File ignored)) +No auxiliary output files. + +(./master.tex (/usr/local/texlive/2010/texmf-dist/tex/latex/base/article.cls +Document Class: article 2007/10/19 v1.4h Standard LaTeX document class +(/usr/local/texlive/2010/texmf-dist/tex/latex/base/size12.clo +File: size12.clo 2007/10/19 v1.4h Standard LaTeX file (size option) +) +\c@part=\count79 +\c@section=\count80 +\c@subsection=\count81 +\c@subsubsection=\count82 +\c@paragraph=\count83 +\c@subparagraph=\count84 +\c@figure=\count85 +\c@table=\count86 +\abovecaptionskip=\skip41 +\belowcaptionskip=\skip42 +\bibindent=\dimen102 +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/base/inputenc.sty +Package: inputenc 2008/03/30 v1.1d Input encoding file +\inpenc@prehook=\toks14 +\inpenc@posthook=\toks15 + +(/usr/local/texlive/2010/texmf-dist/tex/latex/base/latin9.def +File: latin9.def 2008/03/30 v1.1d Input encoding file +)) +(/usr/local/texlive/2010/texmf-dist/tex/latex/geometry/geometry.sty +Package: geometry 2010/07/13 v5.5 Page Geometry + +(/usr/local/texlive/2010/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 1999/03/16 v1.13 key=value parser (DPC) +\KV@toks@=\toks16 +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/oberdiek/ifpdf.sty +Package: ifpdf 2010/01/28 v2.1 Provides the ifpdf switch (HO) +Package ifpdf Info: pdfTeX in pdf mode not detected. +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/oberdiek/ifvtex.sty +Package: ifvtex 2010/03/01 v1.5 Switches for detecting VTeX and its modes (HO) +Package ifvtex Info: VTeX not detected. +) +\Gm@cnth=\count87 +\Gm@cntv=\count88 +\c@Gm@tempcnt=\count89 +\Gm@bindingoffset=\dimen103 +\Gm@wd@mp=\dimen104 +\Gm@odd@mp=\dimen105 +\Gm@even@mp=\dimen106 +\Gm@layoutwidth=\dimen107 +\Gm@layoutheight=\dimen108 +\Gm@layouthoffset=\dimen109 +\Gm@layoutvoffset=\dimen110 +\Gm@dimlist=\toks17 +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/amsmath/amsmath.sty +Package: amsmath 2000/07/18 v2.13 AMS math features +\@mathmargin=\skip43 + +For additional information on amsmath, use the `?' option. +(/usr/local/texlive/2010/texmf-dist/tex/latex/amsmath/amstext.sty +Package: amstext 2000/06/29 v2.01 + +(/usr/local/texlive/2010/texmf-dist/tex/latex/amsmath/amsgen.sty +File: amsgen.sty 1999/11/30 v2.0 +\@emptytoks=\toks18 +\ex@=\dimen111 +)) +(/usr/local/texlive/2010/texmf-dist/tex/latex/amsmath/amsbsy.sty +Package: amsbsy 1999/11/29 v1.2d +\pmbraise@=\dimen112 +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/amsmath/amsopn.sty +Package: amsopn 1999/12/14 v2.01 operator names +) +\inf@bad=\count90 +LaTeX Info: Redefining \frac on input line 211. +\uproot@=\count91 +\leftroot@=\count92 +LaTeX Info: Redefining \overline on input line 307. +\classnum@=\count93 +\DOTSCASE@=\count94 +LaTeX Info: Redefining \ldots on input line 379. +LaTeX Info: Redefining \dots on input line 382. +LaTeX Info: Redefining \cdots on input line 467. +\Mathstrutbox@=\box26 +\strutbox@=\box27 +\big@size=\dimen113 +LaTeX Font Info: Redeclaring font encoding OML on input line 567. +LaTeX Font Info: Redeclaring font encoding OMS on input line 568. +\macc@depth=\count95 +\c@MaxMatrixCols=\count96 +\dotsspace@=\muskip10 +\c@parentequation=\count97 +\dspbrk@lvl=\count98 +\tag@help=\toks19 +\row@=\count99 +\column@=\count100 +\maxfields@=\count101 +\andhelp@=\toks20 +\eqnshift@=\dimen114 +\alignsep@=\dimen115 +\tagshift@=\dimen116 +\tagwidth@=\dimen117 +\totwidth@=\dimen118 +\lineht@=\dimen119 +\@envbody=\toks21 +\multlinegap=\skip44 +\multlinetaggap=\skip45 +\mathdisplay@stack=\toks22 +LaTeX Info: Redefining \[ on input line 2666. +LaTeX Info: Redefining \] on input line 2667. +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/amsfonts/amssymb.sty +Package: amssymb 2009/06/22 v3.00 + +(/usr/local/texlive/2010/texmf-dist/tex/latex/amsfonts/amsfonts.sty +Package: amsfonts 2009/06/22 v3.00 Basic AMSFonts support +\symAMSa=\mathgroup4 +\symAMSb=\mathgroup5 +LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold' +(Font) U/euf/m/n --> U/euf/b/n on input line 96. +)) +(/usr/local/texlive/2010/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR) + +(/usr/local/texlive/2010/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2009/02/05 v1.0o Standard LaTeX Graphics (DPC,SPQR) + +(/usr/local/texlive/2010/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 1999/03/16 v1.09 sin cos tan (DPC) +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/latexconfig/graphics.cfg +File: graphics.cfg 2010/04/23 v1.9 graphics configuration of TeX Live +) +Package graphics Info: Driver file: dvips.def on input line 91. + +(/usr/local/texlive/2010/texmf-dist/tex/latex/graphics/dvips.def +File: dvips.def 1999/02/16 v3.0i Driver-dependant file (DPC,SPQR) +)) +\Gin@req@height=\dimen120 +\Gin@req@width=\dimen121 +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/float/float.sty +Package: float 2001/11/08 v1.3d Float enhancements (AL) +\c@float@type=\count102 +\float@exts=\toks23 +\float@box=\box28 +\@float@everytoks=\toks24 +\@floatcapt=\box29 +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/tools/array.sty +Package: array 2008/09/09 v2.4c Tabular extension package (FMi) +\col@sep=\dimen122 +\extrarowheight=\dimen123 +\NC@list=\toks25 +\extratabsurround=\skip46 +\backup@length=\skip47 +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty +(/usr/local/texlive/2010/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty +(/usr/local/texlive/2010/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.te +x +\pgfutil@everybye=\toks26 +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def +) (/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex +Package: pgfrcs 2008/02/20 v2.00 (rcs-revision 1.21) +)) +Package: pgf 2008/01/15 v2.00 (rcs-revision 1.12) + (/usr/local/texlive/2010/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty +(/usr/local/texlive/2010/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex +Package: pgfsys 2008/02/07 v2.00 (rcs-revision 1.31) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex +\pgfkeys@pathtoks=\toks27 +\pgfkeys@temptoks=\toks28 +) +\pgf@x=\dimen124 +\pgf@y=\dimen125 +\pgf@xa=\dimen126 +\pgf@ya=\dimen127 +\pgf@xb=\dimen128 +\pgf@yb=\dimen129 +\pgf@xc=\dimen130 +\pgf@yc=\dimen131 +\c@pgf@counta=\count103 +\c@pgf@countb=\count104 +\c@pgf@countc=\count105 +\c@pgf@countd=\count106 +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg +File: pgf.cfg 2008/01/13 (rcs-revision 1.6) +) +Package pgfsys Info: Driver file for pgf: pgfsys-dvips.def on input line 885. + +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-dvips.de +f +File: pgfsys-dvips.def 2007/12/12 (rcs-revision 1.19) + +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-p +ostscript.def +File: pgfsys-common-postscript.def 2008/02/07 (rcs-revision 1.18) +\pgf@objectcount=\count107 +))) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath. +code.tex +File: pgfsyssoftpath.code.tex 2008/01/23 (rcs-revision 1.6) +\pgfsyssoftpath@smallbuffer@items=\count108 +\pgfsyssoftpath@bigbuffer@items=\count109 +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol. +code.tex +File: pgfsysprotocol.code.tex 2006/10/16 (rcs-revision 1.4) +)) (/usr/local/texlive/2010/texmf-dist/tex/latex/xcolor/xcolor.sty +Package: xcolor 2007/01/21 v2.11 LaTeX color extensions (UK) + +(/usr/local/texlive/2010/texmf-dist/tex/latex/latexconfig/color.cfg +File: color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive +) +Package xcolor Info: Driver file: dvips.def on input line 225. +Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1337. +Package xcolor Info: Model `RGB' extended on input line 1353. +Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1355. +Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1356. +Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1357. +Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1358. +Package xcolor Info: Model `Gray' substituted by `gray' on input line 1359. +Package xcolor Info: Model `wave' substituted by `hsb' on input line 1360. +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex +Package: pgfcore 2008/01/15 v2.00 (rcs-revision 1.6) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex +\pgfmath@box=\box30 +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex +\pgfmath@stack=\toks29 +\c@pgfmath@parsecounta=\count110 +\c@pgfmath@parsecountb=\count111 +\c@pgfmath@parsecountc=\count112 +\pgfmath@parsex=\dimen132 +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/math/pgfmathoperations.code +.tex +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/math/pgfmathtrig.code.tex) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/math/pgfmathrnd.code.tex)) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/math/pgfmathbase.code.tex)) +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.co +de.tex +File: pgfcorepoints.code.tex 2008/02/03 (rcs-revision 1.13) +\pgf@picminx=\dimen133 +\pgf@picmaxx=\dimen134 +\pgf@picminy=\dimen135 +\pgf@picmaxy=\dimen136 +\pgf@pathminx=\dimen137 +\pgf@pathmaxx=\dimen138 +\pgf@pathminy=\dimen139 +\pgf@pathmaxy=\dimen140 +\pgf@xx=\dimen141 +\pgf@xy=\dimen142 +\pgf@yx=\dimen143 +\pgf@yy=\dimen144 +\pgf@zx=\dimen145 +\pgf@zy=\dimen146 +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconst +ruct.code.tex +File: pgfcorepathconstruct.code.tex 2008/02/13 (rcs-revision 1.14) +\pgf@path@lastx=\dimen147 +\pgf@path@lasty=\dimen148 +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage +.code.tex +File: pgfcorepathusage.code.tex 2008/01/23 (rcs-revision 1.11) +\pgf@shorten@end@additional=\dimen149 +\pgf@shorten@start@additional=\dimen150 +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.co +de.tex +File: pgfcorescopes.code.tex 2008/01/15 (rcs-revision 1.26) +\pgfpic=\box31 +\pgf@hbox=\box32 +\pgf@layerbox@main=\box33 +\pgf@picture@serial@count=\count113 +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicst +ate.code.tex +File: pgfcoregraphicstate.code.tex 2007/12/12 (rcs-revision 1.8) +\pgflinewidth=\dimen151 +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransform +ations.code.tex +File: pgfcoretransformations.code.tex 2008/02/04 (rcs-revision 1.10) +\pgf@pt@x=\dimen152 +\pgf@pt@y=\dimen153 +\pgf@pt@temp=\dimen154 +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.cod +e.tex +File: pgfcorequick.code.tex 2006/10/11 (rcs-revision 1.2) +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.c +ode.tex +File: pgfcoreobjects.code.tex 2006/10/11 (rcs-revision 1.2) +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathproce +ssing.code.tex +File: pgfcorepathprocessing.code.tex 2008/01/23 (rcs-revision 1.7) +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.co +de.tex +File: pgfcorearrows.code.tex 2007/06/07 (rcs-revision 1.8) +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.cod +e.tex +File: pgfcoreshade.code.tex 2007/12/10 (rcs-revision 1.9) +\pgf@max=\dimen155 +\pgf@sys@shading@range@num=\count114 +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.cod +e.tex +File: pgfcoreimage.code.tex 2008/01/15 (rcs-revision 1.1) +\pgfexternal@startupbox=\box34 +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.co +de.tex +File: pgfcorelayers.code.tex 2008/01/15 (rcs-revision 1.1) +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretranspare +ncy.code.tex +File: pgfcoretransparency.code.tex 2008/01/17 (rcs-revision 1.2) +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns. +code.tex +File: pgfcorepatterns.code.tex 2008/01/15 (rcs-revision 1.1) +))) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.cod +e.tex +File: pgfmoduleshapes.code.tex 2008/02/13 (rcs-revision 1.4) +\pgfnodeparttextbox=\box35 +\toks@savedmacro=\toks30 +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code. +tex +File: pgfmoduleplot.code.tex 2008/01/15 (rcs-revision 1.1) +\pgf@plotwrite=\write3 +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version +-0-65.sty +Package: pgfcomp-version-0-65 2007/07/03 v2.00 (rcs-revision 1.7) +\pgf@nodesepstart=\dimen156 +\pgf@nodesepend=\dimen157 +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version +-1-18.sty +Package: pgfcomp-version-1-18 2007/07/23 v2.00 (rcs-revision 1.1) +)) +(/usr/local/texlive/2010/texmf-dist/tex/latex/pgf/utilities/pgffor.sty +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex +Package: pgffor 2007/11/07 v2.00 (rcs-revision 1.8) +\pgffor@iter=\dimen158 +\pgffor@skip=\dimen159 +)) +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.cod +e.tex +Package: tikz 2008/02/13 v2.00 (rcs-revision 1.27) + +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothan +dlers.code.tex +File: pgflibraryplothandlers.code.tex 2007/03/09 v2.00 (rcs-revision 1.9) +\pgf@plot@mark@count=\count115 +\pgfplotmarksize=\dimen160 +) +\tikz@lastx=\dimen161 +\tikz@lasty=\dimen162 +\tikz@lastxsaved=\dimen163 +\tikz@lastysaved=\dimen164 +\tikzleveldistance=\dimen165 +\tikzsiblingdistance=\dimen166 +\tikz@figbox=\box36 +\tikz@tempbox=\box37 +\tikztreelevel=\count116 +\tikznumberofchildren=\count117 +\tikznumberofcurrentchild=\count118 +\tikz@fig@count=\count119 + +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.cod +e.tex +File: pgfmodulematrix.code.tex 2008/01/15 (rcs-revision 1.1) +\pgfmatrixcurrentrow=\count120 +\pgfmatrixcurrentcolumn=\count121 +\pgf@matrix@numberofcolumns=\count122 +) +\tikz@expandcount=\count123 + +(/usr/local/texlive/2010/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie +s/tikzlibrarytopaths.code.tex +File: tikzlibrarytopaths.code.tex 2008/01/09 v2.00 (rcs-revision 1.1) +))) +(/usr/local/texlive/2010/texmf-dist/tex/latex/tools/enumerate.sty +Package: enumerate 1999/03/05 v3.00 enumerate extensions (DPC) +\@enLab=\toks31 +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/lm/lmodern.sty +Package: lmodern 2009/10/30 v1.6 Latin Modern Fonts +LaTeX Font Info: Overwriting symbol font `operators' in version `normal' +(Font) OT1/cmr/m/n --> OT1/lmr/m/n on input line 22. +LaTeX Font Info: Overwriting symbol font `letters' in version `normal' +(Font) OML/cmm/m/it --> OML/lmm/m/it on input line 23. +LaTeX Font Info: Overwriting symbol font `symbols' in version `normal' +(Font) OMS/cmsy/m/n --> OMS/lmsy/m/n on input line 24. +LaTeX Font Info: Overwriting symbol font `largesymbols' in version `normal' +(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 25. +LaTeX Font Info: Overwriting symbol font `operators' in version `bold' +(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 26. +LaTeX Font Info: Overwriting symbol font `letters' in version `bold' +(Font) OML/cmm/b/it --> OML/lmm/b/it on input line 27. +LaTeX Font Info: Overwriting symbol font `symbols' in version `bold' +(Font) OMS/cmsy/b/n --> OMS/lmsy/b/n on input line 28. +LaTeX Font Info: Overwriting symbol font `largesymbols' in version `bold' +(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 29. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal' +(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 31. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `normal' +(Font) OT1/cmss/m/n --> OT1/lmss/m/n on input line 32. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal' +(Font) OT1/cmr/m/it --> OT1/lmr/m/it on input line 33. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `normal' +(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 34. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold' +(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 35. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold' +(Font) OT1/cmss/bx/n --> OT1/lmss/bx/n on input line 36. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold' +(Font) OT1/cmr/bx/it --> OT1/lmr/bx/it on input line 37. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold' +(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 38. +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/base/fontenc.sty +Package: fontenc 2005/09/27 v1.99g Standard LaTeX package + +(/usr/local/texlive/2010/texmf-dist/tex/latex/base/t1enc.def +File: t1enc.def 2005/09/27 v1.99g Standard LaTeX file +LaTeX Font Info: Redeclaring font encoding T1 on input line 43. +)) +(/usr/local/texlive/2010/texmf-dist/tex/latex/base/textcomp.sty +Package: textcomp 2005/09/27 v1.99g Standard LaTeX package +Package textcomp Info: Sub-encoding information: +(textcomp) 5 = only ISO-Adobe without \textcurrency +(textcomp) 4 = 5 + \texteuro +(textcomp) 3 = 4 + \textohm +(textcomp) 2 = 3 + \textestimated + \textcurrency +(textcomp) 1 = TS1 - \textcircled - \t +(textcomp) 0 = TS1 (full) +(textcomp) Font families with sub-encoding setting implement +(textcomp) only a restricted character set as indicated. +(textcomp) Family '?' is the default used for unknown fonts. +(textcomp) See the documentation for details. +Package textcomp Info: Setting ? sub-encoding to TS1/1 on input line 71. + +(/usr/local/texlive/2010/texmf-dist/tex/latex/base/ts1enc.def +File: ts1enc.def 2001/06/05 v3.0e (jk/car/fm) Standard LaTeX file +) +LaTeX Info: Redefining \oldstylenums on input line 266. +Package textcomp Info: Setting cmr sub-encoding to TS1/0 on input line 281. +Package textcomp Info: Setting cmss sub-encoding to TS1/0 on input line 282. +Package textcomp Info: Setting cmtt sub-encoding to TS1/0 on input line 283. +Package textcomp Info: Setting cmvtt sub-encoding to TS1/0 on input line 284. +Package textcomp Info: Setting cmbr sub-encoding to TS1/0 on input line 285. +Package textcomp Info: Setting cmtl sub-encoding to TS1/0 on input line 286. +Package textcomp Info: Setting ccr sub-encoding to TS1/0 on input line 287. +Package textcomp Info: Setting ptm sub-encoding to TS1/4 on input line 288. +Package textcomp Info: Setting pcr sub-encoding to TS1/4 on input line 289. +Package textcomp Info: Setting phv sub-encoding to TS1/4 on input line 290. +Package textcomp Info: Setting ppl sub-encoding to TS1/3 on input line 291. +Package textcomp Info: Setting pag sub-encoding to TS1/4 on input line 292. +Package textcomp Info: Setting pbk sub-encoding to TS1/4 on input line 293. +Package textcomp Info: Setting pnc sub-encoding to TS1/4 on input line 294. +Package textcomp Info: Setting pzc sub-encoding to TS1/4 on input line 295. +Package textcomp Info: Setting bch sub-encoding to TS1/4 on input line 296. +Package textcomp Info: Setting put sub-encoding to TS1/5 on input line 297. +Package textcomp Info: Setting uag sub-encoding to TS1/5 on input line 298. +Package textcomp Info: Setting ugq sub-encoding to TS1/5 on input line 299. +Package textcomp Info: Setting ul8 sub-encoding to TS1/4 on input line 300. +Package textcomp Info: Setting ul9 sub-encoding to TS1/4 on input line 301. +Package textcomp Info: Setting augie sub-encoding to TS1/5 on input line 302. +Package textcomp Info: Setting dayrom sub-encoding to TS1/3 on input line 303. +Package textcomp Info: Setting dayroms sub-encoding to TS1/3 on input line 304. + +Package textcomp Info: Setting pxr sub-encoding to TS1/0 on input line 305. +Package textcomp Info: Setting pxss sub-encoding to TS1/0 on input line 306. +Package textcomp Info: Setting pxtt sub-encoding to TS1/0 on input line 307. +Package textcomp Info: Setting txr sub-encoding to TS1/0 on input line 308. +Package textcomp Info: Setting txss sub-encoding to TS1/0 on input line 309. +Package textcomp Info: Setting txtt sub-encoding to TS1/0 on input line 310. +Package textcomp Info: Setting futs sub-encoding to TS1/4 on input line 311. +Package textcomp Info: Setting futx sub-encoding to TS1/4 on input line 312. +Package textcomp Info: Setting futj sub-encoding to TS1/4 on input line 313. +Package textcomp Info: Setting hlh sub-encoding to TS1/3 on input line 314. +Package textcomp Info: Setting hls sub-encoding to TS1/3 on input line 315. +Package textcomp Info: Setting hlst sub-encoding to TS1/3 on input line 316. +Package textcomp Info: Setting hlct sub-encoding to TS1/5 on input line 317. +Package textcomp Info: Setting hlx sub-encoding to TS1/5 on input line 318. +Package textcomp Info: Setting hlce sub-encoding to TS1/5 on input line 319. +Package textcomp Info: Setting hlcn sub-encoding to TS1/5 on input line 320. +Package textcomp Info: Setting hlcw sub-encoding to TS1/5 on input line 321. +Package textcomp Info: Setting hlcf sub-encoding to TS1/5 on input line 322. +Package textcomp Info: Setting pplx sub-encoding to TS1/3 on input line 323. +Package textcomp Info: Setting pplj sub-encoding to TS1/3 on input line 324. +Package textcomp Info: Setting ptmx sub-encoding to TS1/4 on input line 325. +Package textcomp Info: Setting ptmj sub-encoding to TS1/4 on input line 326. +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/hyperref/hyperref.sty +Package: hyperref 2010/06/18 v6.81g Hypertext links for LaTeX + +(/usr/local/texlive/2010/texmf-dist/tex/generic/oberdiek/ltxcmds.sty +Package: ltxcmds 2010/04/26 v1.7 LaTeX kernel commands for general use (HO) +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty +Package: kvsetkeys 2010/03/01 v1.9 Key value parser (HO) + +(/usr/local/texlive/2010/texmf-dist/tex/generic/oberdiek/infwarerr.sty +Package: infwarerr 2010/04/08 v1.3 Providing info/warning/message (HO) +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/oberdiek/etexcmds.sty +Package: etexcmds 2010/01/28 v1.3 Prefix for e-TeX command names (HO) +Package etexcmds Info: Could not find \expanded. +(etexcmds) That can mean that you are not using pdfTeX 1.50 or +(etexcmds) that some package has redefined \expanded. +(etexcmds) In the latter case, load this package earlier. +)) +(/usr/local/texlive/2010/texmf-dist/tex/generic/oberdiek/pdfescape.sty +Package: pdfescape 2010/03/01 v1.9 Provides hex, PDF name and string conversion +s (HO) + +(/usr/local/texlive/2010/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty +Package: pdftexcmds 2010/04/01 v0.9 Utility functions of pdfTeX for LuaTeX (HO) + + +(/usr/local/texlive/2010/texmf-dist/tex/generic/oberdiek/ifluatex.sty +Package: ifluatex 2010/03/01 v1.3 Provides the ifluatex switch (HO) +Package ifluatex Info: LuaTeX not detected. +) +Package pdftexcmds Info: LuaTeX not detected. +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +)) +(/usr/local/texlive/2010/texmf-dist/tex/generic/ifxetex/ifxetex.sty +Package: ifxetex 2009/01/23 v0.5 Provides ifxetex conditional +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/oberdiek/hycolor.sty +Package: hycolor 2009/12/12 v1.6 Color options of hyperref/bookmark (HO) + +(/usr/local/texlive/2010/texmf-dist/tex/latex/oberdiek/xcolor-patch.sty +Package: xcolor-patch 2009/12/12 xcolor patch +)) +(/usr/local/texlive/2010/texmf-dist/tex/latex/oberdiek/letltxmacro.sty +Package: letltxmacro 2008/06/24 v1.3 Let assignment for LaTeX macros (HO) +) +\@linkdim=\dimen167 +\Hy@linkcounter=\count124 +\Hy@pagecounter=\count125 + +(/usr/local/texlive/2010/texmf-dist/tex/latex/hyperref/pd1enc.def +File: pd1enc.def 2010/06/18 v6.81g Hyperref: PDFDocEncoding definition (HO) +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/oberdiek/intcalc.sty +Package: intcalc 2007/09/27 v1.1 Expandable integer calculations (HO) +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/latexconfig/hyperref.cfg +File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/oberdiek/kvoptions.sty +Package: kvoptions 2010/02/22 v3.7 Keyval support for LaTeX options (HO) +) +Package hyperref Info: Hyper figures OFF on input line 3658. +Package hyperref Info: Link nesting OFF on input line 3663. +Package hyperref Info: Hyper index ON on input line 3666. +Package hyperref Info: Plain pages OFF on input line 3673. +Package hyperref Info: Backreferencing OFF on input line 3678. + +Implicit mode ON; LaTeX internals redefined +Package hyperref Info: Bookmarks ON on input line 3874. +(/usr/local/texlive/2010/texmf-dist/tex/latex/url/url.sty +\Urlmuskip=\muskip11 +Package: url 2006/04/12 ver 3.3 Verb mode for urls, etc. +) +LaTeX Info: Redefining \url on input line 4159. + +(/usr/local/texlive/2010/texmf-dist/tex/generic/oberdiek/bitset.sty +Package: bitset 2007/09/28 v1.0 Data type bit set (HO) + +(/usr/local/texlive/2010/texmf-dist/tex/generic/oberdiek/bigintcalc.sty +Package: bigintcalc 2007/11/11 v1.1 Expandable big integer calculations (HO) +)) +\Fld@menulength=\count126 +\Field@Width=\dimen168 +\Fld@charsize=\dimen169 +\Field@toks=\toks32 +Package hyperref Info: Hyper figures OFF on input line 5137. +Package hyperref Info: Link nesting OFF on input line 5142. +Package hyperref Info: Hyper index ON on input line 5145. +Package hyperref Info: backreferencing OFF on input line 5152. +Package hyperref Info: Link coloring OFF on input line 5157. +Package hyperref Info: Link coloring with OCG OFF on input line 5162. +Package hyperref Info: PDF/A mode OFF on input line 5167. +LaTeX Info: Redefining \ref on input line 5207. +LaTeX Info: Redefining \pageref on input line 5211. + +(/usr/local/texlive/2010/texmf-dist/tex/generic/oberdiek/atbegshi.sty +Package: atbegshi 2010/03/25 v1.12 At begin shipout hook (HO) +) +\Hy@abspage=\count127 +\c@Item=\count128 +\c@Hfootnote=\count129 +) +* hyperref using default driver hdvips * +(/usr/local/texlive/2010/texmf-dist/tex/latex/hyperref/hdvips.def +File: hdvips.def 2010/06/18 v6.81g Hyperref driver for dvips + +(/usr/local/texlive/2010/texmf-dist/tex/latex/hyperref/pdfmark.def +File: pdfmark.def 2010/06/18 v6.81g Hyperref definitions for pdfmark specials +\pdf@docset=\toks33 +\pdf@box=\box38 +\pdf@toks=\toks34 +\pdf@defaulttoks=\toks35 +\Fld@listcount=\count130 +\c@bookmark@seq@number=\count131 + +(/usr/local/texlive/2010/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty +Package: rerunfilecheck 2010/03/16 v1.6 Rerun checks for auxiliary files (HO) + +(/usr/local/texlive/2010/texmf-dist/tex/latex/oberdiek/atveryend.sty +Package: atveryend 2010/03/24 v1.5 Hooks at very end of document (HO) +Package atveryend Info: \enddocument detected (standard). +) +(/usr/local/texlive/2010/texmf-dist/tex/generic/oberdiek/uniquecounter.sty +Package: uniquecounter 2009/12/18 v1.1 Provides unlimited unique counter (HO) +) +Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2 +71. +) +\Hy@SectionHShift=\skip48 +)) +(/usr/local/texlive/2010/texmf-dist/tex/latex/listings/listings.sty +\lst@mode=\count132 +\lst@gtempboxa=\box39 +\lst@token=\toks36 +\lst@length=\count133 +\lst@currlwidth=\dimen170 +\lst@column=\count134 +\lst@pos=\count135 +\lst@lostspace=\dimen171 +\lst@width=\dimen172 +\lst@newlines=\count136 +\lst@lineno=\count137 +\lst@maxwidth=\dimen173 + +(/usr/local/texlive/2010/texmf-dist/tex/latex/listings/lstmisc.sty +File: lstmisc.sty 2007/02/22 1.4 (Carsten Heinz) +\c@lstnumber=\count138 +\lst@skipnumbers=\count139 +\lst@framebox=\box40 +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/listings/listings.cfg +File: listings.cfg 2007/02/22 1.4 listings configuration +)) +Package: listings 2007/02/22 1.4 (Carsten Heinz) + +(/usr/local/texlive/2010/texmf-dist/tex/latex/tools/verbatim.sty +Package: verbatim 2003/08/22 v1.5q LaTeX2e package for verbatim enhancements +\every@verbatim=\toks37 +\verbatim@line=\toks38 +\verbatim@in@stream=\read1 +) +(/usr/local/texlive/2010/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty +Package: fancyvrb 2008/02/07 + +Style option: `fancyvrb' v2.7a, with DG/SPQR fixes, and firstline=lastline fix +<2008/02/07> (tvz) +\FV@CodeLineNo=\count140 + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.386 \gdef\FV@BeginScanning#1^^M + {% +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.389 \endgroup + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.395 ...be discarded. Hit <return> to continue.}} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.402 \gdef\FancyVerbGetLine#1^^M + {% +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.413 \endgroup + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.413 \endgroup + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.425 ...n#1{\@ifnextchar\@nil{\@gobble}{\FV@EOF}} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.426 ...@nil#1\@empty\else\expandafter\FV@EOF\fi} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.426 ...@nil#1\@empty\else\expandafter\FV@EOF\fi} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.445 \fi} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.445 \fi} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.445 \fi} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.465 \gdef\FV@@ReadLine#1^^M + #2^^M#3\@nil{% +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 2 +l.465 \gdef\FV@@ReadLine#1^^M#2^^M + #3\@nil{% +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 3 +l.469 \endgroup + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.469 \endgroup + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 2 +l.469 \endgroup + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.503 \fi} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.503 \fi} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.511 \fi} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.511 \fi} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.516 {\csname FV@fontfamily@#1\endcsname}} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.516 {\csname FV@fontfamily@#1\endcsname}} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.516 {\csname FV@fontfamily@#1\endcsname}} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.523 \fi} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.523 \fi} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.530 \fi} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.530 \fi} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.535 ...x\expandafter\next\expandafter~\endgroup} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.535 ...x\expandafter\next\expandafter~\endgroup} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.535 ...x\expandafter\next\expandafter~\endgroup} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.571 ...}[]{\def\FancyVerbDefineActive{#1\relax}} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.574 \FancyVerbDefineActive#1\relax}} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.588 \fi} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.608 ...setbox\FV@TabBox=\hbox{#1}\box\FV@TabBox} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.608 ...setbox\FV@TabBox=\hbox{#1}\box\FV@TabBox} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.624 ...com}[]{\def\FancyVerbFormatCom{#1\relax}} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.627 \FancyVerbFormatCom#1\relax}} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.629 \def\FancyVerbFormatLine#1{\FV@ObeyTabs{#1}} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.629 \def\FancyVerbFormatLine#1{\FV@ObeyTabs{#1}} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.630 ...FV}{xleftmargin}{\def\FV@XLeftMargin{#1}} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.632 ...}{xrightmargin}{\def\FV@XRightMargin{#1}} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.638 ...arameters}{\def\FV@ListParameterHook{#1}} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.642 ...def\FancyVerbHFuzz{\number\@tempdima sp}} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.662 \FV@BeginListFrame} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.662 \FV@BeginListFrame} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.685 \fi} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.685 \fi} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.728 \hss}} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.728 \hss}} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.735 \let\FV@ProcessLine\FV@ListProcessLine@ii} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.735 \let\FV@ProcessLine\FV@ListProcessLine@ii} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.738 ...et\FV@ProcessLine\FV@ListProcessLine@iii} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.738 ...et\FV@ProcessLine\FV@ListProcessLine@iii} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.743 \let\FV@ProcessLine\FV@ListProcessLine@iv} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.743 \let\FV@ProcessLine\FV@ListProcessLine@iv} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.753 \@endpetrue} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.753 \@endpetrue} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.778 ...doendpe\global\@ignorefalse\ignorespaces} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.778 ...doendpe\global\@ignorefalse\ignorespaces} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.780 ...imInput#1{\FV@UseVerbatim{\FV@Input{#1}}} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.780 ...imInput#1{\FV@UseVerbatim{\FV@Input{#1}}} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.788 ...doendpe\global\@ignorefalse\ignorespaces} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.788 ...doendpe\global\@ignorefalse\ignorespaces} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.790 ...mInput#1{\FV@LUseVerbatim{\FV@Input{#1}}} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.790 ...mInput#1{\FV@LUseVerbatim{\FV@Input{#1}}} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.859 \fi} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.859 \fi} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.869 \def\FV@LabelEnd{#2}} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 2 +l.869 \def\FV@LabelEnd{#2}} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.869 \def\FV@LabelEnd{#2}} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 2 +l.869 \def\FV@LabelEnd{#2}} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.869 \def\FV@LabelEnd{#2}} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 2 +l.869 \def\FV@LabelEnd{#2}} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.874 {\@nameuse{FV@LabelPosition@#1}}} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.874 {\@nameuse{FV@LabelPosition@#1}}} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.874 {\@nameuse{FV@LabelPosition@#1}}} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.931 \hss}} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.931 \hss}} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.931 \hss}} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.931 \hss}} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.1019 ...V@FrameRule{\number\@tempdima sp\relax}} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.1023 ...FV@FrameSep{\number\@tempdima sp\relax}} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.1032 \fi} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.1039 \fi} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.1048 {\@nameuse{FV@Frame@#1}}} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.1048 {\@nameuse{FV@Frame@#1}}} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.1048 {\@nameuse{FV@Frame@#1}}} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.1069 \fi} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.1069 \fi} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.1080 ...e p@#1\endcsname\arabic{FancyVerbLine}}} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.1080 ...e p@#1\endcsname\arabic{FancyVerbLine}}} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.1080 ...e p@#1\endcsname\arabic{FancyVerbLine}}} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.1100 {\@nameuse{FV@Numbers@#1}}} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.1100 {\@nameuse{FV@Numbers@#1}}} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.1100 {\@nameuse{FV@Numbers@#1}}} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.1107 ...ne@key{FV}{stepnumber}{\FV@StepNumber#1} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.1161 ...V@NumberSep{\number\@tempdima sp\relax}} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.1183 \fi} + +You meant to type ## instead of #, right? +Or maybe a } was forgotten somewhere earlier, and things +are all screwed up? I'm going to assume that you meant ##. + +! Illegal parameter number in definition of \MYLATEXline. +<to be read again> + 1 +l.1183 \fi} + +(That makes 100 errors; please try again.) +Here is how much of TeX's memory you used: + 13772 strings out of 493748 + 225893 string characters out of 3143568 + 294377 words of memory out of 3000000 + 16803 multiletter control sequences out of 15000+200000 + 4702 words of font info for 16 fonts, out of 3000000 for 9000 + 714 hyphenation exceptions out of 8191 + 47i,0n,49p,602b,222s stack positions out of 5000i,500n,10000p,200000b,50000s + +No pages of output. diff --git a/runtime/gc.tex b/runtime/gc.tex new file mode 100644 index 0000000..8de24d5 --- /dev/null +++ b/runtime/gc.tex @@ -0,0 +1,245 @@ +\begin{enumerate} +\item heap \\ + Most OCaml blocks are created in the minor(young) heap. + \begin{enumerate}[(a)] + \item minor heap ( \textit{32K words for 32 bit, 64K for 64 bit by default}) + in my mac, i use ``ledit ocaml -init x'' to avoid loading startup + scripts, then +\begin{alternate} +Gc.stat () +\end{alternate} +\begin{bluecode} +{Gc.minor_words = 104194.; Gc.promoted_words = 0.; Gc.major_words = 43979.; + Gc.minor_collections = 0; Gc.major_collections = 0; Gc.heap_words = 126976; + Gc.heap_chunks = 1; Gc.live_words = 43979; Gc.live_blocks = 8446; + Gc.free_words = 82997; Gc.free_blocks = 1; Gc.largest_free = 82997; + Gc.fragments = 0; Gc.compactions = 0; Gc.top_heap_words = 126976; + Gc.stack_size = 52} +\end{bluecode} + +\begin{alternate} +78188 lsr 16 ;; +- : int = 1 +\end{alternate} + + + + +\begin{bluetext} ++---------------------------------------------------------+ +| unallocated |///allocated part/////////| ++---------------------------------------------------------+ + ^ ^ + | | +caml_young_limit caml_young_ptr + <----- allocation proceeds + in this direction +\end{bluetext} + + + Consider \textit{the array of two elements}, the total size of this object \textit{will be 3 words (header + 2 words)}, so 24 bytes for 64-bit , so the fast path for allocation is + subtract size from caml\_young\_ptr. + If caml\_young\_ptr $<$ caml\_young\_limit, then take the slow path through the garbage collector. + The fast path just \textbf{ five machine instructions and no branches}. But even + five instructions are costly in inner loops, be careful. + \item major heap \\ + when the minor heap runs out, it triggers a \textbf{minor collection}. The minor + collection starts at all the local roots and \textit{oldifies} them, basically copies + them by reallocating those objects (recursively) \textbf{ to the major heap}. After + this, any object left in the minor heap \textbf{ are unreachable}, so the minor heap + can be reused by resetting \textbf{ caml\_young\_ptr }. + +\begin{bluetext} + reachable reachable ++---------+---------+------+----+----+-----------------+ +| |/////////| |///-->///| | ++---------+---------+------+----+----+-----------------+ + ^ ^ + | | + local root local root +\end{bluetext} + + At runtime the garbage collector \textit{always} knows what is a pointer, and what is an int + or opaque data (like a string). Pointers get scanned so the GC can find unreachable + blocks. Ints and opaque data must not be scanned. \textit{This is the reason for having a tag + bit for integer-like values}, and one of the uses of the tag byte in the header. + +\begin{bluetext} + "Tag byte space" ++----------+ +| 0 | Array, tuple, etc. ++----------+ +| 1 | ++----------+ +| 2 | +~ ~ +| | Tags in the range 0..245 are used for variants +~ ~ +| 245 | ++----------+ +| 246 | Lazy (before being forced) ++----------+ +| 247 | Closure ++----------+ +| 248 | Object ^ ++----------+ | Block contains +| 249 | Used to implement closures | values which the ++----------+ | GC should scan +| 250 | Used to implement lazy values | ++----------+ <--------------------------- No_scan_tag +| 251 | Abstract data | ++----------+ | Block contains +| 252 | String | opaque data ++----------+ | which GC must +| 253 | Double V not scan ++----------+ +| 254 | Array of doubles ++----------+ +| 255 | Custom block ++----------+ + +\end{bluetext} + + so, in the normal course of events, a small, long-lived object will start on the + minor heap and be copied into the major heap. \textbf{ Large objects go straight to + the major heap} + But there is another important structure used in the major heap, called the + \textbf{ page table}. The garbage collector must at all times know which pieces of + memory belong to the major heap, and which pieces of memory do not, and it uses + the page table to track this. + One reason \textbf{ why we always want to know where the major heap lies } + is so we can avoid + scanning pointers which point to C structs outside the OCaml heap. + The GC will not stray beyond its own heap, and treats all pointers outside as + opaque (it doesn't touch them or follow them). + In OCaml 3.10 the page table was implemented as a simple bitmap, with 1 bit per page + of virtual memory (major heap chunks are always page-aligned). This was + unsustainable for 64 bit address spaces where memory allocations can be very very + \textbf{ far apart}, so in OCaml 3.11 this was changed to a sparse hash table. + Because of the page table, C pointers can be stored directly as values, which + saves time and space. (However, if your C pointer later gets freed, you must NULL + the value-the reason is that the same memory address might later get malloced + for the OCaml major heap, thus \textit{suddenly} becoming a \textit{valid} address again. + THIS usually results in crash ). + In a functional language \textbf{ which does not allow any mutable references}, there's one + guarantee you can make which is there could \textbf{ never be a pointer going from the major heap + to something in the minor heap}, so when an object in an immutable language graduates from the + minor heap to the major heap, it is fixed forever(until it becomes unreachable), and can not + point back to the minor heap. + But ocaml is impure, so if the minor heap collection worked exactly as previous, then the outcome + wouldn't be good, maybe some object is not pointed at \textbf{ by any local root}, so it would + be \textit{unreachable} and would \textit{disappear}, leaving a \textbf{ dangling pointer}. + \textbf{ one solution would be to check the major heap, but that would be massively time-consuming: + minor-collections are supposed to be very quick } + What OCaml does instead is to have a separate \textit{refs} list. This contains a list of pointers + that point \textbf{ from the major heap to the minor heap}. During a minor heap collection, the + refs list is consulted for additional roots(and after the minor heap collection, the refs list + can be started anew). + + The refs list however has to be updated, and it gets \textbf{ updated potentially every time we modify a mutable + field in a struct}. The code calls the c function \textbf{ caml\_modify} which both mutates the struct a + nd decides whether this is a major$\rightarrow$minor pointer to be + added to the refs list. + + If you use mutable fields then this is \textbf{ much slower} than a + simple assignment. However, \textbf{ mutable integers} are ok, and + don't trigger the extra call. You can also \textbf{ mutate fields} + yourself, eg. from c functions or using Obj, \textbf{ provied you can + guarantee that this won't generate a pointer between the major and + minor heaps}. + + The OCaml gc does not collect the major heap in one go. It spreads + the work over small \textbf{ slices}, and splices are grouped into + whole \emph{phases} of work. + + \emph{A slice} is just a defined amount of work. + + The phases are mark and sweep, and some additional sub-passes + dealing with weak pointers and finalization. + + Finally there is \emph{a compaction phase} which is triggered when + there is no other work to do and the estimate of free space in the + heap has reached some threshold. This is tunable. You can schedule + when to compact the heap -- while waiting for a key-press or + between frames in a live simulation. + + There is also a penalty for doing a slice of the major heap -- for + example if the minor heap is exhausted, then some activity in the + major heap is unavoidable. However if you make the \textbf{ minor heap + large enough}, you can completely control when GC work is + done. You can also move \emph{large structures out of the major + heap entirely}, + + + \end{enumerate} +\item module Gc + +\begin{bluetext} +Gc.compact () ;; +let checkpoint p = Gc.compact () ; prerr_endline ("checkpoint at poisition " ^ p ) +\end{bluetext} +The checkpoint function does two things: +\textit{Gc.compact () } does a full major round of garbage +collection and compacts the heap. This is the most aggressive form of +Gc available, and it's highly likely to \textit{segfault} if the heap is corrupted. +\textit{prerr\_endline} prints a message to stderr and crucially +also flushes stderr, so you will see the message printed immediately. + +you \textbf{should} grep for \verb|caml_heap_check| in byterun for details + +\begin{bluecode} + +void caml_compact_heap (void) +{ + char *ch, *chend; + Assert (caml_gc_phase == Phase_idle); + caml_gc_message (0x10, "Compacting heap...\n", 0); + +#ifdef DEBUG + caml_heap_check (); +#endif + + +#ifdef DEBUG +void caml_heap_check (void) +{ + heap_stats (0); +} +#endif + + +#ifdef DEBUG + ++ major_gc_counter; + caml_heap_check (); +#endif + + +\end{bluecode} + + +\item tune \\ + problems can arise when you're building up ephemeral + data structures which are larger than the minor heap. + The data structure won't stay around overly long, but + it is a bit too large. Triggering major GC slices more + often can cause static data to be walked and re-walked + more often than is necessary. + \href{http://elehack.net/michael/blog/2010/06/ocaml-memory-tuning}{tuning} sample + + \begin{bluecode} +let _ = + let gc = Gc.get () in + gc.Gc.max_overhead <- 1000000; + gc.Gc.space_overhead <- 500; + gc.Gc.major_heap_increment <- 10_000_000; + gc.Gc.minor_heap_size <- 10_000_000; + Gc.set gc + +\end{bluecode} + +\end{enumerate} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "../master" +%%% End: diff --git a/runtime/runtime.tex b/runtime/runtime.tex new file mode 100644 index 0000000..bedacbb --- /dev/null +++ b/runtime/runtime.tex @@ -0,0 +1,203 @@ +\begin{enumerate} +\item values \\ + integer-like \textit{int,char,true, false, [], (), and some variants} (batteries dump) + \textit{pointer} (word-aligned, the bottom 2 bits of every pointer always 00, + 3 bits 000 for 64-bit) + +\begin{bluetext} +% 32 bit ++----------------------------------------+---+---+ +| pointer | 0 | 0 | ++----------------------------------------+---+---+ + ++--------------------------------------------+---+ +| integer (31 or 63 bits) | 1 | ++--------------------------------------------+---+ + +% why ? +% GC needs this information +% if the algorithm uses arrays of 32/64bit numbers, +% then you can use a Bigarray + ++---------------+---------------+---------------+- - - - - +| header | word[0] | word[1] | .... ++---------------+---------------+---------------+- - - - - + ^ + | + pointer (a value) + + ++---------------+----------------+------------------+ +| header | 'a' 'b' 'c' 'd' 'e' 'f' '\O' '\1' | ++---------------+----------------+------------------+ + ^ + | + an OCaml string + ++---------------+---------------+---------------+- - - - - +| header | value[0] | value[1] | .... ++---------------+---------------+---------------+- - - - - + ^ + | + an OCaml array + ++---------------+---------------+ +| header | arg[0] | ++---------------+---------------+ + ^ + | + a variant with one arg + + ++---------------+---------------+----------+--+--+---------------+ +| size of the block in words | col | tag byte | ++---------------+---------------+----------+--+--+---------------+ + ^ <- 2b-><--- 8 bits ---> + | +offset -4 or -8 +% 32 platform, it's 22bits long : the reason for the annoying 16MByte limit +% for string +% the tag byte is multipurpose +% in the variant-with-parameter example above, it tells you which +% variant it is. In the string case, it contains a little bit of runtime +% type information. In other cases it can tell the gc that it's a lazy value +% or opaque data that the gc should not scan + + + ++---------------+---------------+---------------+- - - - - +| header | float[0] | .... ++---------------+---------------+---------------+- - - - - + ^ + | + an OCaml float array + +% in the file <byterun/mlvalues.h> +\end{bluetext} + + \begin{tabular}{|p{3cm}|p{12cm}|} + \hline + any int, char & stored directly as a value, shifted left by 1 bit, with LSB=1\\ + \hline + (), [], false & stored as OCaml int 0 (native 1) \\ + \hline + true & stored as OCaml int 1 \\ + \hline + variant type t = Foo | Bar | Baz + (no parameters) & stored as OCaml int 0,1,2 \\ + \hline + variant type t = Foo | Bar of int & the varient with no parameters are stored + as OCaml int 0,1,2, etc. counting just the variants that have no parameters. + The variants with parameters are stored as blocks, counting just the variants with + parameters. The parameters are stored as words in the block itself. Note there is + a limit around {\bf 240 variants with parameters that applies to each type}, + but no limit on the number of variants without parameters you can have. {\bf this limit arises because of the size of the tag byte and the fact that some of high numbered tags are reserved} \\ + \hline + list [1;2;3] & This is represented as 1::2::3::[] where [] is a value in OCaml int 0, + and h::t is a block with tag 0 and two parameters. This representation is exactly + the same as if list was a variant \\ + \hline + tuples, struct and array & These are all represented identically, as a simple + array of values, the tag is 0. The only difference is that an array can be allocated + with variable size, but structs and tuples always have a fixed size. + \\ + \hline + struct or array where every elements is a float & These are treated as a special case. + The tag has special value \verb|Dyn_array_tag| (254) so that the GC knows how to deal with + these. {\bf Note this exception does not apply to tuples that contains floats, beware + anyone who would declare a vector as (1.0,2.0)}. \\ + \hline + any string & strings are byte arrays in OCaml, but they have quite a clever representation to make it very efficient to get their length, and at the same time make them directly + compatible with C strings. The tag is \verb|String_tag| (252). + \\ + \hline + \end{tabular} + + here we see the module Obj +\begin{alternate} +Obj.("gshogh" |> repr |> tag);; +- : int = 252 +\end{alternate} + +\begin{alternate} +let a = [|1;2;3|] in Obj.(a|>repr|>tag);; +- : int = 0 +Obj.(a |> repr |> size);; +- : int = 3 +\end{alternate} + +string has a clever algorithm +\begin{alternate} +Obj.("ghsoghoshgoshgoshgoshogh"|> repr |> size);; +- : int = 4 (4*8 = 32 ) +"ghsoghoshgoshgoshgoshogh" |> String.length;; +24 (padding 8 bits) +\end{alternate} + +like all heap blocks, strings contain a header defining +the size of the string in machine words. + +\begin{alternate} +("aaaaaaaaaaaaaaaa"|>String.length);; +- : int = 16 +# Obj.("aaaaaaaaaaaaaaaa"|>repr |> size);; +- : int = 3 +\end{alternate} +padding will tell you how many words are padded actually + +\begin{bluetext} +number_of_words_in_block * sizeof(word) + last_byte_of_block - 1 +\end{bluetext} + +The null-termination comes handy when passing a string to C, but is +not relied upon to compute the length (in Caml), allowing the string +to contain nulls. + + + + +\begin{bluetext} +repr : 'a -> t (id) +obj : t -> 'a (id) +magic : 'a -> 'b (id) + +is_block : t -> bool = "caml_obj_is_block" +is_int : t -> bool = "%obj_is_int" + +tag : t -> int ="caml_obj_tag" % get the tag field +set_tag : t -> int -> unit = "caml_obj_set_tag" + +size : t -> int = "%obj_size" % get the size field + +field : t -> int -> t = "%obj_field" % handle the array part +set_field : t -> int -> t -> unit = "%obj_set_field" + +double_field : t -> int -> float +set_double_field : t -> int -> float -> unit + +new_block : int -> int -> t = "caml_obj_block" + +dup : t -> t = "caml_obj_dup" + +truncate : t -> int -> unit = "caml_obj_truncate" +add_offset : t -> Int32.t -> t = "caml_obj_add_offset" + +marshal : t -> string +\end{bluetext} + + +\begin{alternate} +Obj.(None |> repr |> is_int);; +- : bool = true +Obj.("ghsogho" |> repr |> is_block);; +- : bool = true +Obj.(let f x = x |> repr |> is_block in (f Bar, f (Baz 3)));; +- : bool * bool = (false, true) +\end{alternate} + +\end{enumerate} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "../master" +%%% End: diff --git a/test.ml b/test.ml new file mode 100644 index 0000000..0c554a1 --- /dev/null +++ b/test.ml @@ -0,0 +1,3 @@ + +RE lower = ['a'-'z'] +RE upper = ['A'-'Z'] diff --git a/toplevel.tex b/toplevel.tex new file mode 100644 index 0000000..49dbaf0 --- /dev/null +++ b/toplevel.tex @@ -0,0 +1,148 @@ + + +\subsection{toplevel} + +\begin{enumerate} + +\item \verb|#directory ``_build'' ;; #directory ``+camlp4'' ;; #load ``...''| +\item trace +\item labels (ignore labels in function types) +\item \verb|warnings print_depth print_length| +\item hacking Toploop + \begin{itemize} + \item re-direct + + +\begin{redcode} +Toploop.execute_phrase (bool->formatter->Parsetree.toplevel_phrase->bool) +Toploop.read_interactive_input +\end{redcode} +\begin{bluecode} +- : (string -> string -> int -> int * bool) ref = (* topdirs.cmi *) +\end{bluecode} + + + +\begin{redcode} + Hashtbl.keys Toploop.directive_table;; +\end{redcode} + +\begin{bluecode} +print_depth use principal untrace_all load list trace show directory u cd install_printer print_length labels remove_printer camlp4o quit untrace thread camlp4r +\end{bluecode} + + +\begin{redcode} +Topdirs.(dir_load,dir_use,dir_install_printer,dir_trace,dir_untrace,dir_untrace_all,load_file,dir_quit,dir_cd);; +\end{redcode} + +\begin{bluecode} +- : (Format.formatter -> string -> unit) * + (Format.formatter -> string -> unit) * + (Format.formatter -> Longident.t -> unit) * + (Format.formatter -> Longident.t -> unit) * + (Format.formatter -> Longident.t -> unit) * + (Format.formatter -> unit -> unit) * + (Format.formatter -> string -> bool) * (unit -> unit) * (string -> unit) +\end{bluecode} + + + + +\item store env + + \begin{bluecode} +let env = !Toploop.toplevel_env +... blabbla ... +Toploop.toplevel_env := env +\end{bluecode} +\begin{bluecode} +Toploop.initialize_toplevel_env () +\end{bluecode} + \item {\bf sample file for references } in findlib + + +\begin{bluecode} +(* For Ocaml-3.03 and up, so you can do: #use "topfind" and get a + * working findlib toploop. + *) +(* First test whether findlib_top is already loaded. If not, load it now. + * The test works by executing the toplevel phrase "Topfind.reset" and + * checking whether this causes an error. + *) +let exec_test s = + let l = Lexing.from_string s in + let ph = !Toploop.parse_toplevel_phrase l in + let fmt = Format.make_formatter (fun _ _ _ -> ()) (fun _ -> ()) in + try + Toploop.execute_phrase false fmt ph + with + _ -> false +in +if not(exec_test "Topfind.reset;;") then ( + Topdirs.dir_load Format.err_formatter "/Users/bob/SourceCode/ML/godi/lib/ocaml/pkg-lib/findlib/findlib.cma"; + Topdirs.dir_load Format.err_formatter "/Users/bob/SourceCode/ML/godi/lib/ocaml/pkg-lib/findlib/findlib_top.cma"; +);; +\end{bluecode} + + + \item \href{file:/Users/bob/SourceCode/ML/godi/build/distfiles/findlib-1.2.7/src/findlib/topfind.ml}{topfind.ml} \\ + ideas : we can write \textbf{some utils} to check code later + yeah. A poor man's code search tool (in the library \verb|dir_top_level|) + + +\begin{alternate} +se;; +- : ?ignore_module:bool -> (string -> bool) -> string -> string list = +se ~ignore_module:false (FILTER _* "char" space* "->" space* "bool") "String";; +\end{alternate} + +\begin{bluecode} +module Dont_use_this_name_ever : + val contains : string -> char -> bool + val contains_from : string -> int -> char -> bool + val rcontains_from : string -> int -> char -> bool + val filter : (char -> bool) -> string -> string + module IString : sig type t = String.t val compare : t -> t -> int end + module NumString : sig type t = String.t val compare : t -> t -> int end + module Exceptionless : + module Cap : + val filter : (char -> bool) -> [> `Read ] t -> 'a t + val contains : [> `Read ] t -> char -> bool + val contains_from : [> `Read ] t -> int -> char -> bool + val rcontains_from : [> `Read ] t -> int -> char -> bool + module Exceptionless : +\end{bluecode} + + + + +\begin{redcode} +Hashtbl.add + Toploop.directive_table + "require" + (Toploop.Directive_string + (fun s -> + protect load_deeply (Fl_split.in_words s) + )) +;; +Hashtbl.add Toploop.directive_table "pwd" +(Toploop.Directive_none (fun _ -> + print_endline (Sys.getcwd ())));; +#pwd;; +\end{redcode} + +\begin{bluecode} +/Users/bob/SourceCode/Notes +\end{bluecode} + + + + \end{itemize} +\end{enumerate} + + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "master" +%%% End: diff --git a/trival_tricks.tex b/trival_tricks.tex new file mode 100644 index 0000000..082d61f --- /dev/null +++ b/trival_tricks.tex @@ -0,0 +1,212 @@ +\subsection{tricks} +\label{sec:tricks} + +\begin{itemize} +\item ocamlobjinfo \\ + analyzing ocaml obj info + +\begin{Verbatim}[formatcom=\color{blue},fontsize=\scriptsize] +ocamlobjinfo ./_build/src/batEnum.cmo +File ./_build/src/batEnum.cmo +Unit name: BatEnum +Interfaces imported: + 720848e0b508273805ef38d884a57618 Array + c91c0bbb9f7670b10cdc0f2dcc57c5f9 Int32 + 42fecddd710bb96856120e550f33050d BatEnum + d1bb48f7b061c10756e8a5823ef6d2eb BatInterfaces + 81da2f450287aeff11718936b0cb4546 BatValue_printer + 6fdd8205a679c3020487ba2f941930bb BatInnerIO + 40bf652f22a33a7cfa05ee1dd5e0d7e4 Buffer + c02313bdd8cc849d89fa24b024366726 BatConcurrent + 3dee29b414dd26a1cfca3bbdf20e7dfc Char + db723a1798b122e08919a2bfed062514 Pervasives + 227fb38c6dfc5c0f1b050ee46651eebe CamlinternalLazy + 9c85fb419d52a8fd876c84784374e0cf List + 79fd3a55345b718296e878c0e7bed10e Queue + 9cf8941f15489d84ebd11297f6b92182 CamlinternalOO + b64305dcc933950725d3137468a0e434 ArrayLabels + 64339e3c28b4a17a8ec728e5f20a3cf6 BatRef + 3aeb33d11433c95bb62053c65665eb76 Obj + 3b0ed254d84078b0f21da765b10741e3 BatMonad + aaa46201460de222b812caf2f6636244 Lazy +Uses unsafe features: YES +Primitives declared in this module: + +ocamlobjinfo /Users/bob/SourceCode/ML/godi/lib/ocaml/std-lib/camlp4/camlp4lib.cma |grep Unit +Unit name: Camlp4_import +Unit name: Camlp4_config +Unit name: Camlp4 +\end{Verbatim} + obj has many Units, each Unit itself also import some + interfaces. ideas: you can parse the result to get an dependent graph. +\item operator associativity \\ + the \textbf{first} char decides + @ $\rightarrow$ right ; \verb|^| $\rightarrow$ right + +\begin{alternate} +# let (^|) a b = a - b;; +val ( ^| ) : int -> int -> int = <fun> +# 3 ^| 2 ^| 1;; +- : int = 2 +\end{alternate} + +\item literals + +\begin{bluecode} +30l => int32 +30L => int64 +30n => nativeint +\end{bluecode} + + +\item \verb|{re ;_}| some labels were intentionally omitted \\ + this is a new feature in recent ocaml, it will emit an warning + otherwise + +\item Emacs \\ + there are some many tricks I can only enum a few + \begin{itemize} + \item capture the shell command + \textit{C-u M-!} to capture the shell-command + \textit{M-|} shell-command-on-region + + \end{itemize} +\item \textbf{dirty} compiling + +\begin{alternate} +# let ic = Unix.open_process_in "ocamlc test.ml 2>&1";; +val ic : in_channel = <abstr> +# input_line ic;; +- : string = "File \"test.ml\", line 1, characters 0-1:" +# input_line ic;; +- : string = "Error: I/O error: test.ml: No such file or directory" +# input_line ic;; +Exception: End_of_file. +\end{alternate} + + +\item toplevellib.cma (toplevel/toploop.mli) +\item memory profiling \\ +You can override a little ocaml-benchmark to measure the allocation rate +of the GC. This gives you a pretty good understanding on the fact you +are allocating too much or not. + +\begin{redcode} +(** Benchmark extension @author Sylvain Le Gall + *) + +open Benchmark;; +type t = + { + benchmark: Benchmark.t; + memory_used: float; + } +;; + +let gc_wrap f x = + (* Extend sample to add GC stat *) + let add_gc_stat memory_used samples = + List.map + (fun (name, lst) -> + name, + List.map + (fun bt -> + { + benchmark = bt; + memory_used = memory_used; + } + ) + lst + ) + samples + in +(* Call throughput1 and add GC stat *) + let () = + print_string "Cleaning memory before benchmark"; print_newline (); + Gc.full_major () + in + let allocated_before = + Gc.allocated_bytes () + in + let samples = + f x + in + let () = + print_string "Cleaning memory after benchmark"; print_newline (); + Gc.full_major () + in + let memory_used = + ((Gc.allocated_bytes ()) -. allocated_before) + in + add_gc_stat memory_used samples +;; + +let throughput1 + ?min_count ?style + ?fwidth ?fdigits + ?repeat ?name + seconds + f x = + + (* Benchmark throughput1 as it should be called *) + gc_wrap + (throughput1 + ?min_count ?style + ?fwidth ?fdigits + ?repeat ?name + seconds f) x +;; + +let throughputN + ?min_count ?style + ?fwidth ?fdigits + ?repeat + seconds name_f_args = + List.flatten + (List.map + (fun (name, f, args) -> + throughput1 + ?min_count ?style + ?fwidth ?fdigits + ?repeat ~name:name + seconds f args) + name_f_args) +;; +let latency1 + ?min_cpu ?style + ?fwidth ?fdigits + ?repeat n + ?name f x = + gc_wrap + (latency1 + ?min_cpu ?style + ?fwidth ?fdigits + ?repeat n + ?name f) x +;; + +let latencyN + ?min_cpu ?style + ?fwidth ?fdigits + ?repeat + n name_f_args = + List.flatten + (List.map + (fun (name, f, args) -> + latency1 + ?min_cpu ?style + ?fwidth ?fdigits + ?repeat ~name:name + n f args) + name_f_args) +;; +\end{redcode} + +\end{itemize} + + + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "master" +%%% End: