X-Git-Url: https://www.kengrimes.com/gitweb/?p=henge%2Fapc.git;a=blobdiff_plain;f=src%2Fscanner.c;h=abf472e88998cdf5b974eb0c358ab71b49cd32ef;hp=96b66b63de96695c48b784e268097d9f59a2643b;hb=78ec1b2aecefbd7f6839f54c52b2dd6e3f80bf1a;hpb=4c97482a33d6066134b35d26bf6808476950d728 diff --git a/src/scanner.c b/src/scanner.c index 96b66b6..abf472e 100644 --- a/src/scanner.c +++ b/src/scanner.c @@ -32,8 +32,11 @@ yypstate* apc_pstate; yycstate* apc_cstate; /* Private */ extern //lexer.rl -int lexer_lexfile(uint8_t const*); -#define PUSHTOK(T,L) yypush_parse(apc_pstate, T, L, apc_cstate) +int lexer_lexfile(uint8_t*); +extern //lexer.rl +int lexer_lexdir(uint8_t*); +extern //lexer.rl +void lexer_closedir(void); /* Init Establishes yy states @@ -97,20 +100,19 @@ int scanner_scandir lexer_lexfile((uint8_t*)direntp->d_name); goto scan_next_dirent; case DT_DIR: - lexer_lexfile((uint8_t*)direntp->d_name); //lex the dirname + lexer_lexdir((uint8_t*)direntp->d_name); //lex the dirname printf("lexdir %s\n",direntp->d_name); if (chdir(direntp->d_name)) //change to the specified dir goto libfail; errno = 0; if ((cdirp = opendir(".")) == NULL || errno) //open it goto libfail; - PUSHTOK(CLOPEN, NULL); //push "Open Directory" token printf("Scanner entered [%s]\n",direntp->d_name); if(scanner_scandir(cdirp)) //scan the directory goto libfail; if (chdir("..")) //return to the parent dir goto libfail; - PUSHTOK(CLCLOSE, NULL); //push "Close Directory" token + lexer_closedir(); //push "Close Directory" token printf("Scanner returned\n"); goto scan_next_dirent; //continue scan case DT_UNKNOWN: