1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-08-24 17:49:28 +03:00

feature #1428: Add UNAME, GID, GNAME to the set of predefined variables to CONTEXT attribute

This commit is contained in:
Ruben S. Montero
2012-08-28 16:52:03 +02:00
parent 98048f42f7
commit 03f15b6498
11 changed files with 500 additions and 484 deletions

View File

@ -150,6 +150,16 @@ public:
return gid;
};
const string& get_uname() const
{
return uname;
};
const string& get_gname() const
{
return gname;
};
/**
* Changes the object's owner
* @param _uid New User ID

View File

@ -28,7 +28,7 @@
#define FLEX_SCANNER
#define YY_FLEX_MAJOR_VERSION 2
#define YY_FLEX_MINOR_VERSION 5
#define YY_FLEX_SUBMINOR_VERSION 35
#define YY_FLEX_SUBMINOR_VERSION 37
#if YY_FLEX_SUBMINOR_VERSION > 0
#define FLEX_BETA
#endif
@ -73,7 +73,6 @@ typedef int flex_int32_t;
typedef unsigned char flex_uint8_t;
typedef unsigned short int flex_uint16_t;
typedef unsigned int flex_uint32_t;
#endif /* ! C99 */
/* Limits of integral types. */
#ifndef INT8_MIN
@ -104,6 +103,8 @@ typedef unsigned int flex_uint32_t;
#define UINT32_MAX (4294967295U)
#endif
#endif /* ! C99 */
#endif /* ! FLEXINT_H */
#ifdef __cplusplus
@ -172,7 +173,12 @@ typedef unsigned int flex_uint32_t;
typedef struct yy_buffer_state *YY_BUFFER_STATE;
#endif
extern int template_leng;
#ifndef YY_TYPEDEF_YY_SIZE_T
#define YY_TYPEDEF_YY_SIZE_T
typedef size_t yy_size_t;
#endif
extern yy_size_t template_leng;
extern FILE *template_in, *template_out;
@ -211,11 +217,6 @@ extern FILE *template_in, *template_out;
#define unput(c) yyunput( c, (yytext_ptr) )
#ifndef YY_TYPEDEF_YY_SIZE_T
#define YY_TYPEDEF_YY_SIZE_T
typedef size_t yy_size_t;
#endif
#ifndef YY_STRUCT_YY_BUFFER_STATE
#define YY_STRUCT_YY_BUFFER_STATE
struct yy_buffer_state
@ -233,7 +234,7 @@ struct yy_buffer_state
/* Number of characters read into yy_ch_buf, not including EOB
* characters.
*/
int yy_n_chars;
yy_size_t yy_n_chars;
/* Whether we "own" the buffer - i.e., we know we created it,
* and can realloc() it to grow it, and should free() it to
@ -303,8 +304,8 @@ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
/* yy_hold_char holds the character lost when template_text is formed. */
static char yy_hold_char;
static int yy_n_chars; /* number of characters read into yy_ch_buf */
int template_leng;
static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */
yy_size_t template_leng;
/* Points to current character in buffer. */
static char *yy_c_buf_p = (char *) 0;
@ -332,7 +333,7 @@ static void template__init_buffer (YY_BUFFER_STATE b,FILE *file );
YY_BUFFER_STATE template__scan_buffer (char *base,yy_size_t size );
YY_BUFFER_STATE template__scan_string (yyconst char *yy_str );
YY_BUFFER_STATE template__scan_bytes (yyconst char *bytes,int len );
YY_BUFFER_STATE template__scan_bytes (yyconst char *bytes,yy_size_t len );
void *template_alloc (yy_size_t );
void *template_realloc (void *,yy_size_t );
@ -553,7 +554,7 @@ char *template_text;
llocp->first_column = llocp->last_column; \
llocp->last_column += template_leng;
#line 557 "template_parser.c"
#line 558 "template_parser.c"
#define INITIAL 0
#define VALUE 1
@ -593,7 +594,7 @@ FILE *template_get_out (void );
void template_set_out (FILE * out_str );
int template_get_leng (void );
yy_size_t template_get_leng (void );
char *template_get_text (void );
@ -652,7 +653,7 @@ static int input (void );
if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
{ \
int c = '*'; \
unsigned n; \
size_t n; \
for ( n = 0; n < max_size && \
(c = getc( template_in )) != EOF && c != '\n'; ++n ) \
buf[n] = (char) c; \
@ -740,7 +741,7 @@ YY_DECL
/* ------------------------------------------------------------------------- */
/* Comments (lines with an starting #), and empty lines */
/* ------------------------------------------------------------------------- */
#line 744 "template_parser.c"
#line 745 "template_parser.c"
if ( !(yy_init) )
{
@ -917,7 +918,7 @@ YY_RULE_SETUP
#line 89 "template_parser.l"
ECHO;
YY_BREAK
#line 921 "template_parser.c"
#line 922 "template_parser.c"
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(VALUE):
yyterminate();
@ -1104,21 +1105,21 @@ static int yy_get_next_buffer (void)
else
{
int num_to_read =
yy_size_t num_to_read =
YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
while ( num_to_read <= 0 )
{ /* Not enough room in the buffer - grow it. */
/* just a shorter name for the current buffer */
YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
int yy_c_buf_p_offset =
(int) ((yy_c_buf_p) - b->yy_ch_buf);
if ( b->yy_is_our_buffer )
{
int new_size = b->yy_buf_size * 2;
yy_size_t new_size = b->yy_buf_size * 2;
if ( new_size <= 0 )
b->yy_buf_size += b->yy_buf_size / 8;
@ -1149,7 +1150,7 @@ static int yy_get_next_buffer (void)
/* Read in more data. */
YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
(yy_n_chars), (size_t) num_to_read );
(yy_n_chars), num_to_read );
YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
}
@ -1244,7 +1245,7 @@ static int yy_get_next_buffer (void)
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
yy_is_jam = (yy_current_state == 43);
return yy_is_jam ? 0 : yy_current_state;
return yy_is_jam ? 0 : yy_current_state;
}
#ifndef YY_NO_INPUT
@ -1271,7 +1272,7 @@ static int yy_get_next_buffer (void)
else
{ /* need more input */
int offset = (yy_c_buf_p) - (yytext_ptr);
yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
++(yy_c_buf_p);
switch ( yy_get_next_buffer( ) )
@ -1436,10 +1437,6 @@ static void template__load_buffer_state (void)
template_free((void *) b );
}
#ifndef __cplusplus
extern int isatty (int );
#endif /* __cplusplus */
/* Initializes or reinitializes a buffer.
* This function is sometimes called more than once on the same buffer,
* such as during a template_restart() or at EOF.
@ -1552,7 +1549,7 @@ void template_pop_buffer_state (void)
*/
static void template_ensure_buffer_stack (void)
{
int num_to_alloc;
yy_size_t num_to_alloc;
if (!(yy_buffer_stack)) {
@ -1644,12 +1641,12 @@ YY_BUFFER_STATE template__scan_string (yyconst char * yystr )
/** Setup the input buffer state to scan the given bytes. The next call to template_lex() will
* scan from a @e copy of @a bytes.
* @param bytes the byte buffer to scan
* @param len the number of bytes in the buffer pointed to by @a bytes.
* @param yybytes the byte buffer to scan
* @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
*
* @return the newly allocated buffer state object.
*/
YY_BUFFER_STATE template__scan_bytes (yyconst char * yybytes, int _yybytes_len )
YY_BUFFER_STATE template__scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len )
{
YY_BUFFER_STATE b;
char *buf;
@ -1736,7 +1733,7 @@ FILE *template_get_out (void)
/** Get the length of the current token.
*
*/
int template_get_leng (void)
yy_size_t template_get_leng (void)
{
return template_leng;
}

View File

@ -28,7 +28,7 @@
#define FLEX_SCANNER
#define YY_FLEX_MAJOR_VERSION 2
#define YY_FLEX_MINOR_VERSION 5
#define YY_FLEX_SUBMINOR_VERSION 35
#define YY_FLEX_SUBMINOR_VERSION 37
#if YY_FLEX_SUBMINOR_VERSION > 0
#define FLEX_BETA
#endif
@ -73,7 +73,6 @@ typedef int flex_int32_t;
typedef unsigned char flex_uint8_t;
typedef unsigned short int flex_uint16_t;
typedef unsigned int flex_uint32_t;
#endif /* ! C99 */
/* Limits of integral types. */
#ifndef INT8_MIN
@ -104,6 +103,8 @@ typedef unsigned int flex_uint32_t;
#define UINT32_MAX (4294967295U)
#endif
#endif /* ! C99 */
#endif /* ! FLEXINT_H */
#ifdef __cplusplus
@ -172,7 +173,12 @@ typedef unsigned int flex_uint32_t;
typedef struct yy_buffer_state *YY_BUFFER_STATE;
#endif
extern int vm_var_leng;
#ifndef YY_TYPEDEF_YY_SIZE_T
#define YY_TYPEDEF_YY_SIZE_T
typedef size_t yy_size_t;
#endif
extern yy_size_t vm_var_leng;
extern FILE *vm_var_in, *vm_var_out;
@ -211,11 +217,6 @@ extern FILE *vm_var_in, *vm_var_out;
#define unput(c) yyunput( c, (yytext_ptr) )
#ifndef YY_TYPEDEF_YY_SIZE_T
#define YY_TYPEDEF_YY_SIZE_T
typedef size_t yy_size_t;
#endif
#ifndef YY_STRUCT_YY_BUFFER_STATE
#define YY_STRUCT_YY_BUFFER_STATE
struct yy_buffer_state
@ -233,7 +234,7 @@ struct yy_buffer_state
/* Number of characters read into yy_ch_buf, not including EOB
* characters.
*/
int yy_n_chars;
yy_size_t yy_n_chars;
/* Whether we "own" the buffer - i.e., we know we created it,
* and can realloc() it to grow it, and should free() it to
@ -303,8 +304,8 @@ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
/* yy_hold_char holds the character lost when vm_var_text is formed. */
static char yy_hold_char;
static int yy_n_chars; /* number of characters read into yy_ch_buf */
int vm_var_leng;
static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */
yy_size_t vm_var_leng;
/* Points to current character in buffer. */
static char *yy_c_buf_p = (char *) 0;
@ -332,7 +333,7 @@ static void vm_var__init_buffer (YY_BUFFER_STATE b,FILE *file );
YY_BUFFER_STATE vm_var__scan_buffer (char *base,yy_size_t size );
YY_BUFFER_STATE vm_var__scan_string (yyconst char *yy_str );
YY_BUFFER_STATE vm_var__scan_bytes (yyconst char *bytes,int len );
YY_BUFFER_STATE vm_var__scan_bytes (yyconst char *bytes,yy_size_t len );
void *vm_var_alloc (yy_size_t );
void *vm_var_realloc (void *,yy_size_t );
@ -537,7 +538,7 @@ char *vm_var_text;
llocp->last_column += vm_var_leng;
#line 541 "vm_var_parser.c"
#line 542 "vm_var_parser.c"
#define INITIAL 0
#define VAR 1
@ -578,7 +579,7 @@ FILE *vm_var_get_out (void );
void vm_var_set_out (FILE * out_str );
int vm_var_get_leng (void );
yy_size_t vm_var_get_leng (void );
char *vm_var_get_text (void );
@ -637,7 +638,7 @@ static int input (void );
if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
{ \
int c = '*'; \
unsigned n; \
size_t n; \
for ( n = 0; n < max_size && \
(c = getc( vm_var_in )) != EOF && c != '\n'; ++n ) \
buf[n] = (char) c; \
@ -730,7 +731,7 @@ YY_DECL
/* $NUM.CONTEXT_VARIABLE */
/* ------------------------------------------------------------------------- */
#line 734 "vm_var_parser.c"
#line 735 "vm_var_parser.c"
if ( !(yy_init) )
{
@ -906,7 +907,7 @@ YY_RULE_SETUP
#line 92 "vm_var_parser.l"
ECHO;
YY_BREAK
#line 910 "vm_var_parser.c"
#line 911 "vm_var_parser.c"
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(VALUE):
yyterminate();
@ -1093,21 +1094,21 @@ static int yy_get_next_buffer (void)
else
{
int num_to_read =
yy_size_t num_to_read =
YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
while ( num_to_read <= 0 )
{ /* Not enough room in the buffer - grow it. */
/* just a shorter name for the current buffer */
YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
int yy_c_buf_p_offset =
(int) ((yy_c_buf_p) - b->yy_ch_buf);
if ( b->yy_is_our_buffer )
{
int new_size = b->yy_buf_size * 2;
yy_size_t new_size = b->yy_buf_size * 2;
if ( new_size <= 0 )
b->yy_buf_size += b->yy_buf_size / 8;
@ -1138,7 +1139,7 @@ static int yy_get_next_buffer (void)
/* Read in more data. */
YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
(yy_n_chars), (size_t) num_to_read );
(yy_n_chars), num_to_read );
YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
}
@ -1233,7 +1234,7 @@ static int yy_get_next_buffer (void)
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
yy_is_jam = (yy_current_state == 33);
return yy_is_jam ? 0 : yy_current_state;
return yy_is_jam ? 0 : yy_current_state;
}
#ifndef YY_NO_INPUT
@ -1260,7 +1261,7 @@ static int yy_get_next_buffer (void)
else
{ /* need more input */
int offset = (yy_c_buf_p) - (yytext_ptr);
yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
++(yy_c_buf_p);
switch ( yy_get_next_buffer( ) )
@ -1425,10 +1426,6 @@ static void vm_var__load_buffer_state (void)
vm_var_free((void *) b );
}
#ifndef __cplusplus
extern int isatty (int );
#endif /* __cplusplus */
/* Initializes or reinitializes a buffer.
* This function is sometimes called more than once on the same buffer,
* such as during a vm_var_restart() or at EOF.
@ -1541,7 +1538,7 @@ void vm_var_pop_buffer_state (void)
*/
static void vm_var_ensure_buffer_stack (void)
{
int num_to_alloc;
yy_size_t num_to_alloc;
if (!(yy_buffer_stack)) {
@ -1633,12 +1630,12 @@ YY_BUFFER_STATE vm_var__scan_string (yyconst char * yystr )
/** Setup the input buffer state to scan the given bytes. The next call to vm_var_lex() will
* scan from a @e copy of @a bytes.
* @param bytes the byte buffer to scan
* @param len the number of bytes in the buffer pointed to by @a bytes.
* @param yybytes the byte buffer to scan
* @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
*
* @return the newly allocated buffer state object.
*/
YY_BUFFER_STATE vm_var__scan_bytes (yyconst char * yybytes, int _yybytes_len )
YY_BUFFER_STATE vm_var__scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len )
{
YY_BUFFER_STATE b;
char *buf;
@ -1725,7 +1722,7 @@ FILE *vm_var_get_out (void)
/** Get the length of the current token.
*
*/
int vm_var_get_leng (void)
yy_size_t vm_var_get_leng (void)
{
return vm_var_leng;
}

View File

@ -1,8 +1,8 @@
/* A Bison parser, made by GNU Bison 2.5. */
/* A Bison parser, made by GNU Bison 2.6.2. */
/* Bison implementation for Yacc-like parsers in C
Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -44,7 +44,7 @@
#define YYBISON 1
/* Bison version. */
#define YYBISON_VERSION "2.5"
#define YYBISON_VERSION "2.6.2"
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
@ -58,8 +58,6 @@
/* Pull parsers. */
#define YYPULL 1
/* Using locations. */
#define YYLSP_NEEDED 1
/* Substitute the variable and function names. */
#define yyparse vm_var__parse
@ -72,8 +70,7 @@
#define yylloc vm_var__lloc
/* Copy the first part of user declarations. */
/* Line 268 of yacc.c */
/* Line 336 of yacc.c */
#line 17 "vm_var_syntax.y"
#include <iostream>
@ -350,6 +347,18 @@ void insert_single(VirtualMachine * vm,
{
parsed << vm->get_uid();
}
else if (name == "UNAME")
{
parsed << vm->get_uname();
}
else if (name == "GID")
{
parsed << vm->get_gid();
}
else if (name == "GNAME")
{
parsed << vm->get_gname();
}
else
{
vm->get_template_attribute(name.c_str(),value);
@ -454,14 +463,16 @@ void insert_vector(VirtualMachine * vm,
/* -------------------------------------------------------------------------- */
/* Line 336 of yacc.c */
#line 468 "vm_var_syntax.cc"
/* Line 268 of yacc.c */
#line 460 "vm_var_syntax.cc"
/* Enabling traces. */
#ifndef YYDEBUG
# define YYDEBUG 0
#endif
# ifndef YY_NULL
# if defined __cplusplus && 201103L <= __cplusplus
# define YY_NULL nullptr
# else
# define YY_NULL 0
# endif
# endif
/* Enabling verbose error messages. */
#ifdef YYERROR_VERBOSE
@ -471,11 +482,17 @@ void insert_vector(VirtualMachine * vm,
# define YYERROR_VERBOSE 0
#endif
/* Enabling the token table. */
#ifndef YYTOKEN_TABLE
# define YYTOKEN_TABLE 0
/* In a future release of Bison, this section will be replaced
by #include "vm_var_syntax.hh". */
#ifndef VM_VAR_VM_VAR_SYNTAX_HH
# define VM_VAR_VM_VAR_SYNTAX_HH
/* Enabling traces. */
#ifndef YYDEBUG
# define YYDEBUG 0
#endif
#if YYDEBUG
extern int vm_var__debug;
#endif
/* Tokens. */
#ifndef YYTOKENTYPE
@ -496,22 +513,19 @@ void insert_vector(VirtualMachine * vm,
#endif
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
{
/* Line 293 of yacc.c */
#line 404 "vm_var_syntax.y"
/* Line 350 of yacc.c */
#line 416 "vm_var_syntax.y"
char * val_str;
int val_int;
char val_char;
/* Line 293 of yacc.c */
#line 515 "vm_var_syntax.cc"
/* Line 350 of yacc.c */
#line 529 "vm_var_syntax.cc"
} YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
@ -532,11 +546,26 @@ typedef struct YYLTYPE
#endif
#ifdef YYPARSE_PARAM
#if defined __STDC__ || defined __cplusplus
int vm_var__parse (void *YYPARSE_PARAM);
#else
int vm_var__parse ();
#endif
#else /* ! YYPARSE_PARAM */
#if defined __STDC__ || defined __cplusplus
int vm_var__parse (mem_collector * mc, VirtualMachine * vm, ostringstream * parsed, char ** errmsg);
#else
int vm_var__parse ();
#endif
#endif /* ! YYPARSE_PARAM */
#endif /* !VM_VAR_VM_VAR_SYNTAX_HH */
/* Copy the second part of user declarations. */
/* Line 343 of yacc.c */
#line 540 "vm_var_syntax.cc"
/* Line 353 of yacc.c */
#line 569 "vm_var_syntax.cc"
#ifdef short
# undef short
@ -642,6 +671,7 @@ YYID (yyi)
# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
/* Use EXIT_SUCCESS as a witness for stdlib.h. */
# ifndef EXIT_SUCCESS
# define EXIT_SUCCESS 0
# endif
@ -735,20 +765,20 @@ union yyalloc
#endif
#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
/* Copy COUNT objects from FROM to TO. The source and destination do
/* Copy COUNT objects from SRC to DST. The source and destination do
not overlap. */
# ifndef YYCOPY
# if defined __GNUC__ && 1 < __GNUC__
# define YYCOPY(To, From, Count) \
__builtin_memcpy (To, From, (Count) * sizeof (*(From)))
# define YYCOPY(Dst, Src, Count) \
__builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
# else
# define YYCOPY(To, From, Count) \
do \
{ \
YYSIZE_T yyi; \
for (yyi = 0; yyi < (Count); yyi++) \
(To)[yyi] = (From)[yyi]; \
} \
# define YYCOPY(Dst, Src, Count) \
do \
{ \
YYSIZE_T yyi; \
for (yyi = 0; yyi < (Count); yyi++) \
(Dst)[yyi] = (Src)[yyi]; \
} \
while (YYID (0))
# endif
# endif
@ -826,18 +856,18 @@ static const yytype_int8 yyrhs[] =
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
0, 428, 428, 429, 432, 436, 449, 464
0, 440, 440, 441, 444, 448, 461, 476
};
#endif
#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
#if YYDEBUG || YYERROR_VERBOSE || 0
/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
First, the terminals, then, starting at YYNTOKENS, nonterminals. */
static const char *const yytname[] =
{
"$end", "error", "$undefined", "EQUAL", "COMMA", "OBRACKET", "CBRACKET",
"EOA", "STRING", "VARIABLE", "RSTRING", "INTEGER", "$accept",
"vm_string", "vm_variable", 0
"vm_string", "vm_variable", YY_NULL
};
#endif
@ -950,17 +980,18 @@ static const yytype_uint8 yystos[] =
#define YYRECOVERING() (!!yyerrstatus)
#define YYBACKUP(Token, Value) \
do \
if (yychar == YYEMPTY && yylen == 1) \
{ \
yychar = (Token); \
yylval = (Value); \
YYPOPSTACK (1); \
goto yybackup; \
} \
else \
{ \
#define YYBACKUP(Token, Value) \
do \
if (yychar == YYEMPTY) \
{ \
yychar = (Token); \
yylval = (Value); \
YYPOPSTACK (yylen); \
yystate = *yyssp; \
goto yybackup; \
} \
else \
{ \
yyerror (&yylloc, mc, vm, parsed, errmsg, YY_("syntax error: cannot back up")); \
YYERROR; \
} \
@ -970,32 +1001,33 @@ while (YYID (0))
#define YYTERROR 1
#define YYERRCODE 256
/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
If N is 0, then set CURRENT to the empty location which ends
the previous symbol: RHS[0] (always defined). */
#define YYRHSLOC(Rhs, K) ((Rhs)[K])
#ifndef YYLLOC_DEFAULT
# define YYLLOC_DEFAULT(Current, Rhs, N) \
do \
if (YYID (N)) \
{ \
(Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
(Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
(Current).last_line = YYRHSLOC (Rhs, N).last_line; \
(Current).last_column = YYRHSLOC (Rhs, N).last_column; \
} \
else \
{ \
(Current).first_line = (Current).last_line = \
YYRHSLOC (Rhs, 0).last_line; \
(Current).first_column = (Current).last_column = \
YYRHSLOC (Rhs, 0).last_column; \
} \
# define YYLLOC_DEFAULT(Current, Rhs, N) \
do \
if (YYID (N)) \
{ \
(Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
(Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
(Current).last_line = YYRHSLOC (Rhs, N).last_line; \
(Current).last_column = YYRHSLOC (Rhs, N).last_column; \
} \
else \
{ \
(Current).first_line = (Current).last_line = \
YYRHSLOC (Rhs, 0).last_line; \
(Current).first_column = (Current).last_column = \
YYRHSLOC (Rhs, 0).last_column; \
} \
while (YYID (0))
#endif
#define YYRHSLOC(Rhs, K) ((Rhs)[K])
/* YY_LOCATION_PRINT -- Print the location on the stream.
This macro was not mandated originally: define only if we know
@ -1069,6 +1101,8 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, mc, vm, parsed,
char ** errmsg;
#endif
{
FILE *yyo = yyoutput;
YYUSE (yyo);
if (!yyvaluep)
return;
YYUSE (yylocationp);
@ -1337,12 +1371,12 @@ static int
yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
yytype_int16 *yyssp, int yytoken)
{
YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
YYSIZE_T yysize = yysize0;
YYSIZE_T yysize1;
enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
/* Internationalized format string. */
const char *yyformat = 0;
const char *yyformat = YY_NULL;
/* Arguments of yyformat. */
char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
/* Number of reported tokens (one for the "unexpected", one per
@ -1402,7 +1436,7 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
break;
}
yyarg[yycount++] = yytname[yyx];
yysize1 = yysize + yytnamerr (0, yytname[yyx]);
yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
if (! (yysize <= yysize1
&& yysize1 <= YYSTACK_ALLOC_MAXIMUM))
return 2;
@ -1504,20 +1538,6 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, mc, vm, parsed, errmsg)
}
/* Prevent warnings from -Wmissing-prototypes. */
#ifdef YYPARSE_PARAM
#if defined __STDC__ || defined __cplusplus
int yyparse (void *YYPARSE_PARAM);
#else
int yyparse ();
#endif
#else /* ! YYPARSE_PARAM */
#if defined __STDC__ || defined __cplusplus
int yyparse (mem_collector * mc, VirtualMachine * vm, ostringstream * parsed, char ** errmsg);
#else
int yyparse ();
#endif
#endif /* ! YYPARSE_PARAM */
/*----------.
@ -1570,7 +1590,7 @@ YYLTYPE yylloc;
`yyvs': related to semantic values.
`yyls': related to locations.
Refer to the stacks thru separate pointers, to allow yyoverflow
Refer to the stacks through separate pointers, to allow yyoverflow
to reallocate them elsewhere. */
/* The state stack. */
@ -1641,7 +1661,6 @@ YYLTYPE yylloc;
yylloc.first_line = yylloc.last_line = 1;
yylloc.first_column = yylloc.last_column = 1;
#endif
goto yysetstate;
/*------------------------------------------------------------.
@ -1825,18 +1844,16 @@ yyreduce:
switch (yyn)
{
case 4:
/* Line 1806 of yacc.c */
#line 433 "vm_var_syntax.y"
/* Line 1787 of yacc.c */
#line 445 "vm_var_syntax.y"
{
(*parsed) << (yyvsp[(1) - (1)].val_str);
}
break;
case 5:
/* Line 1806 of yacc.c */
#line 437 "vm_var_syntax.y"
/* Line 1787 of yacc.c */
#line 449 "vm_var_syntax.y"
{
string name((yyvsp[(1) - (2)].val_str));
@ -1852,9 +1869,8 @@ yyreduce:
break;
case 6:
/* Line 1806 of yacc.c */
#line 450 "vm_var_syntax.y"
/* Line 1787 of yacc.c */
#line 462 "vm_var_syntax.y"
{
string name((yyvsp[(1) - (5)].val_str));
string vname((yyvsp[(3) - (5)].val_str));
@ -1872,9 +1888,8 @@ yyreduce:
break;
case 7:
/* Line 1806 of yacc.c */
#line 465 "vm_var_syntax.y"
/* Line 1787 of yacc.c */
#line 477 "vm_var_syntax.y"
{
string name((yyvsp[(1) - (9)].val_str));
string vname((yyvsp[(3) - (9)].val_str));
@ -1895,9 +1910,8 @@ yyreduce:
break;
/* Line 1806 of yacc.c */
#line 1901 "vm_var_syntax.cc"
/* Line 1787 of yacc.c */
#line 1915 "vm_var_syntax.cc"
default: break;
}
/* User semantic actions sometimes alter yychar, and that requires
@ -2091,7 +2105,7 @@ yyabortlab:
yyresult = 1;
goto yyreturn;
#if !defined(yyoverflow) || YYERROR_VERBOSE
#if !defined yyoverflow || YYERROR_VERBOSE
/*-------------------------------------------------.
| yyexhaustedlab -- memory exhaustion comes here. |
`-------------------------------------------------*/
@ -2133,9 +2147,8 @@ yyreturn:
}
/* Line 2067 of yacc.c */
#line 483 "vm_var_syntax.y"
/* Line 2048 of yacc.c */
#line 495 "vm_var_syntax.y"
extern "C" void vm_var__error(
@ -2163,4 +2176,3 @@ extern "C" void vm_var__error(
llocp->last_column);
}
}

View File

@ -1,8 +1,8 @@
/* A Bison parser, made by GNU Bison 2.5. */
/* A Bison parser, made by GNU Bison 2.6.2. */
/* Bison interface for Yacc-like parsers in C
Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -30,6 +30,15 @@
This special exception was added by the Free Software Foundation in
version 2.2 of Bison. */
#ifndef VM_VAR_VM_VAR_SYNTAX_HH
# define VM_VAR_VM_VAR_SYNTAX_HH
/* Enabling traces. */
#ifndef YYDEBUG
# define YYDEBUG 0
#endif
#if YYDEBUG
extern int vm_var__debug;
#endif
/* Tokens. */
#ifndef YYTOKENTYPE
@ -50,30 +59,25 @@
#endif
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
{
/* Line 2068 of yacc.c */
#line 404 "vm_var_syntax.y"
/* Line 2049 of yacc.c */
#line 416 "vm_var_syntax.y"
char * val_str;
int val_int;
char val_char;
/* Line 2068 of yacc.c */
#line 69 "vm_var_syntax.hh"
/* Line 2049 of yacc.c */
#line 75 "vm_var_syntax.hh"
} YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
#endif
#if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
typedef struct YYLTYPE
{
@ -87,5 +91,4 @@ typedef struct YYLTYPE
# define YYLTYPE_IS_TRIVIAL 1
#endif
#endif /* !VM_VAR_VM_VAR_SYNTAX_HH */

View File

@ -289,6 +289,18 @@ void insert_single(VirtualMachine * vm,
{
parsed << vm->get_uid();
}
else if (name == "UNAME")
{
parsed << vm->get_uname();
}
else if (name == "GID")
{
parsed << vm->get_gid();
}
else if (name == "GNAME")
{
parsed << vm->get_gname();
}
else
{
vm->get_template_attribute(name.c_str(),value);

View File

@ -1,8 +1,8 @@
/* A Bison parser, made by GNU Bison 2.5. */
/* A Bison parser, made by GNU Bison 2.6.2. */
/* Bison implementation for Yacc-like parsers in C
Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -44,7 +44,7 @@
#define YYBISON 1
/* Bison version. */
#define YYBISON_VERSION "2.5"
#define YYBISON_VERSION "2.6.2"
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
@ -58,8 +58,6 @@
/* Pull parsers. */
#define YYPULL 1
/* Using locations. */
#define YYLSP_NEEDED 1
/* Substitute the variable and function names. */
#define yyparse expr_arith__parse
@ -72,8 +70,7 @@
#define yylloc expr_arith__lloc
/* Copy the first part of user declarations. */
/* Line 268 of yacc.c */
/* Line 336 of yacc.c */
#line 17 "expr_arith.y"
#include <iostream>
@ -128,14 +125,16 @@ extern "C"
}
/* Line 336 of yacc.c */
#line 130 "expr_arith.cc"
/* Line 268 of yacc.c */
#line 134 "expr_arith.cc"
/* Enabling traces. */
#ifndef YYDEBUG
# define YYDEBUG 0
#endif
# ifndef YY_NULL
# if defined __cplusplus && 201103L <= __cplusplus
# define YY_NULL nullptr
# else
# define YY_NULL 0
# endif
# endif
/* Enabling verbose error messages. */
#ifdef YYERROR_VERBOSE
@ -145,11 +144,17 @@ extern "C"
# define YYERROR_VERBOSE 0
#endif
/* Enabling the token table. */
#ifndef YYTOKEN_TABLE
# define YYTOKEN_TABLE 0
/* In a future release of Bison, this section will be replaced
by #include "expr_arith.hh". */
#ifndef EXPR_ARITH_EXPR_ARITH_HH
# define EXPR_ARITH_EXPR_ARITH_HH
/* Enabling traces. */
#ifndef YYDEBUG
# define YYDEBUG 0
#endif
#if YYDEBUG
extern int expr_arith__debug;
#endif
/* Tokens. */
#ifndef YYTOKENTYPE
@ -164,12 +169,10 @@ extern "C"
#endif
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
{
/* Line 293 of yacc.c */
/* Line 350 of yacc.c */
#line 78 "expr_arith.y"
char * val_str;
@ -177,9 +180,8 @@ typedef union YYSTYPE
float val_float;
/* Line 293 of yacc.c */
#line 183 "expr_arith.cc"
/* Line 350 of yacc.c */
#line 185 "expr_arith.cc"
} YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
@ -200,11 +202,26 @@ typedef struct YYLTYPE
#endif
#ifdef YYPARSE_PARAM
#if defined __STDC__ || defined __cplusplus
int expr_arith__parse (void *YYPARSE_PARAM);
#else
int expr_arith__parse ();
#endif
#else /* ! YYPARSE_PARAM */
#if defined __STDC__ || defined __cplusplus
int expr_arith__parse (mem_collector * mc, ObjectXML * oxml, int& result, char ** error_msg);
#else
int expr_arith__parse ();
#endif
#endif /* ! YYPARSE_PARAM */
#endif /* !EXPR_ARITH_EXPR_ARITH_HH */
/* Copy the second part of user declarations. */
/* Line 343 of yacc.c */
#line 208 "expr_arith.cc"
/* Line 353 of yacc.c */
#line 225 "expr_arith.cc"
#ifdef short
# undef short
@ -310,6 +327,7 @@ YYID (yyi)
# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
/* Use EXIT_SUCCESS as a witness for stdlib.h. */
# ifndef EXIT_SUCCESS
# define EXIT_SUCCESS 0
# endif
@ -403,20 +421,20 @@ union yyalloc
#endif
#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
/* Copy COUNT objects from FROM to TO. The source and destination do
/* Copy COUNT objects from SRC to DST. The source and destination do
not overlap. */
# ifndef YYCOPY
# if defined __GNUC__ && 1 < __GNUC__
# define YYCOPY(To, From, Count) \
__builtin_memcpy (To, From, (Count) * sizeof (*(From)))
# define YYCOPY(Dst, Src, Count) \
__builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
# else
# define YYCOPY(To, From, Count) \
do \
{ \
YYSIZE_T yyi; \
for (yyi = 0; yyi < (Count); yyi++) \
(To)[yyi] = (From)[yyi]; \
} \
# define YYCOPY(Dst, Src, Count) \
do \
{ \
YYSIZE_T yyi; \
for (yyi = 0; yyi < (Count); yyi++) \
(Dst)[yyi] = (Src)[yyi]; \
} \
while (YYID (0))
# endif
# endif
@ -501,13 +519,13 @@ static const yytype_uint8 yyrline[] =
};
#endif
#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
#if YYDEBUG || YYERROR_VERBOSE || 0
/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
First, the terminals, then, starting at YYNTOKENS, nonterminals. */
static const char *const yytname[] =
{
"$end", "error", "$undefined", "'+'", "'-'", "'*'", "'/'", "INTEGER",
"STRING", "FLOAT", "'('", "')'", "$accept", "stmt", "expr", 0
"STRING", "FLOAT", "'('", "')'", "$accept", "stmt", "expr", YY_NULL
};
#endif
@ -624,17 +642,18 @@ static const yytype_uint8 yystos[] =
#define YYRECOVERING() (!!yyerrstatus)
#define YYBACKUP(Token, Value) \
do \
if (yychar == YYEMPTY && yylen == 1) \
{ \
yychar = (Token); \
yylval = (Value); \
YYPOPSTACK (1); \
goto yybackup; \
} \
else \
{ \
#define YYBACKUP(Token, Value) \
do \
if (yychar == YYEMPTY) \
{ \
yychar = (Token); \
yylval = (Value); \
YYPOPSTACK (yylen); \
yystate = *yyssp; \
goto yybackup; \
} \
else \
{ \
yyerror (&yylloc, mc, oxml, result, error_msg, YY_("syntax error: cannot back up")); \
YYERROR; \
} \
@ -644,32 +663,33 @@ while (YYID (0))
#define YYTERROR 1
#define YYERRCODE 256
/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
If N is 0, then set CURRENT to the empty location which ends
the previous symbol: RHS[0] (always defined). */
#define YYRHSLOC(Rhs, K) ((Rhs)[K])
#ifndef YYLLOC_DEFAULT
# define YYLLOC_DEFAULT(Current, Rhs, N) \
do \
if (YYID (N)) \
{ \
(Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
(Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
(Current).last_line = YYRHSLOC (Rhs, N).last_line; \
(Current).last_column = YYRHSLOC (Rhs, N).last_column; \
} \
else \
{ \
(Current).first_line = (Current).last_line = \
YYRHSLOC (Rhs, 0).last_line; \
(Current).first_column = (Current).last_column = \
YYRHSLOC (Rhs, 0).last_column; \
} \
# define YYLLOC_DEFAULT(Current, Rhs, N) \
do \
if (YYID (N)) \
{ \
(Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
(Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
(Current).last_line = YYRHSLOC (Rhs, N).last_line; \
(Current).last_column = YYRHSLOC (Rhs, N).last_column; \
} \
else \
{ \
(Current).first_line = (Current).last_line = \
YYRHSLOC (Rhs, 0).last_line; \
(Current).first_column = (Current).last_column = \
YYRHSLOC (Rhs, 0).last_column; \
} \
while (YYID (0))
#endif
#define YYRHSLOC(Rhs, K) ((Rhs)[K])
/* YY_LOCATION_PRINT -- Print the location on the stream.
This macro was not mandated originally: define only if we know
@ -743,6 +763,8 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, mc, oxml, result
char ** error_msg;
#endif
{
FILE *yyo = yyoutput;
YYUSE (yyo);
if (!yyvaluep)
return;
YYUSE (yylocationp);
@ -1011,12 +1033,12 @@ static int
yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
yytype_int16 *yyssp, int yytoken)
{
YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
YYSIZE_T yysize = yysize0;
YYSIZE_T yysize1;
enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
/* Internationalized format string. */
const char *yyformat = 0;
const char *yyformat = YY_NULL;
/* Arguments of yyformat. */
char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
/* Number of reported tokens (one for the "unexpected", one per
@ -1076,7 +1098,7 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
break;
}
yyarg[yycount++] = yytname[yyx];
yysize1 = yysize + yytnamerr (0, yytname[yyx]);
yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
if (! (yysize <= yysize1
&& yysize1 <= YYSTACK_ALLOC_MAXIMUM))
return 2;
@ -1178,20 +1200,6 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, mc, oxml, result, error_msg)
}
/* Prevent warnings from -Wmissing-prototypes. */
#ifdef YYPARSE_PARAM
#if defined __STDC__ || defined __cplusplus
int yyparse (void *YYPARSE_PARAM);
#else
int yyparse ();
#endif
#else /* ! YYPARSE_PARAM */
#if defined __STDC__ || defined __cplusplus
int yyparse (mem_collector * mc, ObjectXML * oxml, int& result, char ** error_msg);
#else
int yyparse ();
#endif
#endif /* ! YYPARSE_PARAM */
/*----------.
@ -1244,7 +1252,7 @@ YYLTYPE yylloc;
`yyvs': related to semantic values.
`yyls': related to locations.
Refer to the stacks thru separate pointers, to allow yyoverflow
Refer to the stacks through separate pointers, to allow yyoverflow
to reallocate them elsewhere. */
/* The state stack. */
@ -1315,7 +1323,6 @@ YYLTYPE yylloc;
yylloc.first_line = yylloc.last_line = 1;
yylloc.first_column = yylloc.last_column = 1;
#endif
goto yysetstate;
/*------------------------------------------------------------.
@ -1499,22 +1506,19 @@ yyreduce:
switch (yyn)
{
case 2:
/* Line 1806 of yacc.c */
/* Line 1787 of yacc.c */
#line 100 "expr_arith.y"
{ result = static_cast<int>((yyvsp[(1) - (1)].val_float));}
break;
case 3:
/* Line 1806 of yacc.c */
/* Line 1787 of yacc.c */
#line 101 "expr_arith.y"
{ result = 0; }
break;
case 4:
/* Line 1806 of yacc.c */
/* Line 1787 of yacc.c */
#line 104 "expr_arith.y"
{ float val = 0.0;
@ -1544,65 +1548,56 @@ yyreduce:
break;
case 5:
/* Line 1806 of yacc.c */
/* Line 1787 of yacc.c */
#line 129 "expr_arith.y"
{ (yyval.val_float) = (yyvsp[(1) - (1)].val_float); }
break;
case 6:
/* Line 1806 of yacc.c */
/* Line 1787 of yacc.c */
#line 130 "expr_arith.y"
{ (yyval.val_float) = static_cast<float>((yyvsp[(1) - (1)].val_int)); }
break;
case 7:
/* Line 1806 of yacc.c */
/* Line 1787 of yacc.c */
#line 131 "expr_arith.y"
{ (yyval.val_float) = (yyvsp[(1) - (3)].val_float) + (yyvsp[(3) - (3)].val_float);}
break;
case 8:
/* Line 1806 of yacc.c */
/* Line 1787 of yacc.c */
#line 132 "expr_arith.y"
{ (yyval.val_float) = (yyvsp[(1) - (3)].val_float) - (yyvsp[(3) - (3)].val_float);}
break;
case 9:
/* Line 1806 of yacc.c */
/* Line 1787 of yacc.c */
#line 133 "expr_arith.y"
{ (yyval.val_float) = (yyvsp[(1) - (3)].val_float) * (yyvsp[(3) - (3)].val_float);}
break;
case 10:
/* Line 1806 of yacc.c */
/* Line 1787 of yacc.c */
#line 134 "expr_arith.y"
{ (yyval.val_float) = (yyvsp[(1) - (3)].val_float) / (yyvsp[(3) - (3)].val_float);}
break;
case 11:
/* Line 1806 of yacc.c */
/* Line 1787 of yacc.c */
#line 135 "expr_arith.y"
{ (yyval.val_float) = - (yyvsp[(2) - (2)].val_float);}
break;
case 12:
/* Line 1806 of yacc.c */
/* Line 1787 of yacc.c */
#line 136 "expr_arith.y"
{ (yyval.val_float) = (yyvsp[(2) - (3)].val_float);}
break;
/* Line 1806 of yacc.c */
#line 1606 "expr_arith.cc"
/* Line 1787 of yacc.c */
#line 1601 "expr_arith.cc"
default: break;
}
/* User semantic actions sometimes alter yychar, and that requires
@ -1796,7 +1791,7 @@ yyabortlab:
yyresult = 1;
goto yyreturn;
#if !defined(yyoverflow) || YYERROR_VERBOSE
#if !defined yyoverflow || YYERROR_VERBOSE
/*-------------------------------------------------.
| yyexhaustedlab -- memory exhaustion comes here. |
`-------------------------------------------------*/
@ -1838,8 +1833,7 @@ yyreturn:
}
/* Line 2067 of yacc.c */
/* Line 2048 of yacc.c */
#line 139 "expr_arith.y"
@ -1868,4 +1862,3 @@ extern "C" void expr_arith__error(
llocp->last_column);
}
}

View File

@ -1,8 +1,8 @@
/* A Bison parser, made by GNU Bison 2.5. */
/* A Bison parser, made by GNU Bison 2.6.2. */
/* Bison interface for Yacc-like parsers in C
Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -30,6 +30,15 @@
This special exception was added by the Free Software Foundation in
version 2.2 of Bison. */
#ifndef EXPR_ARITH_EXPR_ARITH_HH
# define EXPR_ARITH_EXPR_ARITH_HH
/* Enabling traces. */
#ifndef YYDEBUG
# define YYDEBUG 0
#endif
#if YYDEBUG
extern int expr_arith__debug;
#endif
/* Tokens. */
#ifndef YYTOKENTYPE
@ -44,12 +53,10 @@
#endif
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
{
/* Line 2068 of yacc.c */
/* Line 2049 of yacc.c */
#line 78 "expr_arith.y"
char * val_str;
@ -57,17 +64,14 @@ typedef union YYSTYPE
float val_float;
/* Line 2068 of yacc.c */
#line 63 "expr_arith.hh"
/* Line 2049 of yacc.c */
#line 69 "expr_arith.hh"
} YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
#endif
#if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
typedef struct YYLTYPE
{
@ -81,5 +85,4 @@ typedef struct YYLTYPE
# define YYLTYPE_IS_TRIVIAL 1
#endif
#endif /* !EXPR_ARITH_EXPR_ARITH_HH */

View File

@ -1,8 +1,8 @@
/* A Bison parser, made by GNU Bison 2.5. */
/* A Bison parser, made by GNU Bison 2.6.2. */
/* Bison implementation for Yacc-like parsers in C
Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -44,7 +44,7 @@
#define YYBISON 1
/* Bison version. */
#define YYBISON_VERSION "2.5"
#define YYBISON_VERSION "2.6.2"
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
@ -58,8 +58,6 @@
/* Pull parsers. */
#define YYPULL 1
/* Using locations. */
#define YYLSP_NEEDED 1
/* Substitute the variable and function names. */
#define yyparse expr_bool__parse
@ -72,8 +70,7 @@
#define yylloc expr_bool__lloc
/* Copy the first part of user declarations. */
/* Line 268 of yacc.c */
/* Line 336 of yacc.c */
#line 17 "expr_bool.y"
#include <iostream>
@ -133,14 +130,16 @@ void get_xml_attribute(ObjectXML * oxml, const char* attr, float& val);
void get_xml_attribute(ObjectXML * oxml, const char* attr, string& val);
/* Line 336 of yacc.c */
#line 135 "expr_bool.cc"
/* Line 268 of yacc.c */
#line 139 "expr_bool.cc"
/* Enabling traces. */
#ifndef YYDEBUG
# define YYDEBUG 0
#endif
# ifndef YY_NULL
# if defined __cplusplus && 201103L <= __cplusplus
# define YY_NULL nullptr
# else
# define YY_NULL 0
# endif
# endif
/* Enabling verbose error messages. */
#ifdef YYERROR_VERBOSE
@ -150,11 +149,17 @@ void get_xml_attribute(ObjectXML * oxml, const char* attr, string& val);
# define YYERROR_VERBOSE 0
#endif
/* Enabling the token table. */
#ifndef YYTOKEN_TABLE
# define YYTOKEN_TABLE 0
/* In a future release of Bison, this section will be replaced
by #include "expr_bool.hh". */
#ifndef EXPR_BOOL_EXPR_BOOL_HH
# define EXPR_BOOL_EXPR_BOOL_HH
/* Enabling traces. */
#ifndef YYDEBUG
# define YYDEBUG 0
#endif
#if YYDEBUG
extern int expr_bool__debug;
#endif
/* Tokens. */
#ifndef YYTOKENTYPE
@ -169,12 +174,10 @@ void get_xml_attribute(ObjectXML * oxml, const char* attr, string& val);
#endif
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
{
/* Line 293 of yacc.c */
/* Line 350 of yacc.c */
#line 83 "expr_bool.y"
char * val_str;
@ -182,9 +185,8 @@ typedef union YYSTYPE
float val_float;
/* Line 293 of yacc.c */
#line 188 "expr_bool.cc"
/* Line 350 of yacc.c */
#line 190 "expr_bool.cc"
} YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
@ -205,11 +207,26 @@ typedef struct YYLTYPE
#endif
#ifdef YYPARSE_PARAM
#if defined __STDC__ || defined __cplusplus
int expr_bool__parse (void *YYPARSE_PARAM);
#else
int expr_bool__parse ();
#endif
#else /* ! YYPARSE_PARAM */
#if defined __STDC__ || defined __cplusplus
int expr_bool__parse (mem_collector * mc, ObjectXML * oxml, bool& result, char ** error_msg);
#else
int expr_bool__parse ();
#endif
#endif /* ! YYPARSE_PARAM */
#endif /* !EXPR_BOOL_EXPR_BOOL_HH */
/* Copy the second part of user declarations. */
/* Line 343 of yacc.c */
#line 213 "expr_bool.cc"
/* Line 353 of yacc.c */
#line 230 "expr_bool.cc"
#ifdef short
# undef short
@ -315,6 +332,7 @@ YYID (yyi)
# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
/* Use EXIT_SUCCESS as a witness for stdlib.h. */
# ifndef EXIT_SUCCESS
# define EXIT_SUCCESS 0
# endif
@ -408,20 +426,20 @@ union yyalloc
#endif
#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
/* Copy COUNT objects from FROM to TO. The source and destination do
/* Copy COUNT objects from SRC to DST. The source and destination do
not overlap. */
# ifndef YYCOPY
# if defined __GNUC__ && 1 < __GNUC__
# define YYCOPY(To, From, Count) \
__builtin_memcpy (To, From, (Count) * sizeof (*(From)))
# define YYCOPY(Dst, Src, Count) \
__builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
# else
# define YYCOPY(To, From, Count) \
do \
{ \
YYSIZE_T yyi; \
for (yyi = 0; yyi < (Count); yyi++) \
(To)[yyi] = (From)[yyi]; \
} \
# define YYCOPY(Dst, Src, Count) \
do \
{ \
YYSIZE_T yyi; \
for (yyi = 0; yyi < (Count); yyi++) \
(Dst)[yyi] = (Src)[yyi]; \
} \
while (YYID (0))
# endif
# endif
@ -509,13 +527,13 @@ static const yytype_uint8 yyrline[] =
};
#endif
#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
#if YYDEBUG || YYERROR_VERBOSE || 0
/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
First, the terminals, then, starting at YYNTOKENS, nonterminals. */
static const char *const yytname[] =
{
"$end", "error", "$undefined", "'!'", "'&'", "'|'", "INTEGER", "STRING",
"FLOAT", "'='", "'>'", "'<'", "'('", "')'", "$accept", "stmt", "expr", 0
"FLOAT", "'='", "'>'", "'<'", "'('", "')'", "$accept", "stmt", "expr", YY_NULL
};
#endif
@ -635,17 +653,18 @@ static const yytype_uint8 yystos[] =
#define YYRECOVERING() (!!yyerrstatus)
#define YYBACKUP(Token, Value) \
do \
if (yychar == YYEMPTY && yylen == 1) \
{ \
yychar = (Token); \
yylval = (Value); \
YYPOPSTACK (1); \
goto yybackup; \
} \
else \
{ \
#define YYBACKUP(Token, Value) \
do \
if (yychar == YYEMPTY) \
{ \
yychar = (Token); \
yylval = (Value); \
YYPOPSTACK (yylen); \
yystate = *yyssp; \
goto yybackup; \
} \
else \
{ \
yyerror (&yylloc, mc, oxml, result, error_msg, YY_("syntax error: cannot back up")); \
YYERROR; \
} \
@ -655,32 +674,33 @@ while (YYID (0))
#define YYTERROR 1
#define YYERRCODE 256
/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
If N is 0, then set CURRENT to the empty location which ends
the previous symbol: RHS[0] (always defined). */
#define YYRHSLOC(Rhs, K) ((Rhs)[K])
#ifndef YYLLOC_DEFAULT
# define YYLLOC_DEFAULT(Current, Rhs, N) \
do \
if (YYID (N)) \
{ \
(Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
(Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
(Current).last_line = YYRHSLOC (Rhs, N).last_line; \
(Current).last_column = YYRHSLOC (Rhs, N).last_column; \
} \
else \
{ \
(Current).first_line = (Current).last_line = \
YYRHSLOC (Rhs, 0).last_line; \
(Current).first_column = (Current).last_column = \
YYRHSLOC (Rhs, 0).last_column; \
} \
# define YYLLOC_DEFAULT(Current, Rhs, N) \
do \
if (YYID (N)) \
{ \
(Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
(Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
(Current).last_line = YYRHSLOC (Rhs, N).last_line; \
(Current).last_column = YYRHSLOC (Rhs, N).last_column; \
} \
else \
{ \
(Current).first_line = (Current).last_line = \
YYRHSLOC (Rhs, 0).last_line; \
(Current).first_column = (Current).last_column = \
YYRHSLOC (Rhs, 0).last_column; \
} \
while (YYID (0))
#endif
#define YYRHSLOC(Rhs, K) ((Rhs)[K])
/* YY_LOCATION_PRINT -- Print the location on the stream.
This macro was not mandated originally: define only if we know
@ -754,6 +774,8 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, mc, oxml, result
char ** error_msg;
#endif
{
FILE *yyo = yyoutput;
YYUSE (yyo);
if (!yyvaluep)
return;
YYUSE (yylocationp);
@ -1022,12 +1044,12 @@ static int
yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
yytype_int16 *yyssp, int yytoken)
{
YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
YYSIZE_T yysize = yysize0;
YYSIZE_T yysize1;
enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
/* Internationalized format string. */
const char *yyformat = 0;
const char *yyformat = YY_NULL;
/* Arguments of yyformat. */
char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
/* Number of reported tokens (one for the "unexpected", one per
@ -1087,7 +1109,7 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
break;
}
yyarg[yycount++] = yytname[yyx];
yysize1 = yysize + yytnamerr (0, yytname[yyx]);
yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
if (! (yysize <= yysize1
&& yysize1 <= YYSTACK_ALLOC_MAXIMUM))
return 2;
@ -1189,20 +1211,6 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, mc, oxml, result, error_msg)
}
/* Prevent warnings from -Wmissing-prototypes. */
#ifdef YYPARSE_PARAM
#if defined __STDC__ || defined __cplusplus
int yyparse (void *YYPARSE_PARAM);
#else
int yyparse ();
#endif
#else /* ! YYPARSE_PARAM */
#if defined __STDC__ || defined __cplusplus
int yyparse (mem_collector * mc, ObjectXML * oxml, bool& result, char ** error_msg);
#else
int yyparse ();
#endif
#endif /* ! YYPARSE_PARAM */
/*----------.
@ -1255,7 +1263,7 @@ YYLTYPE yylloc;
`yyvs': related to semantic values.
`yyls': related to locations.
Refer to the stacks thru separate pointers, to allow yyoverflow
Refer to the stacks through separate pointers, to allow yyoverflow
to reallocate them elsewhere. */
/* The state stack. */
@ -1326,7 +1334,6 @@ YYLTYPE yylloc;
yylloc.first_line = yylloc.last_line = 1;
yylloc.first_column = yylloc.last_column = 1;
#endif
goto yysetstate;
/*------------------------------------------------------------.
@ -1510,22 +1517,19 @@ yyreduce:
switch (yyn)
{
case 2:
/* Line 1806 of yacc.c */
/* Line 1787 of yacc.c */
#line 103 "expr_bool.y"
{ result=(yyvsp[(1) - (1)].val_int); }
break;
case 3:
/* Line 1806 of yacc.c */
/* Line 1787 of yacc.c */
#line 104 "expr_bool.y"
{ result=true; }
break;
case 4:
/* Line 1806 of yacc.c */
/* Line 1787 of yacc.c */
#line 107 "expr_bool.y"
{ int val;
@ -1534,8 +1538,7 @@ yyreduce:
break;
case 5:
/* Line 1806 of yacc.c */
/* Line 1787 of yacc.c */
#line 112 "expr_bool.y"
{ int val;
@ -1544,8 +1547,7 @@ yyreduce:
break;
case 6:
/* Line 1806 of yacc.c */
/* Line 1787 of yacc.c */
#line 117 "expr_bool.y"
{ int val;
@ -1554,8 +1556,7 @@ yyreduce:
break;
case 7:
/* Line 1806 of yacc.c */
/* Line 1787 of yacc.c */
#line 122 "expr_bool.y"
{ int val;
@ -1564,8 +1565,7 @@ yyreduce:
break;
case 8:
/* Line 1806 of yacc.c */
/* Line 1787 of yacc.c */
#line 127 "expr_bool.y"
{ float val;
@ -1574,8 +1574,7 @@ yyreduce:
break;
case 9:
/* Line 1806 of yacc.c */
/* Line 1787 of yacc.c */
#line 132 "expr_bool.y"
{ float val;
@ -1584,8 +1583,7 @@ yyreduce:
break;
case 10:
/* Line 1806 of yacc.c */
/* Line 1787 of yacc.c */
#line 137 "expr_bool.y"
{ float val;
@ -1594,8 +1592,7 @@ yyreduce:
break;
case 11:
/* Line 1806 of yacc.c */
/* Line 1787 of yacc.c */
#line 142 "expr_bool.y"
{ float val;
@ -1604,8 +1601,7 @@ yyreduce:
break;
case 12:
/* Line 1806 of yacc.c */
/* Line 1787 of yacc.c */
#line 147 "expr_bool.y"
{ string val;
@ -1614,8 +1610,7 @@ yyreduce:
break;
case 13:
/* Line 1806 of yacc.c */
/* Line 1787 of yacc.c */
#line 152 "expr_bool.y"
{ string val;
@ -1624,37 +1619,32 @@ yyreduce:
break;
case 14:
/* Line 1806 of yacc.c */
/* Line 1787 of yacc.c */
#line 157 "expr_bool.y"
{ (yyval.val_int) = (yyvsp[(1) - (3)].val_int) && (yyvsp[(3) - (3)].val_int); }
break;
case 15:
/* Line 1806 of yacc.c */
/* Line 1787 of yacc.c */
#line 158 "expr_bool.y"
{ (yyval.val_int) = (yyvsp[(1) - (3)].val_int) || (yyvsp[(3) - (3)].val_int); }
break;
case 16:
/* Line 1806 of yacc.c */
/* Line 1787 of yacc.c */
#line 159 "expr_bool.y"
{ (yyval.val_int) = ! (yyvsp[(2) - (2)].val_int); }
break;
case 17:
/* Line 1806 of yacc.c */
/* Line 1787 of yacc.c */
#line 160 "expr_bool.y"
{ (yyval.val_int) = (yyvsp[(2) - (3)].val_int); }
break;
/* Line 1806 of yacc.c */
#line 1658 "expr_bool.cc"
/* Line 1787 of yacc.c */
#line 1648 "expr_bool.cc"
default: break;
}
/* User semantic actions sometimes alter yychar, and that requires
@ -1848,7 +1838,7 @@ yyabortlab:
yyresult = 1;
goto yyreturn;
#if !defined(yyoverflow) || YYERROR_VERBOSE
#if !defined yyoverflow || YYERROR_VERBOSE
/*-------------------------------------------------.
| yyexhaustedlab -- memory exhaustion comes here. |
`-------------------------------------------------*/
@ -1890,8 +1880,7 @@ yyreturn:
}
/* Line 2067 of yacc.c */
/* Line 2048 of yacc.c */
#line 163 "expr_bool.y"
@ -2022,4 +2011,4 @@ void get_xml_attribute(ObjectXML * oxml, const char* attr, string& val)
{
val = results[0];
}
}
}

View File

@ -1,8 +1,8 @@
/* A Bison parser, made by GNU Bison 2.5. */
/* A Bison parser, made by GNU Bison 2.6.2. */
/* Bison interface for Yacc-like parsers in C
Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -30,6 +30,15 @@
This special exception was added by the Free Software Foundation in
version 2.2 of Bison. */
#ifndef EXPR_BOOL_EXPR_BOOL_HH
# define EXPR_BOOL_EXPR_BOOL_HH
/* Enabling traces. */
#ifndef YYDEBUG
# define YYDEBUG 0
#endif
#if YYDEBUG
extern int expr_bool__debug;
#endif
/* Tokens. */
#ifndef YYTOKENTYPE
@ -44,12 +53,10 @@
#endif
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
{
/* Line 2068 of yacc.c */
/* Line 2049 of yacc.c */
#line 83 "expr_bool.y"
char * val_str;
@ -57,17 +64,14 @@ typedef union YYSTYPE
float val_float;
/* Line 2068 of yacc.c */
#line 63 "expr_bool.hh"
/* Line 2049 of yacc.c */
#line 69 "expr_bool.hh"
} YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
#endif
#if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
typedef struct YYLTYPE
{
@ -81,5 +85,4 @@ typedef struct YYLTYPE
# define YYLTYPE_IS_TRIVIAL 1
#endif
#endif /* !EXPR_BOOL_EXPR_BOOL_HH */

View File

@ -28,7 +28,7 @@
#define FLEX_SCANNER
#define YY_FLEX_MAJOR_VERSION 2
#define YY_FLEX_MINOR_VERSION 5
#define YY_FLEX_SUBMINOR_VERSION 35
#define YY_FLEX_SUBMINOR_VERSION 37
#if YY_FLEX_SUBMINOR_VERSION > 0
#define FLEX_BETA
#endif
@ -73,7 +73,6 @@ typedef int flex_int32_t;
typedef unsigned char flex_uint8_t;
typedef unsigned short int flex_uint16_t;
typedef unsigned int flex_uint32_t;
#endif /* ! C99 */
/* Limits of integral types. */
#ifndef INT8_MIN
@ -104,6 +103,8 @@ typedef unsigned int flex_uint32_t;
#define UINT32_MAX (4294967295U)
#endif
#endif /* ! C99 */
#endif /* ! FLEXINT_H */
#ifdef __cplusplus
@ -172,7 +173,12 @@ typedef unsigned int flex_uint32_t;
typedef struct yy_buffer_state *YY_BUFFER_STATE;
#endif
extern int expr_leng;
#ifndef YY_TYPEDEF_YY_SIZE_T
#define YY_TYPEDEF_YY_SIZE_T
typedef size_t yy_size_t;
#endif
extern yy_size_t expr_leng;
extern FILE *expr_in, *expr_out;
@ -211,11 +217,6 @@ extern FILE *expr_in, *expr_out;
#define unput(c) yyunput( c, (yytext_ptr) )
#ifndef YY_TYPEDEF_YY_SIZE_T
#define YY_TYPEDEF_YY_SIZE_T
typedef size_t yy_size_t;
#endif
#ifndef YY_STRUCT_YY_BUFFER_STATE
#define YY_STRUCT_YY_BUFFER_STATE
struct yy_buffer_state
@ -233,7 +234,7 @@ struct yy_buffer_state
/* Number of characters read into yy_ch_buf, not including EOB
* characters.
*/
int yy_n_chars;
yy_size_t yy_n_chars;
/* Whether we "own" the buffer - i.e., we know we created it,
* and can realloc() it to grow it, and should free() it to
@ -303,8 +304,8 @@ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
/* yy_hold_char holds the character lost when expr_text is formed. */
static char yy_hold_char;
static int yy_n_chars; /* number of characters read into yy_ch_buf */
int expr_leng;
static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */
yy_size_t expr_leng;
/* Points to current character in buffer. */
static char *yy_c_buf_p = (char *) 0;
@ -332,7 +333,7 @@ static void expr__init_buffer (YY_BUFFER_STATE b,FILE *file );
YY_BUFFER_STATE expr__scan_buffer (char *base,yy_size_t size );
YY_BUFFER_STATE expr__scan_string (yyconst char *yy_str );
YY_BUFFER_STATE expr__scan_bytes (yyconst char *bytes,int len );
YY_BUFFER_STATE expr__scan_bytes (yyconst char *bytes,yy_size_t len );
void *expr_alloc (yy_size_t );
void *expr_realloc (void *,yy_size_t );
@ -524,7 +525,7 @@ char *expr_text;
#define YY_USER_ACTION llocp->first_line = expr_lineno; \
llocp->first_column = llocp->last_column; \
llocp->last_column += expr_leng;
#line 528 "expr_parser.c"
#line 529 "expr_parser.c"
#define INITIAL 0
@ -563,7 +564,7 @@ FILE *expr_get_out (void );
void expr_set_out (FILE * out_str );
int expr_get_leng (void );
yy_size_t expr_get_leng (void );
char *expr_get_text (void );
@ -622,7 +623,7 @@ static int input (void );
if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
{ \
int c = '*'; \
unsigned n; \
size_t n; \
for ( n = 0; n < max_size && \
(c = getc( expr_in )) != EOF && c != '\n'; ++n ) \
buf[n] = (char) c; \
@ -708,7 +709,7 @@ YY_DECL
/* --- Tokens --- */
#line 712 "expr_parser.c"
#line 713 "expr_parser.c"
if ( !(yy_init) )
{
@ -851,7 +852,7 @@ YY_RULE_SETUP
#line 68 "expr_parser.l"
ECHO;
YY_BREAK
#line 855 "expr_parser.c"
#line 856 "expr_parser.c"
case YY_STATE_EOF(INITIAL):
yyterminate();
@ -1037,21 +1038,21 @@ static int yy_get_next_buffer (void)
else
{
int num_to_read =
yy_size_t num_to_read =
YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
while ( num_to_read <= 0 )
{ /* Not enough room in the buffer - grow it. */
/* just a shorter name for the current buffer */
YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
int yy_c_buf_p_offset =
(int) ((yy_c_buf_p) - b->yy_ch_buf);
if ( b->yy_is_our_buffer )
{
int new_size = b->yy_buf_size * 2;
yy_size_t new_size = b->yy_buf_size * 2;
if ( new_size <= 0 )
b->yy_buf_size += b->yy_buf_size / 8;
@ -1082,7 +1083,7 @@ static int yy_get_next_buffer (void)
/* Read in more data. */
YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
(yy_n_chars), (size_t) num_to_read );
(yy_n_chars), num_to_read );
YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
}
@ -1177,7 +1178,7 @@ static int yy_get_next_buffer (void)
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
yy_is_jam = (yy_current_state == 19);
return yy_is_jam ? 0 : yy_current_state;
return yy_is_jam ? 0 : yy_current_state;
}
#ifndef YY_NO_INPUT
@ -1204,7 +1205,7 @@ static int yy_get_next_buffer (void)
else
{ /* need more input */
int offset = (yy_c_buf_p) - (yytext_ptr);
yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
++(yy_c_buf_p);
switch ( yy_get_next_buffer( ) )
@ -1369,10 +1370,6 @@ static void expr__load_buffer_state (void)
expr_free((void *) b );
}
#ifndef __cplusplus
extern int isatty (int );
#endif /* __cplusplus */
/* Initializes or reinitializes a buffer.
* This function is sometimes called more than once on the same buffer,
* such as during a expr_restart() or at EOF.
@ -1485,7 +1482,7 @@ void expr_pop_buffer_state (void)
*/
static void expr_ensure_buffer_stack (void)
{
int num_to_alloc;
yy_size_t num_to_alloc;
if (!(yy_buffer_stack)) {
@ -1577,12 +1574,12 @@ YY_BUFFER_STATE expr__scan_string (yyconst char * yystr )
/** Setup the input buffer state to scan the given bytes. The next call to expr_lex() will
* scan from a @e copy of @a bytes.
* @param bytes the byte buffer to scan
* @param len the number of bytes in the buffer pointed to by @a bytes.
* @param yybytes the byte buffer to scan
* @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
*
* @return the newly allocated buffer state object.
*/
YY_BUFFER_STATE expr__scan_bytes (yyconst char * yybytes, int _yybytes_len )
YY_BUFFER_STATE expr__scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len )
{
YY_BUFFER_STATE b;
char *buf;
@ -1669,7 +1666,7 @@ FILE *expr_get_out (void)
/** Get the length of the current token.
*
*/
int expr_get_leng (void)
yy_size_t expr_get_leng (void)
{
return expr_leng;
}