summaryrefslogtreecommitdiff
path: root/support/tex2tok/helper.py
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /support/tex2tok/helper.py
Initial commit
Diffstat (limited to 'support/tex2tok/helper.py')
-rw-r--r--support/tex2tok/helper.py97
1 files changed, 97 insertions, 0 deletions
diff --git a/support/tex2tok/helper.py b/support/tex2tok/helper.py
new file mode 100644
index 0000000000..83a52ea25c
--- /dev/null
+++ b/support/tex2tok/helper.py
@@ -0,0 +1,97 @@
+#!/usr/bin/env python
+# Copyright (c) 2005 Jonathan Fine <jfine@pytex.org>
+# License: GPL version 2 or (at your option) any later version.
+# $Source: /cvsroot/pytex/pytex/tex2tok/helper.py,v $
+
+__version__ = '$Revision: 1.1 $'
+
+
+import sys
+import re
+
+# list of all TeX primitive control sequences
+# par, \-, \/ and control space are not in the list
+
+primitives = ['above', 'abovedisplayshortskip', 'abovedisplayskip',
+'abovewithdelims', 'accent', 'adjdemerits', 'advance',
+'afterassignment', 'aftergroup', 'atop', 'atopwithdelims', 'badness',
+'baselineskip', 'batchmode', 'begingroup', 'belowdisplayshortskip',
+'belowdisplayskip', 'binoppenalty', 'botmark', 'box', 'boxmaxdepth',
+'brokenpenalty', 'catcode', 'char', 'chardef', 'cleaders', 'closein',
+'closeout', 'clubpenalty', 'copy', 'count', 'countdef', 'cr', 'crcr',
+'csname', 'day', 'deadcycles', 'def', 'defaulthyphenchar',
+'defaultskewchar', 'delcode', 'delimiter', 'delimiterfactor',
+'delimitershortfall', 'dimen', 'dimendef', 'discretionary',
+'displayindent', 'displaylimits', 'displaystyle',
+'displaywidowpenalty', 'displaywidth', 'divide',
+'doublehyphendemerits', 'dp', 'dump', 'edef', 'else',
+'emergencystretch', 'end', 'endcsname', 'endgroup', 'endinput',
+'endlinechar', 'eqno', 'errhelp', 'errmessage', 'errorcontextlines',
+'errorstopmode', 'escapechar', 'everycr', 'everydisplay', 'everyhbox',
+'everyjob', 'everymath', 'everypar', 'everyvbox', 'exhyphenpenalty',
+'expandafter', 'fam', 'fi', 'finalhyphendemerits', 'firstmark',
+'floatingpenalty', 'font', 'fontdimen', 'fontname', 'futurelet',
+'gdef', 'global', 'globaldefs', 'halign', 'hangafter', 'hangindent',
+'hbadness', 'hbox', 'hfil', 'hfill', 'hfilneg', 'hfuzz', 'hoffset',
+'holdinginserts', 'hrule', 'hsize', 'hskip', 'hss', 'ht',
+'hyphenation', 'hyphenchar', 'hyphenpenalty', 'if', 'ifcase', 'ifcat',
+'ifdim', 'ifeof', 'iffalse', 'ifhbox', 'ifhmode', 'ifinner',
+'ifmmode', 'ifnum', 'ifodd', 'iftrue', 'ifvbox', 'ifvmode', 'ifvoid',
+'ifx', 'ignorespaces', 'immediate', 'indent', 'input', 'inputlineno',
+'insert', 'insertpenalties', 'interlinepenalty', 'jobname', 'kern',
+'language', 'lastbox', 'lastkern', 'lastpenalty', 'lastskip',
+'lccode', 'leaders', 'left', 'lefthyphenmin', 'leftskip', 'leqno',
+'let', 'limits', 'linepenalty', 'lineskip', 'lineskiplimit', 'long',
+'looseness', 'lower', 'lowercase', 'mag', 'mark', 'mathaccent',
+'mathbin', 'mathchar', 'mathchardef', 'mathchoice', 'mathclose',
+'mathcode', 'mathinner', 'mathop', 'mathopen', 'mathord', 'mathpunct',
+'mathrel', 'mathsurround', 'maxdeadcycles', 'maxdepth', 'meaning',
+'medmuskip', 'message', 'mkern', 'month', 'moveleft', 'moveright',
+'mskip', 'multiply', 'muskip', 'muskipdef', 'newlinechar', 'noalign',
+'noboundary', 'noexpand', 'noindent', 'nolimits', 'nonscript',
+'nonstopmode', 'nulldelimiterspace', 'nullfont', 'number', 'omit',
+'openin', 'openout', 'or', 'outer', 'output', 'outputpenalty', 'over',
+'overfullrule', 'overline', 'overwithdelims', 'pagedepth',
+'pagefilllstretch', 'pagefillstretch', 'pagefilstretch', 'pagegoal',
+'pageshrink', 'pagestretch', 'pagetotal', 'parfillskip', 'parindent',
+'parshape', 'parskip', 'patterns', 'pausing', 'penalty',
+'postdisplaypenalty', 'predisplaypenalty', 'predisplaysize',
+'pretolerance', 'prevdepth', 'prevgraf', 'radical', 'raise', 'read',
+'relax', 'relpenalty', 'right', 'righthyphenmin', 'rightskip',
+'romannumeral', 'scriptfont', 'scriptscriptfont', 'scriptscriptstyle',
+'scriptspace', 'scriptstyle', 'scrollmode', 'setbox', 'setlanguage',
+'sfcode', 'shipout', 'show', 'showbox', 'showboxbreadth',
+'showboxdepth', 'showlists', 'showthe', 'skewchar', 'skip', 'skipdef',
+'spacefactor', 'spaceskip', 'span', 'special', 'splitbotmark',
+'splitfirstmark', 'splitmaxdepth', 'splittopskip', 'string',
+'tabskip', 'textfont', 'textstyle', 'the', 'thickmuskip',
+'thinmuskip', 'time', 'toks', 'toksdef', 'tolerance', 'topmark',
+'topskip', 'tracingcommands', 'tracinglostchars', 'tracingmacros',
+'tracingonline', 'tracingoutput', 'tracingpages', 'tracingparagraphs',
+'tracingrestores', 'tracingstats', 'uccode', 'uchyph', 'underline',
+'unhbox', 'unhcopy', 'unkern', 'unpenalty', 'unskip', 'unvbox',
+'unvcopy', 'uppercase', 'vadjust', 'valign', 'vbadness', 'vbox',
+'vcenter', 'vfil', 'vfill', 'vfilneg', 'vfuzz', 'voffset', 'vrule',
+'vsize', 'vskip', 'vsplit', 'vss', 'vtop', 'wd', 'widowpenalty',
+'write', 'xdef', 'xleaders', 'xspaceskip', 'year']
+
+
+
+data = open('_tex2tok.tex').read()
+sys.stdout = open('tex2tok.tex', 'wt')
+
+print '% Automatically generated from _tex2tok.tex by helper.py'
+print '\catcode`\!=11'
+print '\let\!let\let'
+for char in '-/ ':
+ print r'\!let\%s\undefined' % char
+for name in primitives:
+ print r'\!let\!%s\%s \!let\%s\undefined' % (name, name, name)
+
+
+cs_re = re.compile(r'\\([@a-zA-Z])')
+transform = cs_re.sub(r'\\!\1', data)
+
+
+
+print transform