]> git.draconx.ca Git - cdecl99.git/blobdiff - src/gen-specstr.awk
libcdecl: Use Bison's api.token.raw feature.
[cdecl99.git] / src / gen-specstr.awk
index c07856ec93518c2d0a6a99d0dbab64414754ddca..68316676714f371a1ec6cba97e9c31a349dc9ea8 100755 (executable)
@@ -79,7 +79,7 @@ END {
     if (specs[i] == "IDENT")
       s = "0";
     else
-      s = "T_" substr(specs[i] "                ", 1, maxwidth) " - 256";
+      s = "T_" substr(specs[i] "                ", 1, maxwidth) " & 0xff";
     offset_table = offset_table s suffix;
   }
 
@@ -93,6 +93,8 @@ END {
   print "\tassert(x < sizeof idx);";
   print "\tif (!(x = idx[x]))";
   print "\t\treturn \"\";";
-  print "\treturn cdecl__token_name(x + 256);";
+  print "\tif (T_" specs[0] " >= 256)";
+  print "\t\tx += 256;";
+  print "\treturn cdecl__token_name(x);";
   print "}";
 }