modules/rpsl/aggr_mtd.y

/* [<][>]
[^][v][top][bottom][index][help] */

FUNCTIONS

This source file includes following functions.
  1. yyparse
  2. aggr_mtderror

   1 %{
   2 /*
   3   filename: aggr_mtd.y
   4 
   5   description:
   6     Defines the grammar for an RPSL aggr-mtd attribute.  It was mostly
   7     stolen from the IRRToolSet, simplified by removing ability to parse
   8     things defined by a dictionary (we use XML for extensibility rather
   9     than a dictionary).
  10 
  11   notes:
  12     Defines tokens for the associated lexer, aggr_mtd.l.
  13 */
  14 %}
  15 
  16 %token KEYW_INBOUND KEYW_OUTBOUND
  17 %token OP_OR OP_AND
  18 %token KEYW_EXCEPT
  19 %token TKN_ASNO TKN_ASNAME
  20 
  21 %{
  22 #include <stdio.h>
  23 #include <stdarg.h>
  24 #include <stdlib.h>
  25 
  26 int yyerror(const char *s);
  27 
  28 %}
  29 
  30 %%
     /* [<][>][^][v][top][bottom][index][help] */
  31 
  32 aggr_mtd: KEYW_INBOUND
  33 | KEYW_OUTBOUND opt_as_expr
  34 ;
  35 
  36 opt_as_expr:
  37 | as_expr
  38 ;
  39 
  40 as_expr: as_expr OP_OR as_expr_term
  41 | as_expr_term
  42 ;
  43 
  44 as_expr_term: as_expr_term OP_AND as_expr_factor 
  45 | as_expr_term KEYW_EXCEPT as_expr_factor 
  46 | as_expr_factor
  47 ;
  48 
  49 as_expr_factor: '(' as_expr ')' 
  50 | as_expr_operand
  51 ;
  52 
  53 as_expr_operand: TKN_ASNO
  54 | TKN_ASNAME
  55 ;
  56 
  57 %%
  58 
  59 #undef aggr_mtderror
  60 #undef yyerror
  61 
  62 int
  63 aggr_mtderror (const char *s)
     /* [<][>][^][v][top][bottom][index][help] */
  64 {
  65     yyerror(s);
  66     return 0;
  67 }
  68 
  69 

/* [<][>][^][v][top][bottom][index][help] */