Converted code constants from decimal to hexidecimal.
diff --git a/libacc/acc.c b/libacc/acc.c
index 9d4a237..052c351 100644
--- a/libacc/acc.c
+++ b/libacc/acc.c
@@ -25,7 +25,16 @@
 
 #define TOKEN_OPERATOR 1
 #define TOKEN_NUMBER 2
-#define TOKEN_DEFINE 536
+
+#define TOKEN_SYMBOL_BASE     256
+#define TOKEN_INT             256
+#define TOKEN_IF              288
+#define TOKEN_ELSE            312
+#define TOKEN_WHILE           352
+#define TOKEN_BREAK           400
+#define TOKEN_RETURN          448
+#define TOKEN_FOR             504
+#define TOKEN_DEFINE          536
 
 static int currentToken;
 static int currentTokenData;
@@ -44,8 +53,8 @@
 static char* R;
 static FILE* pInput;
 
-static void ab (int j);
-static void w();
+static void parseDeclarations (int isLocal);
+static void parseExpression();
 
 static void addToSymbolTable(char e) {
     *pSymbolTable++ = e;
@@ -111,7 +120,7 @@
             *(char*) pSymbolTable = ' ';
             currentToken = strstr(R, M - 1) - R;
             *(char*) pSymbolTable = 0;
-            currentToken = currentToken * 8 + 256;
+            currentToken = currentToken * 8 + TOKEN_SYMBOL_BASE;
             if (currentToken > TOKEN_DEFINE) {
                 currentToken = ((int) P) + currentToken;
                 if (*(int*) currentToken == 1) {
@@ -160,14 +169,18 @@
     }
 }
 
-static void ae( g) {
+/*
+ * Emit 1 to 4 bytes of code. Little-endian, doesn't emit high bytes that
+ * are 0x0 or 0xff
+ */
+static void emitCode(int g) {
     while( g && g != -1) {
         *(char*) q++=g;
         g=g>>8;
     }
 }
 
-static void A(e) {
+static void fixupAddress(e) {
     int g;
     while( e) {
         g=*(int*) e;
@@ -176,53 +189,53 @@
     }
 }
 
-static int s( g, e) {
-    ae(g);
+static int emitCodeWithImmediate( g, e) {
+    emitCode(g);
     *(int*) q = e;
     e = q;
     q = q + 4;
     return e;
 }
 
-static int H(e) {
-    s(184,e);
+static int emitLoadAccumulatorImmediate(e) {
+    emitCodeWithImmediate(0xb8,e); /* Move immediate a, e */
 }
 
-static int B(e) {
-    return s(233,e);
+static int emitBranch(e) {
+    return emitCodeWithImmediate(0xe9,e); /* Jump relative */
 }
 
 static int S( j, e) {
-    ae(1032325);
-    return s(132 + j, e);
+    emitCode(0x0FC085); /* XADD 85 r/m8, r8  exchange and add */
+    return emitCodeWithImmediate(0x84 + j, e); /* TEST */
 }
 
 static void Z(e) {
-    ae( 49465);
-    H(0);
-    ae( 15);
-    ae( e+144);
-    ae( 192);
+    emitCode( 0xC139);
+    emitLoadAccumulatorImmediate(0);
+    emitCode( 0x0F);
+    emitCode( e+0x90);
+    emitCode( 0xC0);
 }
 
 static void N( j, e) {
-    ae(j + 131);
-    s((e < 512) << 7 | 5, e);
+    emitCode(j + 0x83);
+    emitCodeWithImmediate((e < 512) << 7 | 5, e);
 }
 
-static void T (j) {
+static void T (int j) {
     int g,e,m,aa;
     g=1;
-    if( currentToken == 34) {
-        H(v);
-        while( currentChar!=34) {
+    if( currentToken == '"') {
+        emitLoadAccumulatorImmediate(v);
+        while( currentChar != '"') {
             unescapeCurrentChar ();
             *(char*) v++=currentChar;
             nextChar ();
         }
         *(char*) v=0;
         v= (char*) (((int)v) +4&-4);
-        nextChar ();
+        nextChar();
         nextToken();
     }
     else {
@@ -230,25 +243,25 @@
         m= currentTokenData;
         e=currentToken;
         nextToken();
-        if( e == 2) {
-            H(m);
+        if( e == TOKEN_NUMBER) {
+            emitLoadAccumulatorImmediate(m);
         }
         else if( aa == 2) {
             T(0);
-            s(185,0);
-            if( e == 33)Z(m);
-            else ae( m);
+            emitCodeWithImmediate(0xB9,0);
+            if( e == '!')Z(m);
+            else emitCode( m);
         }
-        else if( e == 40) {
-            w ();
+        else if( e == '(') {
+            parseExpression ();
             nextToken();
         }
-        else if( e == 42) {
+        else if( e == '*') {
             nextToken();
             e=currentToken;
             nextToken();
             nextToken();
-            if( currentToken == 42) {
+            if( currentToken == '*') {
                 nextToken();
                 nextToken();
                 nextToken();
@@ -257,190 +270,190 @@
             }
             nextToken();
             T(0);
-            if( currentToken == 61) {
+            if( currentToken == '=') {
                 nextToken();
-                ae( 80);
-                w ();
-                ae( 89);
-                ae( 392+(e == 256));
+                emitCode( 0x50);
+                parseExpression ();
+                emitCode( 0x59);
+                emitCode( 0x188 + (e == TOKEN_INT));
             }
             else if( e) {
-                if( e == 256)ae( 139);
-                else ae( 48655);
+                if( e == TOKEN_INT)emitCode( 0x8B);
+                else emitCode( 0xBE0F);
                 q++;
             }
         }
-        else if( e == 38) {
+        else if( e == '&') {
             N(10,*(int*) currentToken);
             nextToken();
         }
         else {
             g=*(int*) e;
             if(!g)g=dlsym(0,M);
-            if( currentToken == 61&j) {
+            if( currentToken == '=' & j) {
                 nextToken();
-                w ();
+                parseExpression ();
                 N(6,g);
             }
-            else if( currentToken!= 40) {
+            else if( currentToken!= '(') {
                 N(8,g);
                 if( C == 11) {
                     N(0,g);
-                    ae( currentTokenData);
+                    emitCode( currentTokenData);
                     nextToken();
                 }
             }
         }
     }
-    if( currentToken == 40) {
-        if( g == 1)ae( 80);
-        m= s(60545,0);
+    if( currentToken == '(') {
+        if( g == 1)emitCode( 0x50);
+        m= emitCodeWithImmediate(0xEC81,0);
         nextToken();
         j=0;
-        while( currentToken!= 41) {
-            w ();
-            s(2393225,j);
-            if( currentToken == 44)nextToken();
+        while( currentToken!= ')') {
+            parseExpression ();
+            emitCodeWithImmediate(0x248489,j);
+            if( currentToken == ',')nextToken();
             j=j +4;
         }
         *(int*) m= j;
         nextToken();
         if(!g) {
             e=e +4;
-            *(int*) e=s(232,*(int*) e);
+            *(int*) e=emitCodeWithImmediate(0xE8,*(int*) e);
         }
         else if( g == 1) {
-            s(2397439,j);
+            emitCodeWithImmediate(0x2494FF,j);
             j=j +4;
         }
         else {
-            s(232,g-q-5);
+            emitCodeWithImmediate(0xE8,g-q-5);
         }
-        if( j)s(50305,j);
+        if( j)emitCodeWithImmediate(0xC481,j);
     }
 }
 
-static void O (j) {
+static void parseBinaryOp (int level) {
     int e,g,m;
-    if( j--== 1)T(1);
+    if( level--== 1)T(1);
     else {
-        O (j);
+        parseBinaryOp (level);
         m= 0;
-        while( j == C) {
+        while( level == C) {
             g=currentToken;
             e=currentTokenData;
             nextToken();
-            if( j>8) {
+            if( level>8) {
                 m= S(e,m);
-                O (j);
+                parseBinaryOp (level);
             }
             else {
-                ae( 80);
-                O (j);
-                ae( 89);
-                if( j == 4|j == 5) {
+                emitCode( 0x50);
+                parseBinaryOp (level);
+                emitCode( 0x59);
+                if( level == 4 | level == 5) {
                     Z(e);
                 }
                 else {
-                    ae( e);
-                    if( g == 37)ae( 146);
+                    emitCode( e);
+                    if( g == '%')emitCode( 0x92);
                 }
             }
         }
-        if( m&&j>8) {
+        if( m&&level>8) {
             m= S(e,m);
-            H(e^1);
-            B(5);
-            A(m);
-            H(e);
+            emitLoadAccumulatorImmediate(e^1);
+            emitBranch(5);
+            fixupAddress(m);
+            emitLoadAccumulatorImmediate(e);
         }
     }
 }
 
-static void w() {
-    O(11);
+static void parseExpression() {
+    parseBinaryOp(11);
 }
 
 static int U() {
-    w();
+    parseExpression();
     return S(0, 0);
 }
 
-static void I (j) {
+static void parseStatement (int* pBreakTarget) {
     int m,g,e;
-    if( currentToken == 288) {
+    if( currentToken == TOKEN_IF) {
         nextToken();
         nextToken();
         m= U ();
         nextToken();
-        I (j);
-        if( currentToken == 312) {
+        parseStatement (pBreakTarget);
+        if( currentToken == TOKEN_ELSE) {
             nextToken();
-            g=B(0);
-            A(m);
-            I (j);
-            A(g);
+            g=emitBranch(0);
+            fixupAddress(m);
+            parseStatement (pBreakTarget);
+            fixupAddress(g);
         }
         else {
-            A(m);
+            fixupAddress(m);
         }
     }
-    else if( currentToken == 352|currentToken == 504) {
-        e=currentToken;
+    else if ( currentToken == TOKEN_WHILE || currentToken == TOKEN_FOR) {
+        e = currentToken;
         nextToken();
         nextToken();
-        if( e == 352) {
+        if( e == TOKEN_WHILE) {
             g=q;
             m= U ();
         }
         else {
-            if( currentToken!= 59)w ();
+            if( currentToken != ';')parseExpression ();
             nextToken();
             g=q;
             m= 0;
-            if( currentToken!= 59)m= U ();
+            if( currentToken != ';')m= U ();
             nextToken();
-            if( currentToken!= 41) {
-                e=B(0);
-                w ();
-                B(g-q-5);
-                A(e);
+            if( currentToken!= ')') {
+                e=emitBranch(0);
+                parseExpression ();
+                emitBranch(g-q-5);
+                fixupAddress(e);
                 g=e +4;
             }
         }
         nextToken();
-        I(&m);
-        B(g-q-5);
-        A(m);
+        parseStatement(&m);
+        emitBranch(g-q-5);
+        fixupAddress(m);
     }
-    else if( currentToken == 123) {
+    else if( currentToken == '{') {
         nextToken();
-        ab(1);
-        while( currentToken!= 125)I (j);
+        parseDeclarations(1);
+        while( currentToken != '}') parseStatement(pBreakTarget);
         nextToken();
     }
     else {
-        if( currentToken == 448) {
+        if( currentToken == TOKEN_RETURN) {
             nextToken();
-            if( currentToken!= 59)w ();
-            K=B(K);
+            if( currentToken != ';') parseExpression();
+            K=emitBranch(K);
         }
-        else if( currentToken == 400) {
+        else if( currentToken == TOKEN_BREAK) {
             nextToken();
-            *(int*) j=B(*(int*) j);
+            *pBreakTarget = emitBranch(*pBreakTarget);
         }
-        else if( currentToken!= 59)w ();
+        else if( currentToken != ';') parseExpression();
         nextToken();
     }
 }
 
-static void ab (int j) {
+static void parseDeclarations (int isLocal) {
     int m;
-    while( currentToken == 256 | currentToken != -1 & !j ) {
-        if( currentToken == 256) {
+    while( currentToken == TOKEN_INT | currentToken != -1 & !isLocal ) {
+        if( currentToken == TOKEN_INT) {
             nextToken();
-            while( currentToken!= 59) {
-                if( j ) {
+            while( currentToken != ';') {
+                if( isLocal ) {
                     G=G +4;
                     *(int*) currentToken=-G;
                 }
@@ -449,29 +462,29 @@
                     v=v +4;
                 }
                 nextToken();
-                if( currentToken == 44)nextToken();
+                if( currentToken == ',')nextToken();
             }
             nextToken();
         }
         else {
-            A(*(int*)(currentToken +4));
+            fixupAddress(*(int*)(currentToken + 4));
             *(int*) currentToken=q;
             nextToken();
             nextToken();
             m= 8;
-            while( currentToken!= 41) {
+            while( currentToken != ')') {
                 *(int*) currentToken=m;
                 m= m +4;
                 nextToken();
-                if( currentToken == 44)nextToken();
+                if( currentToken == ',')nextToken();
             }
             nextToken();
             K=G=0;
-            ae( 15042901);
-            m= s(60545,0);
-            I(0);
-            A(K);
-            ae( 50121);
+            emitCode( 0xE58955);
+            m= emitCodeWithImmediate(0xEC81,0);
+            parseStatement(0);
+            fixupAddress(K);
+            emitCode( 0xC3C9);
             *(int*) m= G;
         }
     }
@@ -496,7 +509,7 @@
     P = calloc(1, 99999);
     nextChar();
     nextToken();
-    ab(0);
+    parseDeclarations(0);
 #if 1
     fwrite(R, 1, 99999, stdout);
     fwrite(ac, 1, 99999, stdout);