+//#define STORE_TOKENS
+
+#ifdef STORE_TOKENS
+static mem_t tokens;
+#endif
+
+int a3_lex()
+{
+ as3_tokencount++;
+#ifdef STORE_TOKENS
+ if(as3_pass==1) {
+ int token = as3_lex();
+ /* FIXME: current_file needs to be stored, too */
+ mem_put(&tokens, &token, sizeof(token));
+ mem_put(&tokens, &a3_lval, sizeof(a3_lval));
+ mem_put(&tokens, ¤t_line, sizeof(current_line));
+ mem_put(&tokens, ¤t_column, sizeof(current_column));
+ return token;
+ } else {
+ int token;
+ mem_get(&tokens, &token, sizeof(token));
+ mem_get(&tokens, &a3_lval, sizeof(a3_lval));
+ mem_get(&tokens, ¤t_line, sizeof(current_line));
+ mem_get(&tokens, ¤t_column, sizeof(current_column));
+ return token;
+ }
+#else
+ return as3_lex();
+#endif
+}
+