[insert project logo here (125x200px max)]

Navigator

Mailinglists

Please report any errors or ommissions you find to our `Help' mailinglist, or post a message in the Forums.

Copyright and Licensing Information

Snap is (c) Jonathan T. Moore, 1999-2002 and licensed under the GNU General Public License (GPL).

All other parts of Splash are (c) Willem de Bruijn, 2002-2003 and licensed under the BSD Open Source License.

All sourcecode is made publicly available.

Acknowledgement

Splash and the Splash website are hosted by SourceForge.net

SourceForge.net Logo

osi-open source certified logo

Splash - Documentation

SNMP Plus a Lightweight API for SNAP Handling

Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

snap-1.1-wjdb/utils/snapparse.c File Reference

#include "../lib/config.h"
#include <errno.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <netinet/in.h>
#include "../lib/bytecode.h"
#include "../lib/dyncheck.h"
#include "../lib/packet.h"
#include "../lib/io.h"
#include "../lib/memalloc.h"
#include "labels.h"
#include "../lib/d_printf.h"
#include "../lib/list.h"

Include dependency graph for snapparse.c:

Include dependency graph

Go to the source code of this file.


Data Structures

union  yyalloc
union  yystype

Defines

#define YYBISON   1
#define T_INTV   257
#define T_ADDRV   258
#define T_STRV   259
#define T_EXCV   260
#define T_FLOATV   261
#define T_MAIN   262
#define T_EXIT   263
#define T_PUSH   264
#define T_POP   265
#define T_POPI   266
#define T_PULL   267
#define T_EQ   268
#define T_EQI   269
#define T_PAJ   270
#define T_TPAJ   271
#define T_BEZ   272
#define T_BNE   273
#define T_STORE   274
#define T_JI   275
#define T_NEQ   276
#define T_NEQI   277
#define T_ADD   278
#define T_ADDI   279
#define T_SUB   280
#define T_SUBI   281
#define T_MULT   282
#define T_MULTI   283
#define T_DIV   284
#define T_DIVI   285
#define T_MOD   286
#define T_MODI   287
#define T_NEG   288
#define T_NOT   289
#define T_LNOT   290
#define T_AND   291
#define T_ANDI   292
#define T_OR   293
#define T_ORI   294
#define T_LSHL   295
#define T_LSHLI   296
#define T_RSHL   297
#define T_RSHLI   298
#define T_RSHA   299
#define T_RSHAI   300
#define T_SNET   301
#define T_SNETI   302
#define T_BCAST   303
#define T_BCASTI   304
#define T_ISX   305
#define T_GETRB   306
#define T_GETSRC   307
#define T_GETDST   308
#define T_GETSPT   309
#define T_HERE   310
#define T_ISHERE   311
#define T_ROUTE   312
#define T_RTDEV   313
#define T_SEND   314
#define T_HOP   315
#define T_FORW   316
#define T_FORWTO   317
#define T_DEMUX   318
#define T_DEMUXI   319
#define T_PRINT   320
#define T_GETLD   321
#define T_SETXH   322
#define T_RAISEX   323
#define T_PLUS   324
#define T_MINUS   325
#define T_LABEL   326
#define T_LABELV   327
#define T_PC   328
#define T_MKTUP   329
#define T_LEN   330
#define T_NTH   331
#define T_ISTUP   332
#define T_LPAREN   333
#define T_RPAREN   334
#define T_COMMA   335
#define T_SVCV   336
#define T_CALLS   337
#define T_GT   338
#define T_GEQ   339
#define T_LT   340
#define T_LEQ   341
#define T_GTI   342
#define T_GEQI   343
#define T_LTI   344
#define T_LEQI   345
#define T_DATA   346
#define T_DFORW   347
#define T_DFORWTO   348
#define T_DSEND   349
#define T_STACKEMPTY   350
#define T_STACKCOUNT   351
#define T_PULLSTACK   352
#define CHECK_CODE_OVERFLOW(p)
#define YYSTYPE   yystype
#define YYSTYPE_IS_TRIVIAL   1
#define YYDEBUG   0
#define YYFINAL   117
#define YYFLAG   -32768
#define YYNTBASE   99
#define YYTRANSLATE(x)   ((unsigned)(x) <= 352 ? yytranslate[x] : 109)
#define YYLAST   167
#define YYSTACK_ALLOC   malloc
#define YYSTACK_FREE   free
#define YYSTACK_GAP_MAX   (sizeof (union yyalloc) - 1)
#define YYSTACK_BYTES(N)
#define YYCOPY(To, From, Count)
#define YYSTACK_RELOCATE(Stack)
#define YYSIZE_T   unsigned int
#define yyerrok   (yyerrstatus = 0)
#define yyclearin   (yychar = YYEMPTY)
#define YYEMPTY   -2
#define YYEOF   0
#define YYACCEPT   goto yyacceptlab
#define YYABORT   goto yyabortlab
#define YYERROR   goto yyerrlab1
#define YYFAIL   goto yyerrlab
#define YYRECOVERING()   (!!yyerrstatus)
#define YYBACKUP(Token, Value)
#define YYTERROR   1
#define YYERRCODE   256
#define YYLLOC_DEFAULT(Current, Rhs, N)
#define YYLEX   yylex ()
#define YYDPRINTF(Args)
#define YYINITDEPTH   200
#define YYMAXDEPTH   10000
#define YYPARSE_PARAM_ARG
#define YYPARSE_PARAM_DECL
#define YY_DECL_NON_LSP_VARIABLES
#define YY_DECL_VARIABLES   YY_DECL_NON_LSP_VARIABLES
#define YYPOPSTACK   (yyvsp--, yyssp--)

Functions

int newho (buffer_t *b, char *file, int line)
int newtup (list_t *vlist, char *file, int line)
OPCODE_T refine_op (OPCODE_T op, TAG_T vtag)
void yyerror (char *s)
YY_DECL_VARIABLES int yyparse (YYPARSE_PARAM_ARG) YYPARSE_PARAM_DECL

Variables

packet_tp
int value_int
uint32 value_addr
buffer_t value_str
int value_exc
float32 value_float
int noop

Define Documentation

#define CHECK_CODE_OVERFLOW p   
 

Value:

if ((p)->pc >= (p)->code_max) {         \
  fprintf(stderr,"%s:%d: code overflow\n",  \
      __FILE__,__LINE__);           \
  fflush(stderr);               \
  exit(1);                  \
}

Definition at line 130 of file snapparse.c.

Referenced by yyparse().

#define T_ADD   278
 

Definition at line 27 of file snapparse.c.

#define T_ADDI   279
 

Definition at line 28 of file snapparse.c.

#define T_ADDRV   258
 

Definition at line 7 of file snapparse.c.

#define T_AND   291
 

Definition at line 40 of file snapparse.c.

#define T_ANDI   292
 

Definition at line 41 of file snapparse.c.

#define T_BCAST   303
 

Definition at line 52 of file snapparse.c.

#define T_BCASTI   304
 

Definition at line 53 of file snapparse.c.

#define T_BEZ   272
 

Definition at line 21 of file snapparse.c.

#define T_BNE   273
 

Definition at line 22 of file snapparse.c.

#define T_CALLS   337
 

Definition at line 86 of file snapparse.c.

#define T_COMMA   335
 

Definition at line 84 of file snapparse.c.

#define T_DATA   346
 

Definition at line 95 of file snapparse.c.

#define T_DEMUX   318
 

Definition at line 67 of file snapparse.c.

#define T_DEMUXI   319
 

Definition at line 68 of file snapparse.c.

#define T_DFORW   347
 

Definition at line 96 of file snapparse.c.

#define T_DFORWTO   348
 

Definition at line 97 of file snapparse.c.

#define T_DIV   284
 

Definition at line 33 of file snapparse.c.

#define T_DIVI   285
 

Definition at line 34 of file snapparse.c.

#define T_DSEND   349
 

Definition at line 98 of file snapparse.c.

#define T_EQ   268
 

Definition at line 17 of file snapparse.c.

#define T_EQI   269
 

Definition at line 18 of file snapparse.c.

#define T_EXCV   260
 

Definition at line 9 of file snapparse.c.

#define T_EXIT   263
 

Definition at line 12 of file snapparse.c.

#define T_FLOATV   261
 

Definition at line 10 of file snapparse.c.

#define T_FORW   316
 

Definition at line 65 of file snapparse.c.

#define T_FORWTO   317
 

Definition at line 66 of file snapparse.c.

#define T_GEQ   339
 

Definition at line 88 of file snapparse.c.

#define T_GEQI   343
 

Definition at line 92 of file snapparse.c.

#define T_GETDST   308
 

Definition at line 57 of file snapparse.c.

#define T_GETLD   321
 

Definition at line 70 of file snapparse.c.

#define T_GETRB   306
 

Definition at line 55 of file snapparse.c.

#define T_GETSPT   309
 

Definition at line 58 of file snapparse.c.

#define T_GETSRC   307
 

Definition at line 56 of file snapparse.c.

#define T_GT   338
 

Definition at line 87 of file snapparse.c.

#define T_GTI   342
 

Definition at line 91 of file snapparse.c.

#define T_HERE   310
 

Definition at line 59 of file snapparse.c.

#define T_HOP   315
 

Definition at line 64 of file snapparse.c.

#define T_INTV   257
 

Definition at line 6 of file snapparse.c.

#define T_ISHERE   311
 

Definition at line 60 of file snapparse.c.

#define T_ISTUP   332
 

Definition at line 81 of file snapparse.c.

#define T_ISX   305
 

Definition at line 54 of file snapparse.c.

#define T_JI   275
 

Definition at line 24 of file snapparse.c.

#define T_LABEL   326
 

Definition at line 75 of file snapparse.c.

#define T_LABELV   327
 

Definition at line 76 of file snapparse.c.

#define T_LEN   330
 

Definition at line 79 of file snapparse.c.

#define T_LEQ   341
 

Definition at line 90 of file snapparse.c.

#define T_LEQI   345
 

Definition at line 94 of file snapparse.c.

#define T_LNOT   290
 

Definition at line 39 of file snapparse.c.

#define T_LPAREN   333
 

Definition at line 82 of file snapparse.c.

#define T_LSHL   295
 

Definition at line 44 of file snapparse.c.

#define T_LSHLI   296
 

Definition at line 45 of file snapparse.c.

#define T_LT   340
 

Definition at line 89 of file snapparse.c.

#define T_LTI   344
 

Definition at line 93 of file snapparse.c.

#define T_MAIN   262
 

Definition at line 11 of file snapparse.c.

#define T_MINUS   325
 

Definition at line 74 of file snapparse.c.

#define T_MKTUP   329
 

Definition at line 78 of file snapparse.c.

#define T_MOD   286
 

Definition at line 35 of file snapparse.c.

#define T_MODI   287
 

Definition at line 36 of file snapparse.c.

#define T_MULT   282
 

Definition at line 31 of file snapparse.c.

#define T_MULTI   283
 

Definition at line 32 of file snapparse.c.

#define T_NEG   288
 

Definition at line 37 of file snapparse.c.

#define T_NEQ   276
 

Definition at line 25 of file snapparse.c.

#define T_NEQI   277
 

Definition at line 26 of file snapparse.c.

#define T_NOT   289
 

Definition at line 38 of file snapparse.c.

#define T_NTH   331
 

Definition at line 80 of file snapparse.c.

#define T_OR   293
 

Definition at line 42 of file snapparse.c.

#define T_ORI   294
 

Definition at line 43 of file snapparse.c.

#define T_PAJ   270
 

Definition at line 19 of file snapparse.c.

#define T_PC   328
 

Definition at line 77 of file snapparse.c.

#define T_PLUS   324
 

Definition at line 73 of file snapparse.c.

#define T_POP   265
 

Definition at line 14 of file snapparse.c.

#define T_POPI   266
 

Definition at line 15 of file snapparse.c.

#define T_PRINT   320
 

Definition at line 69 of file snapparse.c.

#define T_PULL   267
 

Definition at line 16 of file snapparse.c.

#define T_PULLSTACK   352
 

Definition at line 101 of file snapparse.c.

#define T_PUSH   264
 

Definition at line 13 of file snapparse.c.

#define T_RAISEX   323
 

Definition at line 72 of file snapparse.c.

#define T_ROUTE   312
 

Definition at line 61 of file snapparse.c.

#define T_RPAREN   334
 

Definition at line 83 of file snapparse.c.

#define T_RSHA   299
 

Definition at line 48 of file snapparse.c.

#define T_RSHAI   300
 

Definition at line 49 of file snapparse.c.

#define T_RSHL   297
 

Definition at line 46 of file snapparse.c.

#define T_RSHLI   298
 

Definition at line 47 of file snapparse.c.

#define T_RTDEV   313
 

Definition at line 62 of file snapparse.c.

#define T_SEND   314
 

Definition at line 63 of file snapparse.c.

#define T_SETXH   322
 

Definition at line 71 of file snapparse.c.

#define T_SNET   301
 

Definition at line 50 of file snapparse.c.

#define T_SNETI   302
 

Definition at line 51 of file snapparse.c.

#define T_STACKCOUNT   351
 

Definition at line 100 of file snapparse.c.

#define T_STACKEMPTY   350
 

Definition at line 99 of file snapparse.c.

#define T_STORE   274
 

Definition at line 23 of file snapparse.c.

#define T_STRV   259
 

Definition at line 8 of file snapparse.c.

#define T_SUB   280
 

Definition at line 29 of file snapparse.c.

#define T_SUBI   281
 

Definition at line 30 of file snapparse.c.

#define T_SVCV   336
 

Definition at line 85 of file snapparse.c.

#define T_TPAJ   271
 

Definition at line 20 of file snapparse.c.

#define YY_DECL_NON_LSP_VARIABLES
 

Value:

\
int yychar;                     \
                            \
    \
YYSTYPE yylval;                     \
                            \
            \
int yynerrs;

Definition at line 780 of file snapparse.c.

#define YY_DECL_VARIABLES   YY_DECL_NON_LSP_VARIABLES
 

Definition at line 797 of file snapparse.c.

Referenced by yyparse().

#define YYABORT   goto yyabortlab
 

Definition at line 591 of file snapparse.c.

Referenced by yyparse().

#define YYACCEPT   goto yyacceptlab
 

Definition at line 590 of file snapparse.c.

Referenced by yyparse().

#define YYBACKUP Token,
Value   
 

Value:

do                              \
  if (yychar == YYEMPTY && yylen == 1)              \
    {                               \
      yychar = (Token);                     \
      yylval = (Value);                     \
      yychar1 = YYTRANSLATE (yychar);               \
      YYPOPSTACK;                       \
      goto yybackup;                        \
    }                               \
  else                              \
    {                               \
      yyerror ("syntax error: cannot back up");         \
      YYERROR;                          \
    }                               \
while (0)

Definition at line 598 of file snapparse.c.

#define YYBISON   1
 

Definition at line 4 of file snapparse.c.

#define yyclearin   (yychar = YYEMPTY)
 

Definition at line 587 of file snapparse.c.

#define YYCOPY To,
From,
Count   
 

Value:

do                  \
    {                   \
      register YYSIZE_T yyi;        \
      for (yyi = 0; yyi < (Count); yyi++)   \
        (To)[yyi] = (From)[yyi];        \
    }                   \
      while (0)

Definition at line 540 of file snapparse.c.

#define YYDEBUG   0
 

Definition at line 169 of file snapparse.c.

#define YYDPRINTF Args   
 

Definition at line 671 of file snapparse.c.

Referenced by yyparse().

#define YYEMPTY   -2
 

Definition at line 588 of file snapparse.c.

Referenced by yyparse().

#define YYEOF   0
 

Definition at line 589 of file snapparse.c.

Referenced by yyparse().

#define YYERRCODE   256
 

Definition at line 616 of file snapparse.c.

#define yyerrok   (yyerrstatus = 0)
 

Definition at line 586 of file snapparse.c.

#define YYERROR   goto yyerrlab1
 

Definition at line 592 of file snapparse.c.

#define YYFAIL   goto yyerrlab
 

Definition at line 596 of file snapparse.c.

#define YYFINAL   117
 

Definition at line 174 of file snapparse.c.

Referenced by yyparse().

#define YYFLAG   -32768
 

Definition at line 175 of file snapparse.c.

Referenced by yyparse().

#define YYINITDEPTH   200
 

Definition at line 676 of file snapparse.c.

Referenced by yyparse().

#define YYLAST   167
 

Definition at line 388 of file snapparse.c.

Referenced by yyparse().

#define YYLEX   yylex ()
 

Definition at line 650 of file snapparse.c.

Referenced by yyparse().

#define YYLLOC_DEFAULT Current,
Rhs,
 
 

Value:

Current.last_line   = Rhs[N].last_line; \
   Current.last_column = Rhs[N].last_column;

Definition at line 627 of file snapparse.c.

Referenced by yyparse().

#define YYMAXDEPTH   10000
 

Definition at line 691 of file snapparse.c.

Referenced by yyparse().

#define YYNTBASE   99
 

Definition at line 176 of file snapparse.c.

Referenced by yyparse().

#define YYPARSE_PARAM_ARG
 

Definition at line 764 of file snapparse.c.

Referenced by yyparse().

#define YYPARSE_PARAM_DECL
 

Definition at line 765 of file snapparse.c.

Referenced by yyparse().

#define YYPOPSTACK   (yyvsp--, yyssp--)
 

 
#define YYRECOVERING      (!!yyerrstatus)
 

Definition at line 597 of file snapparse.c.

#define YYSIZE_T   unsigned int
 

Definition at line 583 of file snapparse.c.

Referenced by yyparse().

#define YYSTACK_ALLOC   malloc
 

Definition at line 498 of file snapparse.c.

Referenced by yyparse().

#define YYSTACK_BYTES  
 

Value:

((N) * (sizeof (short) + sizeof (YYSTYPE))              \
      + YYSTACK_GAP_MAX)

Definition at line 528 of file snapparse.c.

#define YYSTACK_FREE   free
 

Definition at line 499 of file snapparse.c.

Referenced by yyparse().

#define YYSTACK_GAP_MAX   (sizeof (union yyalloc) - 1)
 

Definition at line 519 of file snapparse.c.

#define YYSTACK_RELOCATE Stack   
 

Value:

do                                  \
      {                                 \
    YYSIZE_T yynewbytes;                        \
    YYCOPY (&yyptr->Stack, Stack, yysize);              \
    Stack = &yyptr->Stack;                      \
    yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX;   \
    yyptr += yynewbytes / sizeof (*yyptr);              \
      }                                 \
    while (0)

Definition at line 556 of file snapparse.c.

Referenced by yyparse().

#define YYSTYPE   yystype
 

Definition at line 165 of file snapparse.c.

Referenced by yyparse().

#define YYSTYPE_IS_TRIVIAL   1
 

Definition at line 166 of file snapparse.c.

#define YYTERROR   1
 

Definition at line 615 of file snapparse.c.

Referenced by yyparse().

#define YYTRANSLATE      ((unsigned)(x) <= 352 ? yytranslate[x] : 109)
 

Definition at line 179 of file snapparse.c.

Referenced by yyparse().


Function Documentation

int newho buffer_t   b,
char *    file,
int    line
 

Definition at line 1924 of file snapparse.c.

References d_printf(), file, heap_obj::flag, packet_t::h_alloc_ptr, packet_t::heap_max, packet_t::heap_min, heap_obj::len, buffer_t::lenb, MAX_HEAPOBJ_SZ, buffer_t::s, and heap_obj::s.

Referenced by yyparse().

int newtup list_t   vlist,
char *    file,
int    line
 

Definition at line 1952 of file snapparse.c.

References d_printf(), file, heap_obj::flag, packet_t::h_alloc_ptr, packet_t::heap_max, packet_t::heap_min, heap_obj::len, len, length_list(), MAX_HEAPOBJ_SZ, l::next, heap_obj::s, l::v, and value_t.

Referenced by yyparse().

OPCODE_T refine_op OPCODE_T    op,
TAG_T    vtag
 

Definition at line 1988 of file snapparse.c.

References ADDI, ADDRV, DIVI, EQADR, EQEXC, EQFLT, EQI, EQINT, EQSTR, EQTUP, EXCV, FADDI, FDIVI, FGEQI, FGTI, FLEQI, FLOATV, FLTI, FMULI, FSUBI, GEQI, GTI, INTV, LEQI, LTI, MULTI, NEQI, NQADR, NQEXC, NQFLT, NQINT, NQSTR, NQTUP, OPCODE_T, PADDR, PEXC, PFLT, PINT, PSTR, PTUP, PUSH, STRV, SUBI, TAG_T, and TUPLEV.

Referenced by yyparse().

void yyerror char *    s
 

Definition at line 2177 of file snapparse.c.

Referenced by yyparse().

YY_DECL_VARIABLES int yyparse YYPARSE_PARAM_ARG   
 

Definition at line 809 of file snapparse.c.

References ADD, ADDI, ADDRV, AND, ANDI, BCAST, BCASTI, BEZ, BNE, CALLS, CHECK_CODE_OVERFLOW, packet_t::code_min, cons(), COPY_VAL, DEMUX, DEMUXI, DFORW, DFORWTO, DIV, DIVI, DSEND, snaphdr::entry_point, EQ, EQI, EXCV, EXIT, FLOATV, FORW, FORWTO, free_list(), GEQ, GEQI, GET_INT, GET_TAG, GETDST, GETLD, GETRB, GETSPT, GETSRC, GT, GTI, packet_t::hdr, HERE, HOP, INTV, ISHERE, ISTUP, ISX, JI, LEN, LEQ, LEQI, LNOT, LSHL, LSHLI, LT, LTI, MAX_VINT, memalloc, MIN_VINT, MKTUP, MOD, MODI, MULT, MULTI, NEG, NEQ, NEQI, newho(), newtup(), noop, NOT, NTH, OPCODE_T, OR, ORI, PAJ, packet_t::pc, POP, POPI, PRINT, PULL, PULLSTACK, PUSH, RAISEX, refine_op(), register_label_def(), register_label_use(), ROUTE, RSHA, RSHAI, RSHL, RSHLI, RTDEV, buffer_t::s, SEND, SET_ADDR, SET_FLOAT, SET_INT, SET_LIT, SET_OFFS, SET_OP, SET_TAG, SETXH, SNET, SNETI, packet_t::sp, packet_t::stack_max, STACKCOUNT, STACKEMPTY, STORE, STRV, SUB, SUBI, SVCV, TPAJ, TUPLEV, value_addr, value_exc, value_float, value_int, value_t, YY_DECL_VARIABLES, YYABORT, YYACCEPT, YYDPRINTF, YYEMPTY, YYEOF, yyerror(), YYFINAL, YYFLAG, YYINITDEPTH, YYLAST, YYLEX, YYLLOC_DEFAULT, yylval, YYMAXDEPTH, YYNTBASE, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL, YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE, YYSTACK_RELOCATE, YYSTYPE, YYTERROR, and YYTRANSLATE.


Variable Documentation

int noop
 

Definition at line 154 of file snapparse.c.

Referenced by main(), and yyparse().

packet_t* p
 

Definition at line 128 of file snapparse.c.

uint32 value_addr
 

Definition at line 149 of file snapparse.c.

Referenced by yyparse().

int value_exc
 

Definition at line 151 of file snapparse.c.

Referenced by yyparse().

float32 value_float
 

Definition at line 152 of file snapparse.c.

Referenced by yyparse().

int value_int
 

Definition at line 148 of file snapparse.c.

Referenced by yyparse().

buffer_t value_str
 

Definition at line 150 of file snapparse.c.