Now uses.py properly reads in tex (for its purposes)
authorDavid Anderson <davea42@earthlink.net>
Sun, 3 Jun 2012 20:34:38 +0000 (13:34 -0700)
committerDavid Anderson <davea42@earthlink.net>
Sun, 3 Jun 2012 20:34:38 +0000 (13:34 -0700)
and skips newcommand (those not relevant to uses.py

dwarf5/tools/fileio.py
dwarf5/tools/uses.in
dwarf5/tools/uses.py

index 167ad45..9ec0b21 100644 (file)
@@ -4,6 +4,11 @@
 
 import sys
 
+# Keep if  "k" 
+# Otherwise delete.
+global keepcomments
+keepcomments = "k"
+
 def isIdStart(c):
   if isIndivid(c) == "y":
     return "n"
@@ -177,7 +182,15 @@ class  dwline:
     """
     dwclass = "none"
     combotok = dwtoken()
+    charnum= -1 
+    global keepcomments
     for c in rec:
+      charnum = charnum +1
+      if keepcomments == "d" and c == "%" and ( charnum == 0 or rec[charnum - 1] != "\\" ):  
+        # Not keeping comments. We drop % and following to end of line 
+        # unless preceeded by \ 
+        break
+
       if c == "\n" or c == "\r":
           # Just drop these for now. Allowing them
           # would not be harmful.
@@ -333,6 +346,11 @@ class dwfiles:
       f.dwtransformline(callfunc,f)
 
 
+def setkeepordeletecomments(val):
+  """ Pass in "k" or "d" to keep or delete comments, respectively """
+  global keepcomments
+  keepcomments = val
+
 def readFilelist(filelist):
   dwf = dwfiles()
   for f in filelist:
index 6735cc7..a78c8ec 100644 (file)
@@ -69,6 +69,8 @@ Following are targs with two links or labels
 \livelink{chap:DWTAGfooe}{DW\_TAG\_fooe}
 \livelink{chap:DWTAGfoog}{DW\-\_TAG\-\_foog}
 
+# Should be legal.
+\livetargi{chap:address}{address}{address class}
 
 
 
index ce8ad92..ef8e4b5 100644 (file)
@@ -139,8 +139,8 @@ def pickup(linetoks,tnumin,pattern,myfile,linenum):
         return outtoks,numabsorbed
     elif c == "*":
       outlist = []
+      curtok = linetoks[curnum]
       while isbrace(curtok,"}") == "n":
-        curtok = linetoks[curnum]
         if dwspace(curtok) == "n":
            outlist += [curtok]
         curnum = curnum + 1
@@ -150,6 +150,7 @@ def pickup(linetoks,tnumin,pattern,myfile,linenum):
             print "ERROR insufficient tokens on line for pattern ", pattern," line " ,linenum," file ",myfile._name
           return outtoks,numabsorbed
         numabsorbed = numabsorbed + 1
+        curtok = linetoks[curnum]
       # Found a right brace, so done here.
       outtoks += [outlist]
     else:
@@ -257,6 +258,12 @@ def refersecprocess(linetoks,tnumin,myfile,linenum):
 def transfunc(linetoks,myfile,linenum):
   if len(linetoks) < 1:
     return linetoks
+  initialtok = linetoks[0]
+  if ''.join(initialtok._tex) == "\\newcommand":
+    # We ignore newcommand lines, they are not stuff
+    # we want to look at, they are new macros, not macro uses.
+    # We don't want to transform or touch them, nor report on them.
+    return linetoks
   tnumin = 0
   lasttoknum = len(linetoks)
   while tnumin < lasttoknum:
@@ -313,6 +320,7 @@ def read_file_args(targlist):
 
 def read_all_args():
   filelist = []
+  fileio.setkeepordeletecomments("d")
   cur = 1
   while  len(sys.argv) > cur:
     v = sys.argv[cur]