Skip to content
Snippets Groups Projects
ast_expr2f.c 105 KiB
Newer Older
  • Learn to ignore specific revisions
  • Tilghman Lesher's avatar
     
    Tilghman Lesher committed
        {
    
            7,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
          -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
          -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
          -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
          -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
          -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
    
          -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
          -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
          -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
          -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
          -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
          -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
          -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38
    
    Tilghman Lesher's avatar
     
    Tilghman Lesher committed
        },
    
        {
            7,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
          -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
          -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
    
    
          -39,  -39,  -39,  -39,  -39,   39,   39,  -39,  -39,   39,
          -39,  -39,  -39,  -39,   39,  -39,   39,  -39,   39,   39,
           39,   39,   39,   39,   39,   39,   39,   39,  -39,   39,
          -39,  -39,  -39,  -39,   39,   39,   39,   39,   39,   39,
           39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
           39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
           39,  -39,   39,  -39,   39,   39,  -39,   39,   39,   39,
           39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
           39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
           39,   39,   39,  -39,  -39,  -39,  -39,  -39
    
    Tilghman Lesher's avatar
     
    Tilghman Lesher committed
    
        },
    
        {
            7,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
          -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
          -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
          -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
          -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
          -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
          -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
          -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
          -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
          -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
    
          -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
          -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
          -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40
        },
    
        {
            7,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
          -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
          -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
    
          -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
          -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
          -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
          -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
    
          -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
          -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
          -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
          -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
          -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
          -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41
    
    Tilghman Lesher's avatar
     
    Tilghman Lesher committed
        },
    
        {
            7,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
          -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
          -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
    
          -42,  -42,  -42,  -42,  -42,   39,   39,  -42,  -42,   39,
    
          -42,  -42,  -42,  -42,   39,  -42,   39,  -42,   42,   42,
           42,   42,   42,   42,   42,   42,   42,   42,  -42,   39,
          -42,  -42,  -42,  -42,   39,   39,   39,   39,   39,   39,
           39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
           39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
           39,  -42,   39,  -42,   39,   39,  -42,   39,   39,   39,
           39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
           39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
           39,   39,   39,  -42,  -42,  -42,  -42,  -42
    
    Tilghman Lesher's avatar
     
    Tilghman Lesher committed
        },
    
        {
            7,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
    
          -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
          -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
          -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
          -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
          -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
          -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
          -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
          -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
          -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
          -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
    
          -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
          -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43
        },
    
        {
            7,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
          -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
          -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
          -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
          -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
          -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
          -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
          -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
    
          -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
          -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
          -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
          -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
          -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44
        },
    
        {
    
            7,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
          -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
          -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
          -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
          -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
    
          -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
          -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
          -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
          -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
          -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
          -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
          -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
          -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45
    
    Tilghman Lesher's avatar
     
    Tilghman Lesher committed
        },
    
        {
            7,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
          -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
    
          -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
          -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
          -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
          -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
          -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
          -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
          -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
          -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
          -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
          -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
    
          -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46
        },
    
        {
            7,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
          -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
          -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
          -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
          -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
          -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
          -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
          -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
          -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
    
          -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
          -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
          -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
          -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47
        },
    
        {
    
            7,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
          -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
          -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
          -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
          -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
          -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
    
          -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
          -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
          -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
          -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
          -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
          -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
          -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48
    
    Tilghman Lesher's avatar
     
    Tilghman Lesher committed
        },
    
        {
    
            7,   49,   49,   49,   49,   49,   49,   49,   49,   49,
           49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
           49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
    
           49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
           49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
           49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
           49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
           49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
           49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
           49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
           49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
           49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
           49,   49,   49,   50,   49,   51,   49,   49
    
        },
    
    Tilghman Lesher's avatar
     
    Tilghman Lesher committed
    
    
        {
            7,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
          -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
          -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
          -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
          -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
          -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
          -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
          -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
          -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
          -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
    
          -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
          -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
          -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50
        },
    
        {
            7,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
          -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
          -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
          -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
          -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
          -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
          -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
    
          -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
          -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
          -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
          -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
          -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
          -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51
        },
    
        {
            7,   52,   52,   52,   52,   52,   52,   52,   52,  -52,
          -52,   52,   52,  -52,   52,   52,   52,   52,   52,   52,
           52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
           52,   52,  -52,  -52,   52,   52,  -52,  -52,  -52,   52,
    
          -52,  -52,  -52,  -52,   52,  -52,   52,  -52,   52,   52,
           52,   52,   52,   52,   52,   52,   52,   52,  -52,   52,
          -52,  -52,  -52,  -52,   52,   52,   52,   52,   52,   52,
           52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
           52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
           52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
           52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
           52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
           52,   52,   52,   52,  -52,   52,   52,   52
        },
    
        {
            7,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
    
          -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
          -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
          -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
          -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
          -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
          -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
          -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
          -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
          -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
          -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
    
          -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
          -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53
    
    Tilghman Lesher's avatar
     
    Tilghman Lesher committed
        },
    
    
    
    static yy_state_type yy_get_previous_state (yyscan_t yyscanner );
    static yy_state_type yy_try_NUL_trans (yy_state_type current_state  ,yyscan_t yyscanner);
    static int yy_get_next_buffer (yyscan_t yyscanner );
    static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
    
    /* Done after the current pattern has been matched and before the
     * corresponding action - sets up yytext.
     */
    #define YY_DO_BEFORE_ACTION \
    	yyg->yytext_ptr = yy_bp; \
    
    Tilghman Lesher's avatar
     
    Tilghman Lesher committed
    	yyg->yytext_ptr -= yyg->yy_more_len; \
    	yyleng = (size_t) (yy_cp - yyg->yytext_ptr); \
    
    	yyg->yy_hold_char = *yy_cp; \
    	*yy_cp = '\0'; \
    	yyg->yy_c_buf_p = yy_cp;
    
    
    #define YY_NUM_RULES 35
    #define YY_END_OF_BUFFER 36
    
    /* This struct is not used in this scanner,
       but its presence is necessary. */
    struct yy_trans_info
    	{
    	flex_int32_t yy_verify;
    	flex_int32_t yy_nxt;
    	};
    
    static yyconst flex_int16_t yy_accept[54] =
    
            0,    0,    0,    0,   32,   32,   36,   35,   25,   27,
           19,   35,   29,   29,   17,    2,   22,   23,   15,   13,
           14,   16,   28,   20,    9,    3,    8,   18,    1,   35,
           31,   30,   32,   33,   33,   12,    0,   26,   29,   24,
            5,   28,   21,   11,    6,    7,   10,    4,    0,   31,
           30,   32,   34
    
    static yyconst yy_state_type yy_NUL_trans[54] =
    
    Tilghman Lesher's avatar
     
    Tilghman Lesher committed
            8,    8,   30,   30,   33,   33,    0,    0,    0,    0,
    
            0,   37,    0,    0,    0,    0,    0,    0,    0,    0,
            0,    0,    0,    0,    0,    0,    0,    0,    0,   49,
            0,    0,   52,    0,    0,    0,   37,    0,    0,    0,
            0,    0,    0,    0,    0,    0,    0,    0,   49,    0,
            0,   52,    0
    
        } ;
    
    /* The intent behind this definition is that it'll catch
     * any uses of REJECT which flex missed.
     */
    #define REJECT reject_used_but_not_detected
    
    Tilghman Lesher's avatar
     
    Tilghman Lesher committed
    #define yymore() (yyg->yy_more_flag = 1)
    #define YY_MORE_ADJ yyg->yy_more_len
    
    #define YY_RESTORE_YY_MORE_OFFSET
    #line 1 "ast_expr2.fl"
    #line 2 "ast_expr2.fl"
    
    /*
     * Asterisk -- An open source telephony toolkit.
     *
     * Copyright (C) 1999 - 2006, Digium, Inc.
     *
     * Mark Spencer <markster@digium.com>
     *
     * See http://www.asterisk.org for more information about
     * the Asterisk project. Please do not directly contact
     * any of the maintainers of this project for assistance;
     * the project provides a web site, mailing lists and IRC
     * channels for your use.
     *
     * This program is free software, distributed under the terms of
     * the GNU General Public License Version 2. See the LICENSE file
     * at the top of the source tree.
     */
    
    
    Tilghman Lesher's avatar
     
    Tilghman Lesher committed
    /*! \file
     *
    
     * \brief Dialplan Expression Lexical Scanner
    
    Tilghman Lesher's avatar
     
    Tilghman Lesher committed
     */
    
    
    #include <sys/types.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <locale.h>
    #include <ctype.h>
    
    Kevin P. Fleming's avatar
    Kevin P. Fleming committed
    #if !defined(SOLARIS) && !defined(__CYGWIN__)
    
    #endif
    #include <errno.h>
    #include <regex.h>
    #include <limits.h>
    
    
    #include "asterisk.h"
    
    ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
    
    #include "asterisk/ast_expr.h"
    #include "asterisk/logger.h"
    #include "asterisk/strings.h"
    
    
    enum valtype {
    	AST_EXPR_integer, AST_EXPR_numeric_string, AST_EXPR_string
    } ;
    
    struct val {
    	enum valtype type;
    	union {
    		char *s;
    		quad_t i;
    	} u;
    } ;
    
    #include "ast_expr2.h" /* the o/p of the bison on ast_expr2.y */
    
    
    #define SET_COLUMNS	do {		\
    	yylloc_param->first_column = (int)(yyg->yytext_r - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf); \
    	yylloc_param->last_column += yyleng - 1; \
    	yylloc_param->first_line = yylloc_param->last_line = 1; \
    	} while (0)
    
    #define SET_STRING	do {		\
    	yylval_param->val = calloc(1, sizeof(struct val));	\
    	yylval_param->val->type = AST_EXPR_string;		\
    	yylval_param->val->u.s = strdup(yytext);		\
    	} while (0)
    
    #define SET_NUMERIC_STRING	do {	\
    	yylval_param->val = calloc(1, sizeof(struct val));	\
    	yylval_param->val->type = AST_EXPR_numeric_string;	\
    	yylval_param->val->u.s = strdup(yytext);	\
    	} while (0)
    
    
    struct parse_io
    {
    	char *string;
    	struct val *val;
    	yyscan_t scanner;
    };
     
    
    void ast_yyset_column(int column_no, yyscan_t yyscanner);
    int ast_yyget_column(yyscan_t yyscanner);
    
    Tilghman Lesher's avatar
     
    Tilghman Lesher committed
    static int curlycount = 0;
    
    static char *expr2_token_subst(char *mess);
    
    #line 1425 "ast_expr2f.c"
    
    Tilghman Lesher's avatar
     
    Tilghman Lesher committed
    #define var 1
    #define trail 2
    
    #ifndef YY_NO_UNISTD_H
    
    /* Special case for "unistd.h", since it is non-ANSI. We include it way
     * down here because we want the user's section 1 to have been scanned first.
     * The user has a chance to override it with an option.
     */
    #include <unistd.h>
    
    
    #ifndef YY_EXTRA_TYPE
    #define YY_EXTRA_TYPE void *
    #endif
    
    /* Holds the entire state of the reentrant scanner. */
    struct yyguts_t
        {
    
        /* User-defined. Not touched by flex. */
        YY_EXTRA_TYPE yyextra_r;
    
        /* The rest are the same as the globals declared in the non-reentrant scanner. */
        FILE *yyin_r, *yyout_r;
        size_t yy_buffer_stack_top; /**< index of top of stack. */
        size_t yy_buffer_stack_max; /**< capacity of stack. */
        YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */
        char yy_hold_char;
        int yy_n_chars;
        int yyleng_r;
        char *yy_c_buf_p;
        int yy_init;
        int yy_start;
        int yy_did_buffer_switch_on_eof;
        int yy_start_stack_ptr;
        int yy_start_stack_depth;
        int *yy_start_stack;
        yy_state_type yy_last_accepting_state;
        char* yy_last_accepting_cpos;
    
        int yylineno_r;
        int yy_flex_debug_r;
    
        char *yytext_r;
        int yy_more_flag;
        int yy_more_len;
    
        YYSTYPE * yylval_r;
    
        YYLTYPE * yylloc_r;
    
        }; /* end struct yyguts_t */
    
    
    static int yy_init_globals (yyscan_t yyscanner );
    
    
        /* This must go here because YYSTYPE and YYLTYPE are included
         * from bison output in section 1.*/
        #    define yylval yyg->yylval_r
        
        #    define yylloc yyg->yylloc_r
        
    /* Accessor methods to globals.
       These are made visible to non-reentrant scanners for convenience. */
    
    int ast_yylex_destroy (yyscan_t yyscanner );
    
    int ast_yyget_debug (yyscan_t yyscanner );
    
    void ast_yyset_debug (int debug_flag ,yyscan_t yyscanner );
    
    YY_EXTRA_TYPE ast_yyget_extra (yyscan_t yyscanner );
    
    void ast_yyset_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner );
    
    FILE *ast_yyget_in (yyscan_t yyscanner );
    
    void ast_yyset_in  (FILE * in_str ,yyscan_t yyscanner );
    
    FILE *ast_yyget_out (yyscan_t yyscanner );
    
    void ast_yyset_out  (FILE * out_str ,yyscan_t yyscanner );
    
    int ast_yyget_leng (yyscan_t yyscanner );
    
    char *ast_yyget_text (yyscan_t yyscanner );
    
    int ast_yyget_lineno (yyscan_t yyscanner );
    
    void ast_yyset_lineno (int line_number ,yyscan_t yyscanner );
    
    YYSTYPE * ast_yyget_lval (yyscan_t yyscanner );
    
    void ast_yyset_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner );
    
           YYLTYPE *ast_yyget_lloc (yyscan_t yyscanner );
        
            void ast_yyset_lloc (YYLTYPE * yylloc_param ,yyscan_t yyscanner );
        
    /* Macros after this point can all be overridden by user definitions in
     * section 1.
     */
    
    #ifndef YY_SKIP_YYWRAP
    #ifdef __cplusplus
    extern "C" int ast_yywrap (yyscan_t yyscanner );
    #else
    extern int ast_yywrap (yyscan_t yyscanner );
    #endif
    #endif
    
        static void yyunput (int c,char *buf_ptr  ,yyscan_t yyscanner);
        
    #ifndef yytext_ptr
    static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner);
    #endif
    
    #ifdef YY_NEED_STRLEN
    static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner);
    #endif
    
    #ifndef YY_NO_INPUT
    
    #ifdef __cplusplus
    static int yyinput (yyscan_t yyscanner );
    #else
    static int input (yyscan_t yyscanner );
    #endif
    
    #endif
    
    /* Amount of stuff to slurp up with each read. */
    #ifndef YY_READ_BUF_SIZE
    #define YY_READ_BUF_SIZE 8192
    #endif
    
    /* Copy whatever the last rule matched to the standard output. */
    #ifndef ECHO
    /* This used to be an fputs(), but since the string might contain NUL's,
     * we now use fwrite().
     */
    #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
    #endif
    
    /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
     * is returned in "result".
     */
    #ifndef YY_INPUT
    #define YY_INPUT(buf,result,max_size) \
    
    	errno=0; \
    	while ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \
    	{ \
    		if( errno != EINTR) \
    
    		{ \
    			YY_FATAL_ERROR( "input in flex scanner failed" ); \
    
    \
    
    #endif
    
    /* No semi-colon after return; correct usage is to write "yyterminate();" -
     * we don't want an extra ';' after the "return" because that will cause
     * some compilers to complain about unreachable statements.
     */
    #ifndef yyterminate
    #define yyterminate() return YY_NULL
    #endif
    
    /* Number of entries by which start-condition stack grows. */
    #ifndef YY_START_STACK_INCR
    #define YY_START_STACK_INCR 25
    #endif
    
    /* Report a fatal error. */
    #ifndef YY_FATAL_ERROR
    #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
    #endif
    
    /* end tables serialization structures and prototypes */
    
    /* Default declaration of generated scanner - a define so the user can
     * easily add parameters.
     */
    #ifndef YY_DECL
    #define YY_DECL_IS_OURS 1
    
    
    extern int ast_yylex \
                   (YYSTYPE * yylval_param,YYLTYPE * yylloc_param ,yyscan_t yyscanner);
    
    #define YY_DECL int ast_yylex \
                   (YYSTYPE * yylval_param, YYLTYPE * yylloc_param , yyscan_t yyscanner)
    
    #endif /* !YY_DECL */
    
    /* Code executed at the beginning of each rule, after yytext and yyleng
     * have been set up.
     */
    #ifndef YY_USER_ACTION
    #define YY_USER_ACTION
    #endif
    
    /* Code executed at the end of each rule. */
    #ifndef YY_BREAK
    #define YY_BREAK break;
    #endif
    
    #define YY_RULE_SETUP \
    	YY_USER_ACTION
    
    /** The main scanner function which does all the work.
     */
    YY_DECL
    {
    	register yy_state_type yy_current_state;
    	register char *yy_cp, *yy_bp;
    	register int yy_act;
        struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
    
    
    #line 102 "ast_expr2.fl"
    
    #line 1651 "ast_expr2f.c"
    
    
    #ifdef YY_USER_INIT
    		YY_USER_INIT;
    #endif
    
    		if ( ! yyg->yy_start )
    			yyg->yy_start = 1;	/* first start state */
    
    		if ( ! yyin )
    			yyin = stdin;
    
    		if ( ! yyout )
    			yyout = stdout;
    
    		if ( ! YY_CURRENT_BUFFER ) {
    			ast_yyensure_buffer_stack (yyscanner);
    			YY_CURRENT_BUFFER_LVALUE =
    				ast_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
    		}
    
    		ast_yy_load_buffer_state(yyscanner );
    		}
    
    	while ( 1 )		/* loops until end-of-file is reached */
    		{
    
    Tilghman Lesher's avatar
     
    Tilghman Lesher committed
    		yyg->yy_more_len = 0;
    		if ( yyg->yy_more_flag )
    			{
    			yyg->yy_more_len = yyg->yy_c_buf_p - yyg->yytext_ptr;
    			yyg->yy_more_flag = 0;
    			}
    
    		yy_cp = yyg->yy_c_buf_p;
    
    		/* Support of yytext. */
    		*yy_cp = yyg->yy_hold_char;
    
    		/* yy_bp points to the position in yy_ch_buf of the start of
    		 * the current run.
    		 */
    		yy_bp = yy_cp;
    
    		yy_current_state = yyg->yy_start;
    yy_match:
    
    		while ( (yy_current_state = yy_nxt[yy_current_state][ YY_SC_TO_UI(*yy_cp) ]) > 0 )
    
    			{
    			if ( yy_accept[yy_current_state] )
    				{
    				yyg->yy_last_accepting_state = yy_current_state;
    				yyg->yy_last_accepting_cpos = yy_cp;
    				}
    
    
    		yy_current_state = -yy_current_state;
    
    
    yy_find_action:
    		yy_act = yy_accept[yy_current_state];
    
    		YY_DO_BEFORE_ACTION;
    
    do_action:	/* This label is used only to access EOF actions. */
    
    		switch ( yy_act )
    	{ /* beginning of action switch */
    			case 0: /* must back up */
    			/* undo the effects of YY_DO_BEFORE_ACTION */
    			*yy_cp = yyg->yy_hold_char;
    
    			yy_cp = yyg->yy_last_accepting_cpos + 1;
    
    			yy_current_state = yyg->yy_last_accepting_state;
    			goto yy_find_action;
    
    case 1:
    YY_RULE_SETUP
    
    #line 104 "ast_expr2.fl"
    
    { SET_COLUMNS; SET_STRING; return TOK_OR;}
    	YY_BREAK
    case 2:
    YY_RULE_SETUP
    
    #line 105 "ast_expr2.fl"
    
    { SET_COLUMNS; SET_STRING; return TOK_AND;}
    	YY_BREAK
    case 3:
    YY_RULE_SETUP
    
    #line 106 "ast_expr2.fl"
    
    { SET_COLUMNS; SET_STRING; return TOK_EQ;}
    	YY_BREAK
    case 4:
    YY_RULE_SETUP
    
    #line 107 "ast_expr2.fl"
    
    #line 108 "ast_expr2.fl"
    
    { SET_COLUMNS; SET_STRING; return TOK_AND;}
    
    #line 109 "ast_expr2.fl"
    
    #line 110 "ast_expr2.fl"
    
    { SET_COLUMNS; SET_STRING; return TOK_EQTILDE;}
    
    #line 111 "ast_expr2.fl"
    
    #line 112 "ast_expr2.fl"
    
    #line 113 "ast_expr2.fl"
    
    #line 114 "ast_expr2.fl"
    
    #line 115 "ast_expr2.fl"
    
    #line 116 "ast_expr2.fl"
    
    { SET_COLUMNS; SET_STRING; return TOK_PLUS;}
    
    #line 117 "ast_expr2.fl"
    
    { SET_COLUMNS; SET_STRING; return TOK_MINUS;}
    
    #line 118 "ast_expr2.fl"
    
    { SET_COLUMNS; SET_STRING; return TOK_MULT;}
    
    #line 119 "ast_expr2.fl"
    
    { SET_COLUMNS; SET_STRING; return TOK_DIV;}
    
    #line 120 "ast_expr2.fl"
    
    { SET_COLUMNS; SET_STRING; return TOK_MOD;}
    
    #line 121 "ast_expr2.fl"
    
    { SET_COLUMNS; SET_STRING; return TOK_COND;}
    
    #line 122 "ast_expr2.fl"
    
    { SET_COLUMNS; SET_STRING; return TOK_COMPL;}
    	YY_BREAK
    case 20:
    YY_RULE_SETUP
    
    #line 123 "ast_expr2.fl"
    
    { SET_COLUMNS; SET_STRING; return TOK_COLON;}
    	YY_BREAK
    case 21:
    YY_RULE_SETUP
    
    #line 124 "ast_expr2.fl"
    
    { SET_COLUMNS; SET_STRING; return TOK_COLONCOLON;}
    	YY_BREAK
    case 22:
    YY_RULE_SETUP
    
    #line 125 "ast_expr2.fl"
    
    { SET_COLUMNS; SET_STRING; return TOK_LP;}
    	YY_BREAK
    case 23:
    YY_RULE_SETUP
    
    #line 126 "ast_expr2.fl"
    
    { SET_COLUMNS; SET_STRING; return TOK_RP;}
    	YY_BREAK
    case 24:
    YY_RULE_SETUP
    
    #line 127 "ast_expr2.fl"
    {
    		/* gather the contents of ${} expressions, with trailing stuff,
    		 * into a single TOKEN.
    		 * They are much more complex now than they used to be
    		 */
    		curlycount = 0;
    		BEGIN(var);
    		yymore();
    	}
    
    #line 137 "ast_expr2.fl"
    
    Tilghman Lesher's avatar
     
    Tilghman Lesher committed
    {}
    
    #line 138 "ast_expr2.fl"
    
    Tilghman Lesher's avatar
     
    Tilghman Lesher committed
    {SET_COLUMNS; SET_STRING; return TOKEN;}
    
    #line 140 "ast_expr2.fl"
    
    Tilghman Lesher's avatar
     
    Tilghman Lesher committed
    {/* what to do with eol */}
    	YY_BREAK
    
    Tilghman Lesher's avatar
     
    Tilghman Lesher committed
    YY_RULE_SETUP
    
    #line 141 "ast_expr2.fl"
    {
    		SET_COLUMNS;
    		/* the original behavior of the expression parser was
    		 * to bring in numbers as a numeric string
    		 */
    		SET_NUMERIC_STRING;
    		return TOKEN;
    	}
    
    #line 150 "ast_expr2.fl"
    {
    		SET_COLUMNS;
    		SET_STRING;
    		return TOKEN;
    	}
    
    #line 157 "ast_expr2.fl"
    {
    		curlycount--;
    		if (curlycount < 0) {
    			BEGIN(trail);
    			yymore();
    		} else {
    			yymore();
    		}
    	}
    
    Tilghman Lesher's avatar
     
    Tilghman Lesher committed
    	YY_BREAK
    
    Tilghman Lesher's avatar
     
    Tilghman Lesher committed
    YY_RULE_SETUP
    
    #line 167 "ast_expr2.fl"
    {
    		curlycount++;
    		yymore();
    	}
    
    Tilghman Lesher's avatar
     
    Tilghman Lesher committed
    	YY_BREAK
    
    Tilghman Lesher's avatar
     
    Tilghman Lesher committed
    YY_RULE_SETUP
    
    #line 173 "ast_expr2.fl"
    {
    		BEGIN(0);
    		SET_COLUMNS;
    		SET_STRING;
    		return TOKEN;
    	}
    
    Tilghman Lesher's avatar
     
    Tilghman Lesher committed
    	YY_BREAK
    
    Tilghman Lesher's avatar
     
    Tilghman Lesher committed
    YY_RULE_SETUP
    
    #line 180 "ast_expr2.fl"
    {
    		char c = yytext[yyleng-1];
    		BEGIN(0);
    		unput(c);
    		SET_COLUMNS;
    		SET_STRING;
    		return TOKEN;
    	}
    
    Tilghman Lesher's avatar
     
    Tilghman Lesher committed
    	YY_BREAK
    
    Tilghman Lesher's avatar
     
    Tilghman Lesher committed
    YY_RULE_SETUP
    
    #line 189 "ast_expr2.fl"
    {
    		curlycount = 0;
    		BEGIN(var);
    		yymore();
    	}
    
    Tilghman Lesher's avatar
     
    Tilghman Lesher committed
    	YY_BREAK
    case YY_STATE_EOF(trail):
    
    #line 195 "ast_expr2.fl"
    {
    		BEGIN(0);
    		SET_COLUMNS;
    		SET_STRING;
    		return TOKEN;
    		/*actually, if an expr is only a variable ref, this could happen a LOT */
    	}
    
    Tilghman Lesher's avatar
     
    Tilghman Lesher committed
    	YY_BREAK
    
    Tilghman Lesher's avatar
     
    Tilghman Lesher committed
    YY_RULE_SETUP
    
    #line 203 "ast_expr2.fl"
    
    #line 1968 "ast_expr2f.c"
    
    Tilghman Lesher's avatar
     
    Tilghman Lesher committed
    case YY_STATE_EOF(var):
    
    	yyterminate();
    
    	case YY_END_OF_BUFFER:
    		{
    		/* Amount of text matched not including the EOB char. */
    		int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
    
    		/* Undo the effects of YY_DO_BEFORE_ACTION. */
    		*yy_cp = yyg->yy_hold_char;
    		YY_RESTORE_YY_MORE_OFFSET
    
    		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
    			{
    			/* We're scanning a new file or input source.  It's
    			 * possible that this happened because the user
    			 * just pointed yyin at a new source and called
    			 * ast_yylex().  If so, then we have to assure
    			 * consistency between YY_CURRENT_BUFFER and our
    			 * globals.  Here is the right place to do so, because
    			 * this is the first action (other than possibly a
    			 * back-up) that will match for the new input source.
    			 */
    			yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
    			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
    			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
    			}
    
    		/* Note that here we test for yy_c_buf_p "<=" to the position
    		 * of the first EOB in the buffer, since yy_c_buf_p will
    		 * already have been incremented past the NUL character
    		 * (since all states make transitions on EOB to the