File: lexerconstruct.c

package info (click to toggle)
yodl 4.05.02-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 4,724 kB
  • sloc: ansic: 7,803; perl: 683; cpp: 570; sh: 411; xml: 190; makefile: 163
file content (36 lines) | stat: -rw-r--r-- 1,056 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include "lexer.ih"

/*
    Subst      *d_subst_ptr     - external subst-structure
    Stack       d_empty_st      - empty
    size_t      d_empty_size    - 0
    bool        d_keep_ws       - false
    Stack       d_media_st      - empty
    void       *d_media_ptr     - NULL
    LEXER_TOKEN d_token         - TOKEN_UNKNOWN
    int         d_lastchar      - 0
    String      d_text          - empty string
*/

void lexer_construct(register Lexer *lp, Subst *sp)
{
    memset(lp, 0, sizeof(Lexer));
    string_construct(&lp->d_text, 0);
    lp->d_subst_ptr = sp;
    lp->d_useSubst = false;
    stack_construct(&lp->d_empty_st, NULL);     /* stores values    */
    stack_construct(&lp->d_media_st, media_destructor);
    lp->d_maxdepth = args_option('n') ? args_optint('n') : 
                                                    DEFAULT_MAX_NESTED_FILES;
    lp->d_maxreplacements = 
            10000 * 
            (args_option('r') ? args_optint('r') : DEFAULT_MAX_REPLACEMENTS);

    lp->d_chdirFun = args_option('L') ? l_noChdir : l_chdir;
}