X-Git-Url: https://git.kengrimes.com/?p=henge%2Fapc.git;a=blobdiff_plain;f=src%2Flexer.rl;h=553ff3d2a26daea2741a5eb5067cfb9e1a91509e;hp=821d742f78f5749c4b77ee6901d6dca93b6f49d3;hb=4c97482a33d6066134b35d26bf6808476950d728;hpb=7717f2734d7b85ac3b2fc960602c1560dd602db6 diff --git a/src/lexer.rl b/src/lexer.rl index 821d742..553ff3d 100644 --- a/src/lexer.rl +++ b/src/lexer.rl @@ -11,6 +11,7 @@ void lexer_pushtok(int, YYSTYPE); /* Public */ int lexer_setdirection(uint8_t*, int); int lexer_lexfile(const uint8_t*); +int lexer_lexdir(const uint8_t*); int lexer_lexstring(const uint8_t*, int); int lexer_setstr(uint8_t*, int); //apc.c @@ -115,12 +116,12 @@ yycstate* apc_cstate; SS = ('+SS' %to(push_SS)) | ('+SS' %to(push_SS) link ) ; ref = '0x' >set_ts alnum{8} $err(ref_error) %push_ref ; val = digit+ >set_ts %push_val ; - name = (lower+ >set_ts) (lower | digit)+ %push_name ; + name = lower >set_ts (lower | digit)* %push_name ; map = '+MAP' %to(push_map); tok = (name | val | ref | dimensions | map | link | SS | direction); - main := (tok tok_delimiter)+ tok [\0]; + main := (tok tok_delimiter)* tok [\0]; write data nofinal noerror noprefix; @@ -171,6 +172,13 @@ int lexer_lexfile return en_main == 1; } +int lexer_lexdir +( uint8_t const* dirname ) +{ uint8_t const* de = dirname; + while (*de++); + return lexer_lexstring(dirname, (int)(de - dirname)); +} + /**************************/ /****Abandon All Hope******/ /**************************/