From 0c2f09c8fee3da88bf7e30a2be6b314f470dfb00 Mon Sep 17 00:00:00 2001 From: Jaime Arias <arias@lipn.univ-paris13.fr> Date: Fri, 16 Dec 2022 08:41:09 +0100 Subject: [PATCH] remove more object files --- .gitignore | 57 ++ README.md | 8 +- parser/Net.d | 176 ---- parser/Net.o | Bin 81864 -> 0 bytes parser/RdPMonteur.lex.c | 1911 ------------------------------------- parser/RdPMonteur.lex.d | 71 -- parser/RdPMonteur.lex.o | Bin 24744 -> 0 bytes parser/RdPMonteur.tab.cpp | 1811 ----------------------------------- parser/RdPMonteur.tab.d | 144 --- parser/RdPMonteur.tab.h | 91 -- parser/RdPMonteur.tab.o | Bin 18600 -> 0 bytes parser/libRdP.a | Bin 129850 -> 0 bytes 12 files changed, 61 insertions(+), 4208 deletions(-) create mode 100644 .gitignore delete mode 100644 parser/Net.d delete mode 100644 parser/Net.o delete mode 100644 parser/RdPMonteur.lex.c delete mode 100644 parser/RdPMonteur.lex.d delete mode 100644 parser/RdPMonteur.lex.o delete mode 100644 parser/RdPMonteur.tab.cpp delete mode 100644 parser/RdPMonteur.tab.d delete mode 100644 parser/RdPMonteur.tab.h delete mode 100644 parser/RdPMonteur.tab.o delete mode 100644 parser/libRdP.a diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..87c527e --- /dev/null +++ b/.gitignore @@ -0,0 +1,57 @@ +# Created by https://www.toptal.com/developers/gitignore/api/c++,visualstudiocode +# Edit at https://www.toptal.com/developers/gitignore?templates=c++,visualstudiocode + +### C++ ### +# Prerequisites +*.d + +# Compiled Object files +*.slo +*.lo +*.o +*.obj + +# Precompiled Headers +*.gch +*.pch + +# Compiled Dynamic libraries +*.so +*.dylib +*.dll + +# Fortran module files +*.mod +*.smod + +# Compiled Static libraries +*.lai +*.la +*.a +*.lib + +# Executables +*.exe +*.out +*.app + +### VisualStudioCode ### +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +!.vscode/*.code-snippets + +# Local History for Visual Studio Code +.history/ + +# Built Visual Studio Code Extensions +*.vsix + +### VisualStudioCode Patch ### +# Ignore all local history of files +.history +.ionide + +# End of https://www.toptal.com/developers/gitignore/api/c++,visualstudiocode diff --git a/README.md b/README.md index 6615ad4..845753e 100644 --- a/README.md +++ b/README.md @@ -11,11 +11,11 @@ generates the abstract paths. To compile the tool you have to: -- First, run the `make` command inside the directory `buddy22`. This will - create/update the library libbdd.a this directory includes the library of Binary - Decision Diagrams. +- First, run the `make` command inside the directory `buddy22` in order to build + the library to manipulate Binary Decision Diagrams (BDD). --Second, run "make" in the "parser" directory, this directory is responsible for the creation of the Petri net from its description file "file.net". +- Second, run `make` in the `parser` directory. this directory is responsible + for the creation of the Petri net from its description file "file.net". -Then, you run the "make" command in the main directory to generate the executable file "StructAnalysis". diff --git a/parser/Net.d b/parser/Net.d deleted file mode 100644 index de2cbf5..0000000 --- a/parser/Net.d +++ /dev/null @@ -1,176 +0,0 @@ -Net.o Net.d : Net.cpp /usr/include/stdc-predef.h /usr/include/c++/9/string \ - /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ - /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ - /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ - /usr/include/x86_64-linux-gnu/bits/wordsize.h \ - /usr/include/x86_64-linux-gnu/bits/long-double.h \ - /usr/include/x86_64-linux-gnu/gnu/stubs.h \ - /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ - /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ - /usr/include/c++/9/bits/stringfwd.h /usr/include/c++/9/bits/memoryfwd.h \ - /usr/include/c++/9/bits/char_traits.h \ - /usr/include/c++/9/bits/stl_algobase.h \ - /usr/include/c++/9/bits/functexcept.h \ - /usr/include/c++/9/bits/exception_defines.h \ - /usr/include/c++/9/bits/cpp_type_traits.h \ - /usr/include/c++/9/ext/type_traits.h \ - /usr/include/c++/9/ext/numeric_traits.h \ - /usr/include/c++/9/bits/stl_pair.h /usr/include/c++/9/bits/move.h \ - /usr/include/c++/9/bits/concept_check.h /usr/include/c++/9/type_traits \ - /usr/include/c++/9/bits/stl_iterator_base_types.h \ - /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ - /usr/include/c++/9/debug/assertions.h \ - /usr/include/c++/9/bits/stl_iterator.h \ - /usr/include/c++/9/bits/ptr_traits.h /usr/include/c++/9/debug/debug.h \ - /usr/include/c++/9/bits/predefined_ops.h \ - /usr/include/c++/9/bits/postypes.h /usr/include/c++/9/cwchar \ - /usr/include/wchar.h \ - /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ - /usr/include/x86_64-linux-gnu/bits/floatn.h \ - /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ - /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ - /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ - /usr/include/x86_64-linux-gnu/bits/wchar.h \ - /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ - /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ - /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ - /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/9/cstdint \ - /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h /usr/include/stdint.h \ - /usr/include/x86_64-linux-gnu/bits/types.h \ - /usr/include/x86_64-linux-gnu/bits/timesize.h \ - /usr/include/x86_64-linux-gnu/bits/typesizes.h \ - /usr/include/x86_64-linux-gnu/bits/time64.h \ - /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ - /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ - /usr/include/c++/9/bits/allocator.h \ - /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ - /usr/include/c++/9/ext/new_allocator.h /usr/include/c++/9/new \ - /usr/include/c++/9/exception /usr/include/c++/9/bits/exception.h \ - /usr/include/c++/9/bits/exception_ptr.h \ - /usr/include/c++/9/bits/cxxabi_init_exception.h \ - /usr/include/c++/9/typeinfo /usr/include/c++/9/bits/hash_bytes.h \ - /usr/include/c++/9/bits/nested_exception.h \ - /usr/include/c++/9/bits/localefwd.h \ - /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ - /usr/include/c++/9/clocale /usr/include/locale.h \ - /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/9/iosfwd \ - /usr/include/c++/9/cctype /usr/include/ctype.h \ - /usr/include/x86_64-linux-gnu/bits/endian.h \ - /usr/include/x86_64-linux-gnu/bits/endianness.h \ - /usr/include/c++/9/bits/ostream_insert.h \ - /usr/include/c++/9/bits/cxxabi_forced.h \ - /usr/include/c++/9/bits/stl_function.h \ - /usr/include/c++/9/backward/binders.h \ - /usr/include/c++/9/bits/range_access.h \ - /usr/include/c++/9/initializer_list \ - /usr/include/c++/9/bits/basic_string.h \ - /usr/include/c++/9/ext/atomicity.h \ - /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ - /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ - /usr/include/pthread.h /usr/include/sched.h \ - /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ - /usr/include/x86_64-linux-gnu/bits/sched.h \ - /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ - /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ - /usr/include/x86_64-linux-gnu/bits/time.h \ - /usr/include/x86_64-linux-gnu/bits/timex.h \ - /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ - /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ - /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ - /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ - /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ - /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ - /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ - /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ - /usr/include/x86_64-linux-gnu/bits/setjmp.h \ - /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ - /usr/include/c++/9/ext/alloc_traits.h \ - /usr/include/c++/9/bits/alloc_traits.h \ - /usr/include/c++/9/ext/string_conversions.h /usr/include/c++/9/cstdlib \ - /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ - /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ - /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ - /usr/include/x86_64-linux-gnu/bits/byteswap.h \ - /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ - /usr/include/x86_64-linux-gnu/sys/select.h \ - /usr/include/x86_64-linux-gnu/bits/select.h \ - /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ - /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ - /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ - /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ - /usr/include/x86_64-linux-gnu/bits/stdlib.h \ - /usr/include/c++/9/bits/std_abs.h /usr/include/c++/9/cstdio \ - /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ - /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ - /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ - /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ - /usr/include/x86_64-linux-gnu/bits/stdio.h \ - /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/9/cerrno \ - /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \ - /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \ - /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ - /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ - /usr/include/c++/9/bits/functional_hash.h \ - /usr/include/c++/9/bits/basic_string.tcc /usr/include/c++/9/iostream \ - /usr/include/c++/9/ostream /usr/include/c++/9/ios \ - /usr/include/c++/9/bits/ios_base.h \ - /usr/include/c++/9/bits/locale_classes.h \ - /usr/include/c++/9/bits/locale_classes.tcc \ - /usr/include/c++/9/system_error \ - /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ - /usr/include/c++/9/stdexcept /usr/include/c++/9/streambuf \ - /usr/include/c++/9/bits/streambuf.tcc \ - /usr/include/c++/9/bits/basic_ios.h \ - /usr/include/c++/9/bits/locale_facets.h /usr/include/c++/9/cwctype \ - /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ - /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ - /usr/include/c++/9/bits/streambuf_iterator.h \ - /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ - /usr/include/c++/9/bits/locale_facets.tcc \ - /usr/include/c++/9/bits/basic_ios.tcc \ - /usr/include/c++/9/bits/ostream.tcc /usr/include/c++/9/istream \ - /usr/include/c++/9/bits/istream.tcc /usr/include/c++/9/iomanip \ - /usr/include/c++/9/locale /usr/include/c++/9/bits/locale_facets_nonio.h \ - /usr/include/c++/9/ctime \ - /usr/include/x86_64-linux-gnu/c++/9/bits/time_members.h \ - /usr/include/x86_64-linux-gnu/c++/9/bits/messages_members.h \ - /usr/include/libintl.h /usr/include/c++/9/bits/codecvt.h \ - /usr/include/c++/9/bits/locale_facets_nonio.tcc \ - /usr/include/c++/9/bits/locale_conv.h \ - /usr/include/c++/9/bits/unique_ptr.h /usr/include/c++/9/utility \ - /usr/include/c++/9/bits/stl_relops.h /usr/include/c++/9/tuple \ - /usr/include/c++/9/array /usr/include/c++/9/bits/uses_allocator.h \ - /usr/include/c++/9/bits/invoke.h /usr/include/c++/9/bits/quoted_string.h \ - /usr/include/c++/9/sstream /usr/include/c++/9/bits/sstream.tcc \ - /usr/include/c++/9/vector /usr/include/c++/9/bits/stl_construct.h \ - /usr/include/c++/9/bits/stl_uninitialized.h \ - /usr/include/c++/9/bits/stl_vector.h \ - /usr/include/c++/9/bits/stl_bvector.h /usr/include/c++/9/bits/vector.tcc \ - /usr/include/c++/9/map /usr/include/c++/9/bits/stl_tree.h \ - /usr/include/c++/9/ext/aligned_buffer.h \ - /usr/include/c++/9/bits/stl_map.h /usr/include/c++/9/bits/stl_multimap.h \ - /usr/include/c++/9/bits/erase_if.h /usr/include/c++/9/ext/hash_map \ - /usr/include/c++/9/backward/backward_warning.h \ - /usr/include/c++/9/backward/hashtable.h /usr/include/c++/9/iterator \ - /usr/include/c++/9/bits/stream_iterator.h /usr/include/c++/9/algorithm \ - /usr/include/c++/9/bits/stl_algo.h \ - /usr/include/c++/9/bits/algorithmfwd.h \ - /usr/include/c++/9/bits/stl_heap.h /usr/include/c++/9/bits/stl_tempbuf.h \ - /usr/include/c++/9/bits/uniform_int_dist.h /usr/include/c++/9/limits \ - /usr/include/c++/9/backward/hash_fun.h Net.h /usr/include/c++/9/set \ - /usr/include/c++/9/bits/stl_set.h /usr/include/c++/9/bits/stl_multiset.h \ - /usr/include/c++/9/cstddef RdPMonteur.h /usr/include/c++/9/cstring \ - /usr/include/string.h /usr/include/strings.h \ - /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ - /usr/include/x86_64-linux-gnu/bits/string_fortified.h diff --git a/parser/Net.o b/parser/Net.o deleted file mode 100644 index d90e615b69890269f2b220841d101b78be4d5f4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 81864 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 diff --git a/parser/RdPMonteur.lex.c b/parser/RdPMonteur.lex.c deleted file mode 100644 index 45202cc..0000000 --- a/parser/RdPMonteur.lex.c +++ /dev/null @@ -1,1911 +0,0 @@ -#line 2 "RdPMonteur.lex.c" - -#line 4 "RdPMonteur.lex.c" - -#define YY_INT_ALIGNED short int - -/* A lexical scanner generated by flex */ - -#define FLEX_SCANNER -#define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 6 -#define YY_FLEX_SUBMINOR_VERSION 4 -#if YY_FLEX_SUBMINOR_VERSION > 0 -#define FLEX_BETA -#endif - -/* First, we deal with platform-specific or compiler-specific issues. */ - -/* begin standard C headers. */ -#include <stdio.h> -#include <string.h> -#include <errno.h> -#include <stdlib.h> - -/* end standard C headers. */ - -/* flex integer type definitions */ - -#ifndef FLEXINT_H -#define FLEXINT_H - -/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */ - -#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L - -/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, - * if you want the limit (max/min) macros for int types. - */ -#ifndef __STDC_LIMIT_MACROS -#define __STDC_LIMIT_MACROS 1 -#endif - -#include <inttypes.h> -typedef int8_t flex_int8_t; -typedef uint8_t flex_uint8_t; -typedef int16_t flex_int16_t; -typedef uint16_t flex_uint16_t; -typedef int32_t flex_int32_t; -typedef uint32_t flex_uint32_t; -#else -typedef signed char flex_int8_t; -typedef short int flex_int16_t; -typedef int flex_int32_t; -typedef unsigned char flex_uint8_t; -typedef unsigned short int flex_uint16_t; -typedef unsigned int flex_uint32_t; - -/* Limits of integral types. */ -#ifndef INT8_MIN -#define INT8_MIN (-128) -#endif -#ifndef INT16_MIN -#define INT16_MIN (-32767-1) -#endif -#ifndef INT32_MIN -#define INT32_MIN (-2147483647-1) -#endif -#ifndef INT8_MAX -#define INT8_MAX (127) -#endif -#ifndef INT16_MAX -#define INT16_MAX (32767) -#endif -#ifndef INT32_MAX -#define INT32_MAX (2147483647) -#endif -#ifndef UINT8_MAX -#define UINT8_MAX (255U) -#endif -#ifndef UINT16_MAX -#define UINT16_MAX (65535U) -#endif -#ifndef UINT32_MAX -#define UINT32_MAX (4294967295U) -#endif - -#ifndef SIZE_MAX -#define SIZE_MAX (~(size_t)0) -#endif - -#endif /* ! C99 */ - -#endif /* ! FLEXINT_H */ - -/* begin standard C++ headers. */ - -/* TODO: this is always defined, so inline it */ -#define yyconst const - -#if defined(__GNUC__) && __GNUC__ >= 3 -#define yynoreturn __attribute__((__noreturn__)) -#else -#define yynoreturn -#endif - -/* Returned upon end-of-file. */ -#define YY_NULL 0 - -/* Promotes a possibly negative, possibly signed char to an - * integer in range [0..255] for use as an array index. - */ -#define YY_SC_TO_UI(c) ((YY_CHAR) (c)) - -/* Enter a start condition. This macro really ought to take a parameter, - * but we do it the disgusting crufty way forced on us by the ()-less - * definition of BEGIN. - */ -#define BEGIN (yy_start) = 1 + 2 * -/* Translate the current start state into a value that can be later handed - * to BEGIN to return to the state. The YYSTATE alias is for lex - * compatibility. - */ -#define YY_START (((yy_start) - 1) / 2) -#define YYSTATE YY_START -/* Action number for EOF rule of a given start state. */ -#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) -/* Special action meaning "start processing a new file". */ -#define YY_NEW_FILE yyrestart( yyin ) -#define YY_END_OF_BUFFER_CHAR 0 - -/* Size of default input buffer. */ -#ifndef YY_BUF_SIZE -#ifdef __ia64__ -/* On IA-64, the buffer size is 16k, not 8k. - * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. - * Ditto for the __ia64__ case accordingly. - */ -#define YY_BUF_SIZE 32768 -#else -#define YY_BUF_SIZE 16384 -#endif /* __ia64__ */ -#endif - -/* The state buf must be large enough to hold one state per character in the main buffer. - */ -#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) - -#ifndef YY_TYPEDEF_YY_BUFFER_STATE -#define YY_TYPEDEF_YY_BUFFER_STATE -typedef struct yy_buffer_state *YY_BUFFER_STATE; -#endif - -#ifndef YY_TYPEDEF_YY_SIZE_T -#define YY_TYPEDEF_YY_SIZE_T -typedef size_t yy_size_t; -#endif - -extern int yyleng; - -extern FILE *yyin, *yyout; - -#define EOB_ACT_CONTINUE_SCAN 0 -#define EOB_ACT_END_OF_FILE 1 -#define EOB_ACT_LAST_MATCH 2 - - #define YY_LESS_LINENO(n) - #define YY_LINENO_REWIND_TO(ptr) - -/* Return all but the first "n" matched characters back to the input stream. */ -#define yyless(n) \ - do \ - { \ - /* Undo effects of setting up yytext. */ \ - int yyless_macro_arg = (n); \ - YY_LESS_LINENO(yyless_macro_arg);\ - *yy_cp = (yy_hold_char); \ - YY_RESTORE_YY_MORE_OFFSET \ - (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ - YY_DO_BEFORE_ACTION; /* set up yytext again */ \ - } \ - while ( 0 ) -#define unput(c) yyunput( c, (yytext_ptr) ) - -#ifndef YY_STRUCT_YY_BUFFER_STATE -#define YY_STRUCT_YY_BUFFER_STATE -struct yy_buffer_state - { - FILE *yy_input_file; - - char *yy_ch_buf; /* input buffer */ - char *yy_buf_pos; /* current position in input buffer */ - - /* Size of input buffer in bytes, not including room for EOB - * characters. - */ - int yy_buf_size; - - /* Number of characters read into yy_ch_buf, not including EOB - * characters. - */ - int 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 - * delete it. - */ - int yy_is_our_buffer; - - /* Whether this is an "interactive" input source; if so, and - * if we're using stdio for input, then we want to use getc() - * instead of fread(), to make sure we stop fetching input after - * each newline. - */ - int yy_is_interactive; - - /* Whether we're considered to be at the beginning of a line. - * If so, '^' rules will be active on the next match, otherwise - * not. - */ - int yy_at_bol; - - int yy_bs_lineno; /**< The line count. */ - int yy_bs_column; /**< The column count. */ - - /* Whether to try to fill the input buffer when we reach the - * end of it. - */ - int yy_fill_buffer; - - int yy_buffer_status; - -#define YY_BUFFER_NEW 0 -#define YY_BUFFER_NORMAL 1 - /* When an EOF's been seen but there's still some text to process - * then we mark the buffer as YY_EOF_PENDING, to indicate that we - * shouldn't try reading from the input source any more. We might - * still have a bunch of tokens to match, though, because of - * possible backing-up. - * - * When we actually see the EOF, we change the status to "new" - * (via yyrestart()), so that the user can continue scanning by - * just pointing yyin at a new input file. - */ -#define YY_BUFFER_EOF_PENDING 2 - - }; -#endif /* !YY_STRUCT_YY_BUFFER_STATE */ - -/* Stack of input buffers. */ -static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ -static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ -static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */ - -/* We provide macros for accessing buffer states in case in the - * future we want to put the buffer states in a more general - * "scanner state". - * - * Returns the top of the stack, or NULL. - */ -#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ - ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ - : NULL) -/* Same as previous macro, but useful when we know that the buffer stack is not - * NULL or when we need an lvalue. For internal use only. - */ -#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] - -/* yy_hold_char holds the character lost when yytext is formed. */ -static char yy_hold_char; -static int yy_n_chars; /* number of characters read into yy_ch_buf */ -int yyleng; - -/* Points to current character in buffer. */ -static char *yy_c_buf_p = NULL; -static int yy_init = 0; /* whether we need to initialize */ -static int yy_start = 0; /* start state number */ - -/* Flag which is used to allow yywrap()'s to do buffer switches - * instead of setting up a fresh yyin. A bit of a hack ... - */ -static int yy_did_buffer_switch_on_eof; - -void yyrestart ( FILE *input_file ); -void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer ); -YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size ); -void yy_delete_buffer ( YY_BUFFER_STATE b ); -void yy_flush_buffer ( YY_BUFFER_STATE b ); -void yypush_buffer_state ( YY_BUFFER_STATE new_buffer ); -void yypop_buffer_state ( void ); - -static void yyensure_buffer_stack ( void ); -static void yy_load_buffer_state ( void ); -static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file ); -#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER ) - -YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size ); -YY_BUFFER_STATE yy_scan_string ( const char *yy_str ); -YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len ); - -void *yyalloc ( yy_size_t ); -void *yyrealloc ( void *, yy_size_t ); -void yyfree ( void * ); - -#define yy_new_buffer yy_create_buffer -#define yy_set_interactive(is_interactive) \ - { \ - if ( ! YY_CURRENT_BUFFER ){ \ - yyensure_buffer_stack (); \ - YY_CURRENT_BUFFER_LVALUE = \ - yy_create_buffer( yyin, YY_BUF_SIZE ); \ - } \ - YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ - } -#define yy_set_bol(at_bol) \ - { \ - if ( ! YY_CURRENT_BUFFER ){\ - yyensure_buffer_stack (); \ - YY_CURRENT_BUFFER_LVALUE = \ - yy_create_buffer( yyin, YY_BUF_SIZE ); \ - } \ - YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ - } -#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) - -/* Begin user sect3 */ -typedef flex_uint8_t YY_CHAR; - -FILE *yyin = NULL, *yyout = NULL; - -typedef int yy_state_type; - -extern int yylineno; -int yylineno = 1; - -extern char *yytext; -#ifdef yytext_ptr -#undef yytext_ptr -#endif -#define yytext_ptr yytext - -static yy_state_type yy_get_previous_state ( void ); -static yy_state_type yy_try_NUL_trans ( yy_state_type current_state ); -static int yy_get_next_buffer ( void ); -static void yynoreturn yy_fatal_error ( const char* msg ); - -/* Done after the current pattern has been matched and before the - * corresponding action - sets up yytext. - */ -#define YY_DO_BEFORE_ACTION \ - (yytext_ptr) = yy_bp; \ - yyleng = (int) (yy_cp - yy_bp); \ - (yy_hold_char) = *yy_cp; \ - *yy_cp = '\0'; \ - (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 24 -#define YY_END_OF_BUFFER 25 -/* 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 const flex_int16_t yy_accept[67] = - { 0, - 0, 0, 25, 24, 23, 24, 1, 2, 24, 21, - 5, 6, 10, 22, 22, 22, 22, 22, 3, 4, - 22, 22, 0, 0, 0, 0, 9, 21, 8, 22, - 22, 22, 22, 22, 19, 22, 0, 0, 0, 0, - 0, 0, 0, 18, 22, 0, 17, 22, 20, 0, - 0, 0, 0, 7, 16, 22, 0, 0, 0, 0, - 15, 14, 12, 13, 11, 0 - } ; - -static const YY_CHAR yy_ec[256] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 3, 1, 1, 4, 1, 1, 1, 1, 5, - 6, 1, 1, 1, 1, 7, 1, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 9, 10, 11, - 1, 12, 1, 1, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, - 1, 1, 1, 1, 13, 1, 14, 13, 15, 16, - - 17, 13, 13, 13, 18, 13, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 13, 13, 13, - 13, 13, 30, 1, 31, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1 - } ; - -static const YY_CHAR yy_meta[32] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, - 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, - 1 - } ; - -static const flex_int16_t yy_base[68] = - { 0, - 0, 14, 84, 85, 85, 16, 85, 85, 71, 74, - 85, 85, 74, 0, 56, 56, 59, 60, 85, 85, - 54, 46, 52, 53, 43, 45, 85, 62, 31, 0, - 40, 42, 43, 41, 0, 39, 50, 51, 47, 49, - 32, 50, 44, 85, 34, 47, 85, 43, 0, 31, - 43, 28, 34, 85, 0, 27, 28, 36, 34, 15, - 0, 85, 85, 85, 85, 85, 34 - } ; - -static const flex_int16_t yy_def[68] = - { 0, - 66, 1, 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 67, 67, 67, 67, 67, 66, 66, - 67, 67, 66, 66, 66, 66, 66, 66, 66, 67, - 67, 67, 67, 67, 67, 67, 66, 66, 66, 66, - 66, 66, 66, 66, 67, 66, 66, 67, 67, 66, - 66, 66, 66, 66, 67, 67, 66, 66, 66, 66, - 67, 66, 66, 66, 66, 0, 66 - } ; - -static const flex_int16_t yy_nxt[117] = - { 0, - 4, 5, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 4, 14, 14, 15, 14, 14, 14, 14, 16, - 17, 14, 14, 14, 14, 18, 14, 14, 14, 19, - 20, 21, 23, 41, 41, 30, 22, 42, 42, 24, - 25, 65, 43, 26, 44, 46, 43, 47, 44, 46, - 64, 47, 63, 62, 61, 60, 59, 58, 57, 56, - 55, 54, 53, 52, 51, 50, 49, 48, 45, 28, - 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, - 29, 28, 27, 66, 3, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, - - 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66 - } ; - -static const flex_int16_t yy_chk[117] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 6, 29, 41, 67, 2, 29, 41, 6, - 6, 60, 31, 6, 31, 33, 43, 33, 43, 46, - 59, 46, 58, 57, 56, 53, 52, 51, 50, 48, - 45, 42, 40, 39, 38, 37, 36, 34, 32, 28, - 26, 25, 24, 23, 22, 21, 18, 17, 16, 15, - 13, 10, 9, 3, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, - - 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66 - } ; - -static yy_state_type yy_last_accepting_state; -static char *yy_last_accepting_cpos; - -extern int yy_flex_debug; -int yy_flex_debug = 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 -#define yymore() yymore_used_but_not_detected -#define YY_MORE_ADJ 0 -#define YY_RESTORE_YY_MORE_OFFSET -char *yytext; -#line 1 "RdPMonteur.l" -#line 2 "RdPMonteur.l" -/************* INCLUDES AND EXTERNALS *************************************/ - -#include <stdio.h> -#include <string.h> -#include "RdPMonteur.tab.h" - -#line 494 "RdPMonteur.lex.c" -#line 495 "RdPMonteur.lex.c" - -#define INITIAL 0 - -#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> -#endif - -#ifndef YY_EXTRA_TYPE -#define YY_EXTRA_TYPE void * -#endif - -static int yy_init_globals ( void ); - -/* Accessor methods to globals. - These are made visible to non-reentrant scanners for convenience. */ - -int yylex_destroy ( void ); - -int yyget_debug ( void ); - -void yyset_debug ( int debug_flag ); - -YY_EXTRA_TYPE yyget_extra ( void ); - -void yyset_extra ( YY_EXTRA_TYPE user_defined ); - -FILE *yyget_in ( void ); - -void yyset_in ( FILE * _in_str ); - -FILE *yyget_out ( void ); - -void yyset_out ( FILE * _out_str ); - - int yyget_leng ( void ); - -char *yyget_text ( void ); - -int yyget_lineno ( void ); - -void yyset_lineno ( int _line_number ); - -/* Macros after this point can all be overridden by user definitions in - * section 1. - */ - -#ifndef YY_SKIP_YYWRAP -#ifdef __cplusplus -extern "C" int yywrap ( void ); -#else -extern int yywrap ( void ); -#endif -#endif - -#ifndef YY_NO_UNPUT - - static void yyunput ( int c, char *buf_ptr ); - -#endif - -#ifndef yytext_ptr -static void yy_flex_strncpy ( char *, const char *, int ); -#endif - -#ifdef YY_NEED_STRLEN -static int yy_flex_strlen ( const char * ); -#endif - -#ifndef YY_NO_INPUT -#ifdef __cplusplus -static int yyinput ( void ); -#else -static int input ( void ); -#endif - -#endif - -/* Amount of stuff to slurp up with each read. */ -#ifndef YY_READ_BUF_SIZE -#ifdef __ia64__ -/* On IA-64, the buffer size is 16k, not 8k */ -#define YY_READ_BUF_SIZE 16384 -#else -#define YY_READ_BUF_SIZE 8192 -#endif /* __ia64__ */ -#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 do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0) -#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) \ - if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ - { \ - int c = '*'; \ - int n; \ - for ( n = 0; n < max_size && \ - (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ - buf[n] = (char) c; \ - if ( c == '\n' ) \ - buf[n++] = (char) c; \ - if ( c == EOF && ferror( yyin ) ) \ - YY_FATAL_ERROR( "input in flex scanner failed" ); \ - result = n; \ - } \ - else \ - { \ - errno=0; \ - while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \ - { \ - if( errno != EINTR) \ - { \ - YY_FATAL_ERROR( "input in flex scanner failed" ); \ - break; \ - } \ - errno=0; \ - clearerr(yyin); \ - } \ - }\ -\ - -#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 ) -#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 yylex (void); - -#define YY_DECL int yylex (void) -#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 /*LINTED*/break; -#endif - -#define YY_RULE_SETUP \ - if ( yyleng > 0 ) \ - YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \ - (yytext[yyleng - 1] == '\n'); \ - YY_USER_ACTION - -/** The main scanner function which does all the work. - */ -YY_DECL -{ - yy_state_type yy_current_state; - char *yy_cp, *yy_bp; - int yy_act; - - if ( !(yy_init) ) - { - (yy_init) = 1; - -#ifdef YY_USER_INIT - YY_USER_INIT; -#endif - - if ( ! (yy_start) ) - (yy_start) = 1; /* first start state */ - - if ( ! yyin ) - yyin = stdin; - - if ( ! yyout ) - yyout = stdout; - - if ( ! YY_CURRENT_BUFFER ) { - yyensure_buffer_stack (); - YY_CURRENT_BUFFER_LVALUE = - yy_create_buffer( yyin, YY_BUF_SIZE ); - } - - yy_load_buffer_state( ); - } - - { -#line 10 "RdPMonteur.l" - -#line 717 "RdPMonteur.lex.c" - - while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ - { - yy_cp = (yy_c_buf_p); - - /* Support of yytext. */ - *yy_cp = (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 = (yy_start); - yy_current_state += YY_AT_BOL(); -yy_match: - do - { - YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; - if ( yy_accept[yy_current_state] ) - { - (yy_last_accepting_state) = yy_current_state; - (yy_last_accepting_cpos) = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 67 ) - yy_c = yy_meta[yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - ++yy_cp; - } - while ( yy_base[yy_current_state] != 85 ); - -yy_find_action: - yy_act = yy_accept[yy_current_state]; - if ( yy_act == 0 ) - { /* have to back up */ - yy_cp = (yy_last_accepting_cpos); - yy_current_state = (yy_last_accepting_state); - 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 = (yy_hold_char); - yy_cp = (yy_last_accepting_cpos); - yy_current_state = (yy_last_accepting_state); - goto yy_find_action; - -case 1: -YY_RULE_SETUP -#line 11 "RdPMonteur.l" -{ return('('); } - YY_BREAK -case 2: -YY_RULE_SETUP -#line 12 "RdPMonteur.l" -{ return(')'); } - YY_BREAK -case 3: -YY_RULE_SETUP -#line 13 "RdPMonteur.l" -{ return('{'); } - YY_BREAK -case 4: -YY_RULE_SETUP -#line 14 "RdPMonteur.l" -{ return('}'); } - YY_BREAK -case 5: -YY_RULE_SETUP -#line 15 "RdPMonteur.l" -{ return(':'); } - YY_BREAK -case 6: -YY_RULE_SETUP -#line 16 "RdPMonteur.l" -{ return(';'); } - YY_BREAK -case 7: -YY_RULE_SETUP -#line 17 "RdPMonteur.l" -{ return(TOKEN);} - YY_BREAK -case 8: -YY_RULE_SETUP -#line 18 "RdPMonteur.l" -{ return('['); } - YY_BREAK -case 9: -YY_RULE_SETUP -#line 19 "RdPMonteur.l" -{ return(']'); } - YY_BREAK -case 10: -YY_RULE_SETUP -#line 20 "RdPMonteur.l" -{ return(INHIBITOR); } - YY_BREAK -case 11: -YY_RULE_SETUP -#line 21 "RdPMonteur.l" -{ return(TRANS);} - YY_BREAK -case 12: -YY_RULE_SETUP -#line 22 "RdPMonteur.l" -{ return(PLACE);} - YY_BREAK -case 13: -YY_RULE_SETUP -#line 23 "RdPMonteur.l" -{ return(QUEUE);} - YY_BREAK -case 14: -YY_RULE_SETUP -#line 24 "RdPMonteur.l" -{ return(ENDTR);} - YY_BREAK -case 15: -YY_RULE_SETUP -#line 25 "RdPMonteur.l" -{ return(RESET);} - YY_BREAK -case 16: -YY_RULE_SETUP -#line 26 "RdPMonteur.l" -{ return(LOSS);} - YY_BREAK -case 17: -*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ -(yy_c_buf_p) = yy_cp = yy_bp + 2; -YY_DO_BEFORE_ACTION; /* set up yytext again */ -YY_RULE_SETUP -#line 27 "RdPMonteur.l" -{ return(MK);} - YY_BREAK -case 18: -*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ -(yy_c_buf_p) = yy_cp = yy_bp + 2; -YY_DO_BEFORE_ACTION; /* set up yytext again */ -YY_RULE_SETUP -#line 28 "RdPMonteur.l" -{ return(CP);} - YY_BREAK -case 19: -YY_RULE_SETUP -#line 29 "RdPMonteur.l" -{ return(IN);} - YY_BREAK -case 20: -YY_RULE_SETUP -#line 30 "RdPMonteur.l" -{ return(OUT);} - YY_BREAK -case 21: -YY_RULE_SETUP -#line 31 "RdPMonteur.l" -{ sscanf(yytext,"%d",&yylval.i); return(ENTIER);} - YY_BREAK -case 22: -YY_RULE_SETUP -#line 32 "RdPMonteur.l" -{ yylval.s=strdup(yytext); return(VARIABLE);} - YY_BREAK -case 23: -/* rule 23 can match eol */ -YY_RULE_SETUP -#line 33 "RdPMonteur.l" -{} - YY_BREAK -case 24: -YY_RULE_SETUP -#line 34 "RdPMonteur.l" -ECHO; - YY_BREAK -#line 902 "RdPMonteur.lex.c" -case YY_STATE_EOF(INITIAL): - yyterminate(); - - case YY_END_OF_BUFFER: - { - /* Amount of text matched not including the EOB char. */ - int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; - - /* Undo the effects of YY_DO_BEFORE_ACTION. */ - *yy_cp = (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 - * 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. - */ - (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 - * end-of-buffer state). Contrast this with the test - * in input(). - */ - if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) - { /* This was really a NUL. */ - yy_state_type yy_next_state; - - (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; - - yy_current_state = yy_get_previous_state( ); - - /* Okay, we're now positioned to make the NUL - * transition. We couldn't have - * yy_get_previous_state() go ahead and do it - * for us because it doesn't know how to deal - * with the possibility of jamming (and we don't - * want to build jamming into it because then it - * will run more slowly). - */ - - yy_next_state = yy_try_NUL_trans( yy_current_state ); - - yy_bp = (yytext_ptr) + YY_MORE_ADJ; - - if ( yy_next_state ) - { - /* Consume the NUL. */ - yy_cp = ++(yy_c_buf_p); - yy_current_state = yy_next_state; - goto yy_match; - } - - else - { - yy_cp = (yy_c_buf_p); - goto yy_find_action; - } - } - - else switch ( yy_get_next_buffer( ) ) - { - case EOB_ACT_END_OF_FILE: - { - (yy_did_buffer_switch_on_eof) = 0; - - if ( yywrap( ) ) - { - /* Note: because we've taken care in - * yy_get_next_buffer() to have set up - * yytext, we can now set up - * yy_c_buf_p so that if some total - * hoser (like flex itself) wants to - * call the scanner after we return the - * YY_NULL, it'll still work - another - * YY_NULL will get returned. - */ - (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; - - yy_act = YY_STATE_EOF(YY_START); - goto do_action; - } - - else - { - if ( ! (yy_did_buffer_switch_on_eof) ) - YY_NEW_FILE; - } - break; - } - - case EOB_ACT_CONTINUE_SCAN: - (yy_c_buf_p) = - (yytext_ptr) + yy_amount_of_matched_text; - - yy_current_state = yy_get_previous_state( ); - - yy_cp = (yy_c_buf_p); - yy_bp = (yytext_ptr) + YY_MORE_ADJ; - goto yy_match; - - case EOB_ACT_LAST_MATCH: - (yy_c_buf_p) = - &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; - - yy_current_state = yy_get_previous_state( ); - - yy_cp = (yy_c_buf_p); - yy_bp = (yytext_ptr) + YY_MORE_ADJ; - goto yy_find_action; - } - break; - } - - default: - YY_FATAL_ERROR( - "fatal flex scanner internal error--no action found" ); - } /* end of action switch */ - } /* end of scanning one token */ - } /* end of user's declarations */ -} /* end of yylex */ - -/* yy_get_next_buffer - try to read in a new buffer - * - * Returns a code representing an action: - * EOB_ACT_LAST_MATCH - - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position - * EOB_ACT_END_OF_FILE - end of file - */ -static int yy_get_next_buffer (void) -{ - char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; - char *source = (yytext_ptr); - int number_to_move, i; - int ret_val; - - if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) - YY_FATAL_ERROR( - "fatal flex scanner internal error--end of buffer missed" ); - - if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) - { /* Don't try to fill the buffer, so this is an EOF. */ - if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) - { - /* We matched a single character, the EOB, so - * treat this as a final EOF. - */ - return EOB_ACT_END_OF_FILE; - } - - else - { - /* We matched some text prior to the EOB, first - * process it. - */ - return EOB_ACT_LAST_MATCH; - } - } - - /* Try to read more data. */ - - /* First move last chars to start of buffer. */ - number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); - - for ( i = 0; i < number_to_move; ++i ) - *(dest++) = *(source++); - - if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) - /* don't do the read, it's not guaranteed to return an EOF, - * just force an EOF - */ - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; - - else - { - int 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_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; - - if ( new_size <= 0 ) - b->yy_buf_size += b->yy_buf_size / 8; - else - b->yy_buf_size *= 2; - - b->yy_ch_buf = (char *) - /* Include room in for 2 EOB chars. */ - yyrealloc( (void *) b->yy_ch_buf, - (yy_size_t) (b->yy_buf_size + 2) ); - } - else - /* Can't grow it, we don't own it. */ - b->yy_ch_buf = NULL; - - if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( - "fatal error - scanner input buffer overflow" ); - - (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; - - num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - - number_to_move - 1; - - } - - if ( num_to_read > YY_READ_BUF_SIZE ) - num_to_read = YY_READ_BUF_SIZE; - - /* Read in more data. */ - YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), - (yy_n_chars), num_to_read ); - - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); - } - - if ( (yy_n_chars) == 0 ) - { - if ( number_to_move == YY_MORE_ADJ ) - { - ret_val = EOB_ACT_END_OF_FILE; - yyrestart( yyin ); - } - - else - { - ret_val = EOB_ACT_LAST_MATCH; - YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = - YY_BUFFER_EOF_PENDING; - } - } - - else - ret_val = EOB_ACT_CONTINUE_SCAN; - - if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { - /* Extend the array by 50%, plus the number we really need. */ - int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( - (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); - if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) - YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); - /* "- 2" to take care of EOB's */ - YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); - } - - (yy_n_chars) += number_to_move; - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; - - (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; - - return ret_val; -} - -/* yy_get_previous_state - get the state just before the EOB char was reached */ - - static yy_state_type yy_get_previous_state (void) -{ - yy_state_type yy_current_state; - char *yy_cp; - - yy_current_state = (yy_start); - yy_current_state += YY_AT_BOL(); - - for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) - { - YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); - if ( yy_accept[yy_current_state] ) - { - (yy_last_accepting_state) = yy_current_state; - (yy_last_accepting_cpos) = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 67 ) - yy_c = yy_meta[yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - } - - return yy_current_state; -} - -/* yy_try_NUL_trans - try to make a transition on the NUL character - * - * synopsis - * next_state = yy_try_NUL_trans( current_state ); - */ - static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) -{ - int yy_is_jam; - char *yy_cp = (yy_c_buf_p); - - YY_CHAR yy_c = 1; - if ( yy_accept[yy_current_state] ) - { - (yy_last_accepting_state) = yy_current_state; - (yy_last_accepting_cpos) = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 67 ) - yy_c = yy_meta[yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 66); - - return yy_is_jam ? 0 : yy_current_state; -} - -#ifndef YY_NO_UNPUT - - static void yyunput (int c, char * yy_bp ) -{ - char *yy_cp; - - yy_cp = (yy_c_buf_p); - - /* undo effects of setting up yytext */ - *yy_cp = (yy_hold_char); - - if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) - { /* need to shift things up to make room */ - /* +2 for EOB chars. */ - int number_to_move = (yy_n_chars) + 2; - char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ - YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; - char *source = - &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; - - while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) - *--dest = *--source; - - yy_cp += (int) (dest - source); - yy_bp += (int) (dest - source); - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = - (yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size; - - if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) - YY_FATAL_ERROR( "flex scanner push-back overflow" ); - } - - *--yy_cp = (char) c; - - (yytext_ptr) = yy_bp; - (yy_hold_char) = *yy_cp; - (yy_c_buf_p) = yy_cp; -} - -#endif -#ifndef YY_NO_INPUT -#ifdef __cplusplus - static int yyinput (void) -#else - static int input (void) -#endif - - -{ - int c; - - *(yy_c_buf_p) = (yy_hold_char); - - if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) - { - /* yy_c_buf_p now points to the character we want to return. - * If this occurs *before* the EOB characters, then it's a - * valid NUL; if not, then we've hit the end of the buffer. - */ - if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) - /* This was really a NUL. */ - *(yy_c_buf_p) = '\0'; - - else - { /* need more input */ - int offset = (int) ((yy_c_buf_p) - (yytext_ptr)); - ++(yy_c_buf_p); - - switch ( yy_get_next_buffer( ) ) - { - case EOB_ACT_LAST_MATCH: - /* This happens because yy_g_n_b() - * sees that we've accumulated a - * token and flags that we need to - * try matching the token before - * proceeding. But for input(), - * there's no matching to consider. - * So convert the EOB_ACT_LAST_MATCH - * to EOB_ACT_END_OF_FILE. - */ - - /* Reset buffer status. */ - yyrestart( yyin ); - - /*FALLTHROUGH*/ - - case EOB_ACT_END_OF_FILE: - { - if ( yywrap( ) ) - return 0; - - if ( ! (yy_did_buffer_switch_on_eof) ) - YY_NEW_FILE; -#ifdef __cplusplus - return yyinput(); -#else - return input(); -#endif - } - - case EOB_ACT_CONTINUE_SCAN: - (yy_c_buf_p) = (yytext_ptr) + offset; - break; - } - } - } - - c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ - *(yy_c_buf_p) = '\0'; /* preserve yytext */ - (yy_hold_char) = *++(yy_c_buf_p); - - YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n'); - - return c; -} -#endif /* ifndef YY_NO_INPUT */ - -/** Immediately switch to a different input stream. - * @param input_file A readable stream. - * - * @note This function does not reset the start condition to @c INITIAL . - */ - void yyrestart (FILE * input_file ) -{ - - if ( ! YY_CURRENT_BUFFER ){ - yyensure_buffer_stack (); - YY_CURRENT_BUFFER_LVALUE = - yy_create_buffer( yyin, YY_BUF_SIZE ); - } - - yy_init_buffer( YY_CURRENT_BUFFER, input_file ); - yy_load_buffer_state( ); -} - -/** Switch to a different input buffer. - * @param new_buffer The new input buffer. - * - */ - void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ) -{ - - /* TODO. We should be able to replace this entire function body - * with - * yypop_buffer_state(); - * yypush_buffer_state(new_buffer); - */ - yyensure_buffer_stack (); - if ( YY_CURRENT_BUFFER == new_buffer ) - return; - - if ( YY_CURRENT_BUFFER ) - { - /* Flush out information for old buffer. */ - *(yy_c_buf_p) = (yy_hold_char); - YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); - } - - YY_CURRENT_BUFFER_LVALUE = new_buffer; - yy_load_buffer_state( ); - - /* We don't actually know whether we did this switch during - * EOF (yywrap()) processing, but the only time this flag - * is looked at is after yywrap() is called, so it's safe - * to go ahead and always set it. - */ - (yy_did_buffer_switch_on_eof) = 1; -} - -static void yy_load_buffer_state (void) -{ - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; - yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; - (yy_hold_char) = *(yy_c_buf_p); -} - -/** Allocate and initialize an input buffer state. - * @param file A readable stream. - * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. - * - * @return the allocated buffer state. - */ - YY_BUFFER_STATE yy_create_buffer (FILE * file, int size ) -{ - YY_BUFFER_STATE b; - - b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); - if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); - - b->yy_buf_size = size; - - /* yy_ch_buf has to be 2 characters longer than the size given because - * we need to put in 2 end-of-buffer characters. - */ - b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) ); - if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); - - b->yy_is_our_buffer = 1; - - yy_init_buffer( b, file ); - - return b; -} - -/** Destroy the buffer. - * @param b a buffer created with yy_create_buffer() - * - */ - void yy_delete_buffer (YY_BUFFER_STATE b ) -{ - - if ( ! b ) - return; - - if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ - YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; - - if ( b->yy_is_our_buffer ) - yyfree( (void *) b->yy_ch_buf ); - - yyfree( (void *) b ); -} - -/* Initializes or reinitializes a buffer. - * This function is sometimes called more than once on the same buffer, - * such as during a yyrestart() or at EOF. - */ - static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file ) - -{ - int oerrno = errno; - - yy_flush_buffer( b ); - - b->yy_input_file = file; - b->yy_fill_buffer = 1; - - /* If b is the current buffer, then yy_init_buffer was _probably_ - * called from yyrestart() or through yy_get_next_buffer. - * In that case, we don't want to reset the lineno or column. - */ - if (b != YY_CURRENT_BUFFER){ - b->yy_bs_lineno = 1; - b->yy_bs_column = 0; - } - - b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; - - errno = oerrno; -} - -/** Discard all buffered characters. On the next scan, YY_INPUT will be called. - * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. - * - */ - void yy_flush_buffer (YY_BUFFER_STATE b ) -{ - if ( ! b ) - return; - - b->yy_n_chars = 0; - - /* We always need two end-of-buffer characters. The first causes - * a transition to the end-of-buffer state. The second causes - * a jam in that state. - */ - b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; - b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; - - b->yy_buf_pos = &b->yy_ch_buf[0]; - - b->yy_at_bol = 1; - b->yy_buffer_status = YY_BUFFER_NEW; - - if ( b == YY_CURRENT_BUFFER ) - yy_load_buffer_state( ); -} - -/** Pushes the new state onto the stack. The new state becomes - * the current state. This function will allocate the stack - * if necessary. - * @param new_buffer The new state. - * - */ -void yypush_buffer_state (YY_BUFFER_STATE new_buffer ) -{ - if (new_buffer == NULL) - return; - - yyensure_buffer_stack(); - - /* This block is copied from yy_switch_to_buffer. */ - if ( YY_CURRENT_BUFFER ) - { - /* Flush out information for old buffer. */ - *(yy_c_buf_p) = (yy_hold_char); - YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); - } - - /* Only push if top exists. Otherwise, replace top. */ - if (YY_CURRENT_BUFFER) - (yy_buffer_stack_top)++; - YY_CURRENT_BUFFER_LVALUE = new_buffer; - - /* copied from yy_switch_to_buffer. */ - yy_load_buffer_state( ); - (yy_did_buffer_switch_on_eof) = 1; -} - -/** Removes and deletes the top of the stack, if present. - * The next element becomes the new top. - * - */ -void yypop_buffer_state (void) -{ - if (!YY_CURRENT_BUFFER) - return; - - yy_delete_buffer(YY_CURRENT_BUFFER ); - YY_CURRENT_BUFFER_LVALUE = NULL; - if ((yy_buffer_stack_top) > 0) - --(yy_buffer_stack_top); - - if (YY_CURRENT_BUFFER) { - yy_load_buffer_state( ); - (yy_did_buffer_switch_on_eof) = 1; - } -} - -/* Allocates the stack if it does not exist. - * Guarantees space for at least one push. - */ -static void yyensure_buffer_stack (void) -{ - yy_size_t num_to_alloc; - - if (!(yy_buffer_stack)) { - - /* First allocation is just for 2 elements, since we don't know if this - * scanner will even need a stack. We use 2 instead of 1 to avoid an - * immediate realloc on the next call. - */ - num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ - (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc - (num_to_alloc * sizeof(struct yy_buffer_state*) - ); - if ( ! (yy_buffer_stack) ) - YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); - - memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - - (yy_buffer_stack_max) = num_to_alloc; - (yy_buffer_stack_top) = 0; - return; - } - - if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ - - /* Increase the buffer to prepare for a possible push. */ - yy_size_t grow_size = 8 /* arbitrary grow size */; - - num_to_alloc = (yy_buffer_stack_max) + grow_size; - (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc - ((yy_buffer_stack), - num_to_alloc * sizeof(struct yy_buffer_state*) - ); - if ( ! (yy_buffer_stack) ) - YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); - - /* zero only the new slots.*/ - memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); - (yy_buffer_stack_max) = num_to_alloc; - } -} - -/** Setup the input buffer state to scan directly from a user-specified character buffer. - * @param base the character buffer - * @param size the size in bytes of the character buffer - * - * @return the newly allocated buffer state object. - */ -YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) -{ - YY_BUFFER_STATE b; - - if ( size < 2 || - base[size-2] != YY_END_OF_BUFFER_CHAR || - base[size-1] != YY_END_OF_BUFFER_CHAR ) - /* They forgot to leave room for the EOB's. */ - return NULL; - - b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); - if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); - - b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */ - b->yy_buf_pos = b->yy_ch_buf = base; - b->yy_is_our_buffer = 0; - b->yy_input_file = NULL; - b->yy_n_chars = b->yy_buf_size; - b->yy_is_interactive = 0; - b->yy_at_bol = 1; - b->yy_fill_buffer = 0; - b->yy_buffer_status = YY_BUFFER_NEW; - - yy_switch_to_buffer( b ); - - return b; -} - -/** Setup the input buffer state to scan a string. The next call to yylex() will - * scan from a @e copy of @a str. - * @param yystr a NUL-terminated string to scan - * - * @return the newly allocated buffer state object. - * @note If you want to scan bytes that may contain NUL values, then use - * yy_scan_bytes() instead. - */ -YY_BUFFER_STATE yy_scan_string (const char * yystr ) -{ - - return yy_scan_bytes( yystr, (int) strlen(yystr) ); -} - -/** Setup the input buffer state to scan the given bytes. The next call to yylex() will - * scan from a @e copy of @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 yy_scan_bytes (const char * yybytes, int _yybytes_len ) -{ - YY_BUFFER_STATE b; - char *buf; - yy_size_t n; - int i; - - /* Get memory for full buffer, including space for trailing EOB's. */ - n = (yy_size_t) (_yybytes_len + 2); - buf = (char *) yyalloc( n ); - if ( ! buf ) - YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); - - for ( i = 0; i < _yybytes_len; ++i ) - buf[i] = yybytes[i]; - - buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; - - b = yy_scan_buffer( buf, n ); - if ( ! b ) - YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); - - /* It's okay to grow etc. this buffer, and we should throw it - * away when we're done. - */ - b->yy_is_our_buffer = 1; - - return b; -} - -#ifndef YY_EXIT_FAILURE -#define YY_EXIT_FAILURE 2 -#endif - -static void yynoreturn yy_fatal_error (const char* msg ) -{ - fprintf( stderr, "%s\n", msg ); - exit( YY_EXIT_FAILURE ); -} - -/* Redefine yyless() so it works in section 3 code. */ - -#undef yyless -#define yyless(n) \ - do \ - { \ - /* Undo effects of setting up yytext. */ \ - int yyless_macro_arg = (n); \ - YY_LESS_LINENO(yyless_macro_arg);\ - yytext[yyleng] = (yy_hold_char); \ - (yy_c_buf_p) = yytext + yyless_macro_arg; \ - (yy_hold_char) = *(yy_c_buf_p); \ - *(yy_c_buf_p) = '\0'; \ - yyleng = yyless_macro_arg; \ - } \ - while ( 0 ) - -/* Accessor methods (get/set functions) to struct members. */ - -/** Get the current line number. - * - */ -int yyget_lineno (void) -{ - - return yylineno; -} - -/** Get the input stream. - * - */ -FILE *yyget_in (void) -{ - return yyin; -} - -/** Get the output stream. - * - */ -FILE *yyget_out (void) -{ - return yyout; -} - -/** Get the length of the current token. - * - */ -int yyget_leng (void) -{ - return yyleng; -} - -/** Get the current token. - * - */ - -char *yyget_text (void) -{ - return yytext; -} - -/** Set the current line number. - * @param _line_number line number - * - */ -void yyset_lineno (int _line_number ) -{ - - yylineno = _line_number; -} - -/** Set the input stream. This does not discard the current - * input buffer. - * @param _in_str A readable stream. - * - * @see yy_switch_to_buffer - */ -void yyset_in (FILE * _in_str ) -{ - yyin = _in_str ; -} - -void yyset_out (FILE * _out_str ) -{ - yyout = _out_str ; -} - -int yyget_debug (void) -{ - return yy_flex_debug; -} - -void yyset_debug (int _bdebug ) -{ - yy_flex_debug = _bdebug ; -} - -static int yy_init_globals (void) -{ - /* Initialization is the same as for the non-reentrant scanner. - * This function is called from yylex_destroy(), so don't allocate here. - */ - - (yy_buffer_stack) = NULL; - (yy_buffer_stack_top) = 0; - (yy_buffer_stack_max) = 0; - (yy_c_buf_p) = NULL; - (yy_init) = 0; - (yy_start) = 0; - -/* Defined in main.c */ -#ifdef YY_STDINIT - yyin = stdin; - yyout = stdout; -#else - yyin = NULL; - yyout = NULL; -#endif - - /* For future reference: Set errno on error, since we are called by - * yylex_init() - */ - return 0; -} - -/* yylex_destroy is for both reentrant and non-reentrant scanners. */ -int yylex_destroy (void) -{ - - /* Pop the buffer stack, destroying each element. */ - while(YY_CURRENT_BUFFER){ - yy_delete_buffer( YY_CURRENT_BUFFER ); - YY_CURRENT_BUFFER_LVALUE = NULL; - yypop_buffer_state(); - } - - /* Destroy the stack itself. */ - yyfree((yy_buffer_stack) ); - (yy_buffer_stack) = NULL; - - /* Reset the globals. This is important in a non-reentrant scanner so the next time - * yylex() is called, initialization will occur. */ - yy_init_globals( ); - - return 0; -} - -/* - * Internal utility routines. - */ - -#ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, const char * s2, int n ) -{ - - int i; - for ( i = 0; i < n; ++i ) - s1[i] = s2[i]; -} -#endif - -#ifdef YY_NEED_STRLEN -static int yy_flex_strlen (const char * s ) -{ - int n; - for ( n = 0; s[n]; ++n ) - ; - - return n; -} -#endif - -void *yyalloc (yy_size_t size ) -{ - return malloc(size); -} - -void *yyrealloc (void * ptr, yy_size_t size ) -{ - - /* The cast to (char *) in the following accommodates both - * implementations that use char* generic pointers, and those - * that use void* generic pointers. It works with the latter - * because both ANSI C and C++ allow castless assignment from - * any pointer type to void*, and deal with argument conversions - * as though doing an assignment. - */ - return realloc(ptr, size); -} - -void yyfree (void * ptr ) -{ - free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ -} - -#define YYTABLES_NAME "yytables" - -#line 34 "RdPMonteur.l" - - diff --git a/parser/RdPMonteur.lex.d b/parser/RdPMonteur.lex.d deleted file mode 100644 index bb6f655..0000000 --- a/parser/RdPMonteur.lex.d +++ /dev/null @@ -1,71 +0,0 @@ -RdPMonteur.lex.o RdPMonteur.lex.d : RdPMonteur.lex.c /usr/include/stdc-predef.h \ - /usr/include/stdio.h \ - /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ - /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ - /usr/include/x86_64-linux-gnu/bits/wordsize.h \ - /usr/include/x86_64-linux-gnu/bits/long-double.h \ - /usr/include/x86_64-linux-gnu/gnu/stubs.h \ - /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ - /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ - /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ - /usr/include/x86_64-linux-gnu/bits/types.h \ - /usr/include/x86_64-linux-gnu/bits/timesize.h \ - /usr/include/x86_64-linux-gnu/bits/typesizes.h \ - /usr/include/x86_64-linux-gnu/bits/time64.h \ - /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ - /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ - /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ - /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ - /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ - /usr/include/x86_64-linux-gnu/bits/stdio.h \ - /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/string.h \ - /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ - /usr/include/strings.h \ - /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ - /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ - /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \ - /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \ - /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ - /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ - /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ - /usr/include/x86_64-linux-gnu/bits/floatn.h \ - /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ - /usr/include/x86_64-linux-gnu/sys/types.h \ - /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ - /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ - /usr/include/x86_64-linux-gnu/bits/endian.h \ - /usr/include/x86_64-linux-gnu/bits/endianness.h \ - /usr/include/x86_64-linux-gnu/bits/byteswap.h \ - /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ - /usr/include/x86_64-linux-gnu/sys/select.h \ - /usr/include/x86_64-linux-gnu/bits/select.h \ - /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ - /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ - /usr/include/x86_64-linux-gnu/bits/select2.h \ - /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ - /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ - /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ - /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ - /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ - /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ - /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ - /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/inttypes.h \ - /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h /usr/include/stdint.h \ - /usr/include/x86_64-linux-gnu/bits/wchar.h \ - /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h RdPMonteur.tab.h \ - /usr/include/unistd.h /usr/include/x86_64-linux-gnu/bits/posix_opt.h \ - /usr/include/x86_64-linux-gnu/bits/environments.h \ - /usr/include/x86_64-linux-gnu/bits/confname.h \ - /usr/include/x86_64-linux-gnu/bits/getopt_posix.h \ - /usr/include/x86_64-linux-gnu/bits/getopt_core.h \ - /usr/include/x86_64-linux-gnu/bits/unistd.h \ - /usr/include/x86_64-linux-gnu/bits/unistd_ext.h diff --git a/parser/RdPMonteur.lex.o b/parser/RdPMonteur.lex.o deleted file mode 100644 index 3aa2c3c2b079ab5ec229e7e4c4ed8abaf513ab6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24744 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 diff --git a/parser/RdPMonteur.tab.cpp b/parser/RdPMonteur.tab.cpp deleted file mode 100644 index 70f4983..0000000 --- a/parser/RdPMonteur.tab.cpp +++ /dev/null @@ -1,1811 +0,0 @@ -/* A Bison parser, made by GNU Bison 3.5.1. */ - -/* Bison implementation for Yacc-like parsers in C - - Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 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 - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. */ - -/* As a special exception, you may create a larger work that contains - part or all of the Bison parser skeleton and distribute that work - under terms of your choice, so long as that work isn't itself a - parser generator using the skeleton or a modified version thereof - as a parser skeleton. Alternatively, if you modify or redistribute - the parser skeleton itself, you may (at your option) remove this - special exception, which will cause the skeleton and the resulting - Bison output files to be licensed under the GNU General Public - License without this special exception. - - This special exception was added by the Free Software Foundation in - version 2.2 of Bison. */ - -/* C LALR(1) parser skeleton written by Richard Stallman, by - simplifying the original so-called "semantic" parser. */ - -/* All symbols defined below should begin with yy or YY, to avoid - infringing on user name space. This should be done even for local - variables, as they might otherwise be expanded by user macros. - There are some unavoidable exceptions within include files to - define necessary library symbols; they are noted "INFRINGES ON - USER NAME SPACE" below. */ - -/* Undocumented macros, especially those whose name start with YY_, - are private implementation details. Do not rely on them. */ - -/* Identify Bison output. */ -#define YYBISON 1 - -/* Bison version. */ -#define YYBISON_VERSION "3.5.1" - -/* Skeleton name. */ -#define YYSKELETON_NAME "yacc.c" - -/* Pure parsers. */ -#define YYPURE 0 - -/* Push parsers. */ -#define YYPUSH 0 - -/* Pull parsers. */ -#define YYPULL 1 - - - - -/* First part of user prologue. */ -#line 1 "RdPMonteur.y" - - -/* .......... Declarations C ........*/ - - //#include <stdio.h> -#include <string> - //#include <iostream> -#include <stdio.h> -#include "RdPMonteur.h" - -static RdPMonteur *R; -static string t; - -extern FILE *yyin; -extern char yytext[]; - -/*........... Code C additionnel ....*/ -extern "C" { - int yylex(); - int yyerror(const char* s){ - printf("parsing error\n"); - return (1); - } - - int yywrap(){ - return (1); - } -} - - -#line 101 "RdPMonteur.tab.c" - -# ifndef YY_CAST -# ifdef __cplusplus -# define YY_CAST(Type, Val) static_cast<Type> (Val) -# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val) -# else -# define YY_CAST(Type, Val) ((Type) (Val)) -# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) -# endif -# endif -# ifndef YY_NULLPTR -# if defined __cplusplus -# if 201103L <= __cplusplus -# define YY_NULLPTR nullptr -# else -# define YY_NULLPTR 0 -# endif -# else -# define YY_NULLPTR ((void*)0) -# endif -# endif - -/* Enabling verbose error messages. */ -#ifdef YYERROR_VERBOSE -# undef YYERROR_VERBOSE -# define YYERROR_VERBOSE 1 -#else -# define YYERROR_VERBOSE 0 -#endif - -/* Use api.header.include to #include this header - instead of duplicating it here. */ -#ifndef YY_YY_RDPMONTEUR_TAB_H_INCLUDED -# define YY_YY_RDPMONTEUR_TAB_H_INCLUDED -/* Debug traces. */ -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif -#if YYDEBUG -extern int yydebug; -#endif - -/* Token type. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - enum yytokentype - { - IN = 258, - OUT = 259, - MK = 260, - CP = 261, - PLACE = 262, - QUEUE = 263, - TRANS = 264, - ENDTR = 265, - TOKEN = 266, - RESET = 267, - LOSS = 268, - INHIBITOR = 269, - ENTIER = 270, - VARIABLE = 271 - }; -#endif - -/* Value type. */ -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -union YYSTYPE -{ -#line 33 "RdPMonteur.y" - - int i; - char *s; - -#line 175 "RdPMonteur.tab.c" - -}; -typedef union YYSTYPE YYSTYPE; -# define YYSTYPE_IS_TRIVIAL 1 -# define YYSTYPE_IS_DECLARED 1 -#endif - - -extern YYSTYPE yylval; - -int yyparse (void); - -#endif /* !YY_YY_RDPMONTEUR_TAB_H_INCLUDED */ - - - -#ifdef short -# undef short -#endif - -/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure - <limits.h> and (if available) <stdint.h> are included - so that the code can choose integer types of a good width. */ - -#ifndef __PTRDIFF_MAX__ -# include <limits.h> /* INFRINGES ON USER NAME SPACE */ -# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ -# include <stdint.h> /* INFRINGES ON USER NAME SPACE */ -# define YY_STDINT_H -# endif -#endif - -/* Narrow types that promote to a signed type and that can represent a - signed or unsigned integer of at least N bits. In tables they can - save space and decrease cache pressure. Promoting to a signed type - helps avoid bugs in integer arithmetic. */ - -#ifdef __INT_LEAST8_MAX__ -typedef __INT_LEAST8_TYPE__ yytype_int8; -#elif defined YY_STDINT_H -typedef int_least8_t yytype_int8; -#else -typedef signed char yytype_int8; -#endif - -#ifdef __INT_LEAST16_MAX__ -typedef __INT_LEAST16_TYPE__ yytype_int16; -#elif defined YY_STDINT_H -typedef int_least16_t yytype_int16; -#else -typedef short yytype_int16; -#endif - -#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__ -typedef __UINT_LEAST8_TYPE__ yytype_uint8; -#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \ - && UINT_LEAST8_MAX <= INT_MAX) -typedef uint_least8_t yytype_uint8; -#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX -typedef unsigned char yytype_uint8; -#else -typedef short yytype_uint8; -#endif - -#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__ -typedef __UINT_LEAST16_TYPE__ yytype_uint16; -#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \ - && UINT_LEAST16_MAX <= INT_MAX) -typedef uint_least16_t yytype_uint16; -#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX -typedef unsigned short yytype_uint16; -#else -typedef int yytype_uint16; -#endif - -#ifndef YYPTRDIFF_T -# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__ -# define YYPTRDIFF_T __PTRDIFF_TYPE__ -# define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__ -# elif defined PTRDIFF_MAX -# ifndef ptrdiff_t -# include <stddef.h> /* INFRINGES ON USER NAME SPACE */ -# endif -# define YYPTRDIFF_T ptrdiff_t -# define YYPTRDIFF_MAXIMUM PTRDIFF_MAX -# else -# define YYPTRDIFF_T long -# define YYPTRDIFF_MAXIMUM LONG_MAX -# endif -#endif - -#ifndef YYSIZE_T -# ifdef __SIZE_TYPE__ -# define YYSIZE_T __SIZE_TYPE__ -# elif defined size_t -# define YYSIZE_T size_t -# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ -# include <stddef.h> /* INFRINGES ON USER NAME SPACE */ -# define YYSIZE_T size_t -# else -# define YYSIZE_T unsigned -# endif -#endif - -#define YYSIZE_MAXIMUM \ - YY_CAST (YYPTRDIFF_T, \ - (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \ - ? YYPTRDIFF_MAXIMUM \ - : YY_CAST (YYSIZE_T, -1))) - -#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X)) - -/* Stored state numbers (used for stacks). */ -typedef yytype_int8 yy_state_t; - -/* State numbers in computations. */ -typedef int yy_state_fast_t; - -#ifndef YY_ -# if defined YYENABLE_NLS && YYENABLE_NLS -# if ENABLE_NLS -# include <libintl.h> /* INFRINGES ON USER NAME SPACE */ -# define YY_(Msgid) dgettext ("bison-runtime", Msgid) -# endif -# endif -# ifndef YY_ -# define YY_(Msgid) Msgid -# endif -#endif - -#ifndef YY_ATTRIBUTE_PURE -# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) -# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) -# else -# define YY_ATTRIBUTE_PURE -# endif -#endif - -#ifndef YY_ATTRIBUTE_UNUSED -# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) -# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) -# else -# define YY_ATTRIBUTE_UNUSED -# endif -#endif - -/* Suppress unused-variable warnings by "using" E. */ -#if ! defined lint || defined __GNUC__ -# define YYUSE(E) ((void) (E)) -#else -# define YYUSE(E) /* empty */ -#endif - -#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ -/* Suppress an incorrect diagnostic about yylval being uninitialized. */ -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ - _Pragma ("GCC diagnostic push") \ - _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ - _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") -# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ - _Pragma ("GCC diagnostic pop") -#else -# define YY_INITIAL_VALUE(Value) Value -#endif -#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN -# define YY_IGNORE_MAYBE_UNINITIALIZED_END -#endif -#ifndef YY_INITIAL_VALUE -# define YY_INITIAL_VALUE(Value) /* Nothing. */ -#endif - -#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ -# define YY_IGNORE_USELESS_CAST_BEGIN \ - _Pragma ("GCC diagnostic push") \ - _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") -# define YY_IGNORE_USELESS_CAST_END \ - _Pragma ("GCC diagnostic pop") -#endif -#ifndef YY_IGNORE_USELESS_CAST_BEGIN -# define YY_IGNORE_USELESS_CAST_BEGIN -# define YY_IGNORE_USELESS_CAST_END -#endif - - -#define YY_ASSERT(E) ((void) (0 && (E))) - -#if ! defined yyoverflow || YYERROR_VERBOSE - -/* The parser invokes alloca or malloc; define the necessary symbols. */ - -# ifdef YYSTACK_USE_ALLOCA -# if YYSTACK_USE_ALLOCA -# ifdef __GNUC__ -# define YYSTACK_ALLOC __builtin_alloca -# elif defined __BUILTIN_VA_ARG_INCR -# include <alloca.h> /* INFRINGES ON USER NAME SPACE */ -# elif defined _AIX -# define YYSTACK_ALLOC __alloca -# elif defined _MSC_VER -# include <malloc.h> /* INFRINGES ON USER NAME SPACE */ -# define alloca _alloca -# else -# define YYSTACK_ALLOC alloca -# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS -# 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 -# endif -# endif -# endif -# endif - -# ifdef YYSTACK_ALLOC - /* Pacify GCC's 'empty if-body' warning. */ -# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) -# ifndef YYSTACK_ALLOC_MAXIMUM - /* The OS might guarantee only one guard page at the bottom of the stack, - and a page size can be as small as 4096 bytes. So we cannot safely - invoke alloca (N) if N exceeds 4096. Use a slightly smaller number - to allow for a few compiler-allocated temporary stack slots. */ -# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ -# endif -# else -# define YYSTACK_ALLOC YYMALLOC -# define YYSTACK_FREE YYFREE -# ifndef YYSTACK_ALLOC_MAXIMUM -# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM -# endif -# if (defined __cplusplus && ! defined EXIT_SUCCESS \ - && ! ((defined YYMALLOC || defined malloc) \ - && (defined YYFREE || defined free))) -# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ -# ifndef EXIT_SUCCESS -# define EXIT_SUCCESS 0 -# endif -# endif -# ifndef YYMALLOC -# define YYMALLOC malloc -# if ! defined malloc && ! defined EXIT_SUCCESS -void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ -# endif -# endif -# ifndef YYFREE -# define YYFREE free -# if ! defined free && ! defined EXIT_SUCCESS -void free (void *); /* INFRINGES ON USER NAME SPACE */ -# endif -# endif -# endif -#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ - - -#if (! defined yyoverflow \ - && (! defined __cplusplus \ - || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) - -/* A type that is properly aligned for any stack member. */ -union yyalloc -{ - yy_state_t yyss_alloc; - YYSTYPE yyvs_alloc; -}; - -/* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1) - -/* The size of an array large to enough to hold all stacks, each with - N elements. */ -# define YYSTACK_BYTES(N) \ - ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \ - + YYSTACK_GAP_MAXIMUM) - -# define YYCOPY_NEEDED 1 - -/* Relocate STACK from its old location to the new one. The - local variables YYSIZE and YYSTACKSIZE give the old and new number of - elements in the stack, and YYPTR gives the new location of the - stack. Advance YYPTR to a properly aligned location for the next - stack. */ -# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ - do \ - { \ - YYPTRDIFF_T yynewbytes; \ - YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ - Stack = &yyptr->Stack_alloc; \ - yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / YYSIZEOF (*yyptr); \ - } \ - while (0) - -#endif - -#if defined YYCOPY_NEEDED && YYCOPY_NEEDED -/* Copy COUNT objects from SRC to DST. The source and destination do - not overlap. */ -# ifndef YYCOPY -# if defined __GNUC__ && 1 < __GNUC__ -# define YYCOPY(Dst, Src, Count) \ - __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src))) -# else -# define YYCOPY(Dst, Src, Count) \ - do \ - { \ - YYPTRDIFF_T yyi; \ - for (yyi = 0; yyi < (Count); yyi++) \ - (Dst)[yyi] = (Src)[yyi]; \ - } \ - while (0) -# endif -# endif -#endif /* !YYCOPY_NEEDED */ - -/* YYFINAL -- State number of the termination state. */ -#define YYFINAL 13 -/* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 73 - -/* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 25 -/* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 12 -/* YYNRULES -- Number of rules. */ -#define YYNRULES 30 -/* YYNSTATES -- Number of states. */ -#define YYNSTATES 71 - -#define YYUNDEFTOK 2 -#define YYMAXUTOK 271 - - -/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM - as returned by yylex, with out-of-bounds checking. */ -#define YYTRANSLATE(YYX) \ - (0 <= (YYX) && (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) - -/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM - as returned by yylex. */ -static const yytype_int8 yytranslate[] = -{ - 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 17, 18, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 21, 22, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 23, 2, 24, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 19, 2, 20, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16 -}; - -#if YYDEBUG - /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ -static const yytype_uint8 yyrline[] = -{ - 0, 53, 53, 53, 56, 56, 56, 63, 70, 77, - 84, 91, 104, 111, 118, 125, 132, 144, 154, 160, - 161, 167, 168, 175, 182, 210, 213, 220, 234, 237, - 239 -}; -#endif - -#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", "IN", "OUT", "MK", "CP", "PLACE", - "QUEUE", "TRANS", "ENDTR", "TOKEN", "RESET", "LOSS", "INHIBITOR", - "ENTIER", "VARIABLE", "'('", "')'", "'{'", "'}'", "':'", "';'", "'['", - "']'", "$accept", "reseau", "noeud", "place", "queue", "nomtransition", - "transition", "entree", "sortie", "listearcin", "listearcout", - "marquage", YY_NULLPTR -}; -#endif - -# ifdef YYPRINT -/* YYTOKNUM[NUM] -- (External) token number corresponding to the - (internal) symbol number NUM (which must be that of a token). */ -static const yytype_int16 yytoknum[] = -{ - 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 40, 41, 123, - 125, 58, 59, 91, 93 -}; -# endif - -#define YYPACT_NINF (-40) - -#define yypact_value_is_default(Yyn) \ - ((Yyn) == YYPACT_NINF) - -#define YYTABLE_NINF (-1) - -#define yytable_value_is_error(Yyn) \ - 0 - - /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - STATE-NUM. */ -static const yytype_int8 yypact[] = -{ - 20, -13, -8, 14, 2, -40, -40, -40, 15, -40, - 19, 1, -40, -40, -40, 12, 17, 16, 18, 21, - 26, -40, 22, 24, 5, 25, 27, 28, 3, -40, - -40, -40, 32, 29, 30, 31, 35, 23, -40, 6, - -40, 33, 41, 38, 34, -11, 36, -40, 37, 39, - -40, -40, 40, 42, -10, 43, 5, 13, -40, 44, - 45, 47, 48, 46, 49, -40, -40, -40, -40, 50, - -40 -}; - - /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. - Performed when YYTABLE does not specify something else to do. Zero - means the default is an error. */ -static const yytype_int8 yydefact[] = -{ - 0, 0, 0, 0, 0, 2, 4, 5, 20, 6, - 7, 12, 17, 1, 3, 0, 22, 0, 0, 0, - 14, 25, 0, 0, 0, 0, 0, 0, 0, 28, - 18, 29, 0, 0, 0, 0, 0, 0, 19, 0, - 30, 8, 9, 13, 0, 0, 0, 21, 0, 0, - 16, 15, 0, 0, 0, 0, 0, 0, 23, 0, - 0, 0, 0, 0, 0, 26, 10, 11, 24, 0, - 27 -}; - - /* YYPGOTO[NTERM-NUM]. */ -static const yytype_int8 yypgoto[] = -{ - -40, -40, 56, -40, -40, -40, -40, -40, -40, -40, - -40, -39 -}; - - /* YYDEFGOTO[NTERM-NUM]. */ -static const yytype_int8 yydefgoto[] = -{ - -1, 4, 5, 6, 7, 8, 9, 16, 23, 28, - 39, 33 -}; - - /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If - positive, shift that token. If negative, reduce the rule whose - number is the opposite. If YYTABLE_NINF, syntax error. */ -static const yytype_int8 yytable[] = -{ - 31, 31, 13, 10, 32, 32, 53, 19, 11, 1, - 2, 3, 52, 59, 20, 60, 31, 62, 15, 37, - 32, 22, 46, 38, 17, 18, 47, 1, 2, 3, - 12, 21, 27, 24, 30, 25, 0, 63, 26, 48, - 34, 29, 35, 40, 45, 36, 49, 41, 42, 43, - 44, 50, 51, 0, 55, 57, 56, 54, 61, 64, - 14, 0, 0, 0, 58, 66, 67, 65, 68, 0, - 0, 0, 70, 69 -}; - -static const yytype_int8 yycheck[] = -{ - 11, 11, 0, 16, 15, 15, 45, 6, 16, 7, - 8, 9, 23, 23, 13, 54, 11, 56, 3, 16, - 15, 4, 16, 20, 5, 6, 20, 7, 8, 9, - 16, 19, 6, 17, 10, 17, -1, 24, 17, 6, - 15, 19, 15, 11, 21, 17, 5, 18, 18, 18, - 15, 13, 18, -1, 17, 15, 17, 21, 15, 15, - 4, -1, -1, -1, 22, 18, 18, 22, 22, -1, - -1, -1, 22, 24 -}; - - /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing - symbol of state STATE-NUM. */ -static const yytype_int8 yystos[] = -{ - 0, 7, 8, 9, 26, 27, 28, 29, 30, 31, - 16, 16, 16, 0, 27, 3, 32, 5, 6, 6, - 13, 19, 4, 33, 17, 17, 17, 6, 34, 19, - 10, 11, 15, 36, 15, 15, 17, 16, 20, 35, - 11, 18, 18, 18, 15, 21, 16, 20, 6, 5, - 13, 18, 23, 36, 21, 17, 17, 15, 22, 23, - 36, 15, 36, 24, 15, 22, 18, 18, 22, 24, - 22 -}; - - /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_int8 yyr1[] = -{ - 0, 25, 26, 26, 27, 27, 27, 28, 28, 28, - 28, 28, 29, 29, 29, 29, 29, 30, 31, 32, - 32, 33, 33, 34, 34, 34, 35, 35, 35, 36, - 36 -}; - - /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ -static const yytype_int8 yyr2[] = -{ - 0, 2, 1, 2, 1, 1, 1, 2, 6, 6, - 10, 10, 2, 6, 3, 7, 7, 2, 4, 4, - 0, 4, 0, 5, 7, 0, 5, 7, 0, 1, - 2 -}; - - -#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 yyerrorlab - - -#define YYRECOVERING() (!!yyerrstatus) - -#define YYBACKUP(Token, Value) \ - do \ - if (yychar == YYEMPTY) \ - { \ - yychar = (Token); \ - yylval = (Value); \ - YYPOPSTACK (yylen); \ - yystate = *yyssp; \ - goto yybackup; \ - } \ - else \ - { \ - yyerror (YY_("syntax error: cannot back up")); \ - YYERROR; \ - } \ - while (0) - -/* Error token number */ -#define YYTERROR 1 -#define YYERRCODE 256 - - - -/* Enable debugging if requested. */ -#if YYDEBUG - -# ifndef YYFPRINTF -# include <stdio.h> /* INFRINGES ON USER NAME SPACE */ -# define YYFPRINTF fprintf -# endif - -# define YYDPRINTF(Args) \ -do { \ - if (yydebug) \ - YYFPRINTF Args; \ -} while (0) - -/* This macro is provided for backward compatibility. */ -#ifndef YY_LOCATION_PRINT -# define YY_LOCATION_PRINT(File, Loc) ((void) 0) -#endif - - -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ -do { \ - if (yydebug) \ - { \ - YYFPRINTF (stderr, "%s ", Title); \ - yy_symbol_print (stderr, \ - Type, Value); \ - YYFPRINTF (stderr, "\n"); \ - } \ -} while (0) - - -/*-----------------------------------. -| Print this symbol's value on YYO. | -`-----------------------------------*/ - -static void -yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep) -{ - FILE *yyoutput = yyo; - YYUSE (yyoutput); - if (!yyvaluep) - return; -# ifdef YYPRINT - if (yytype < YYNTOKENS) - YYPRINT (yyo, yytoknum[yytype], *yyvaluep); -# endif - YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - YYUSE (yytype); - YY_IGNORE_MAYBE_UNINITIALIZED_END -} - - -/*---------------------------. -| Print this symbol on YYO. | -`---------------------------*/ - -static void -yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep) -{ - YYFPRINTF (yyo, "%s %s (", - yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); - - yy_symbol_value_print (yyo, yytype, yyvaluep); - YYFPRINTF (yyo, ")"); -} - -/*------------------------------------------------------------------. -| yy_stack_print -- Print the state stack from its BOTTOM up to its | -| TOP (included). | -`------------------------------------------------------------------*/ - -static void -yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop) -{ - YYFPRINTF (stderr, "Stack now"); - for (; yybottom <= yytop; yybottom++) - { - int yybot = *yybottom; - YYFPRINTF (stderr, " %d", yybot); - } - YYFPRINTF (stderr, "\n"); -} - -# define YY_STACK_PRINT(Bottom, Top) \ -do { \ - if (yydebug) \ - yy_stack_print ((Bottom), (Top)); \ -} while (0) - - -/*------------------------------------------------. -| Report that the YYRULE is going to be reduced. | -`------------------------------------------------*/ - -static void -yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, int yyrule) -{ - int yylno = yyrline[yyrule]; - int yynrhs = yyr2[yyrule]; - int yyi; - YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n", - yyrule - 1, yylno); - /* The symbols being reduced. */ - for (yyi = 0; yyi < yynrhs; yyi++) - { - YYFPRINTF (stderr, " $%d = ", yyi + 1); - yy_symbol_print (stderr, - yystos[+yyssp[yyi + 1 - yynrhs]], - &yyvsp[(yyi + 1) - (yynrhs)] - ); - YYFPRINTF (stderr, "\n"); - } -} - -# define YY_REDUCE_PRINT(Rule) \ -do { \ - if (yydebug) \ - yy_reduce_print (yyssp, yyvsp, Rule); \ -} while (0) - -/* Nonzero means print parse trace. It is left uninitialized so that - multiple parsers can coexist. */ -int yydebug; -#else /* !YYDEBUG */ -# define YYDPRINTF(Args) -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) -# define YY_STACK_PRINT(Bottom, Top) -# define YY_REDUCE_PRINT(Rule) -#endif /* !YYDEBUG */ - - -/* YYINITDEPTH -- initial size of the parser's stacks. */ -#ifndef YYINITDEPTH -# define YYINITDEPTH 200 -#endif - -/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only - if the built-in stack extension method is used). - - Do not make this value too large; the results are undefined if - YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) - evaluated with infinite-precision integer arithmetic. */ - -#ifndef YYMAXDEPTH -# define YYMAXDEPTH 10000 -#endif - - -#if YYERROR_VERBOSE - -# ifndef yystrlen -# if defined __GLIBC__ && defined _STRING_H -# define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S))) -# else -/* Return the length of YYSTR. */ -static YYPTRDIFF_T -yystrlen (const char *yystr) -{ - YYPTRDIFF_T yylen; - for (yylen = 0; yystr[yylen]; yylen++) - continue; - return yylen; -} -# endif -# endif - -# ifndef yystpcpy -# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE -# define yystpcpy stpcpy -# else -/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in - YYDEST. */ -static char * -yystpcpy (char *yydest, const char *yysrc) -{ - char *yyd = yydest; - const char *yys = yysrc; - - while ((*yyd++ = *yys++) != '\0') - continue; - - return yyd - 1; -} -# endif -# endif - -# ifndef yytnamerr -/* Copy to YYRES the contents of YYSTR after stripping away unnecessary - quotes and backslashes, so that it's suitable for yyerror. The - heuristic is that double-quoting is unnecessary unless the string - contains an apostrophe, a comma, or backslash (other than - backslash-backslash). YYSTR is taken from yytname. If YYRES is - null, do not copy; instead, return the length of what the result - would have been. */ -static YYPTRDIFF_T -yytnamerr (char *yyres, const char *yystr) -{ - if (*yystr == '"') - { - YYPTRDIFF_T yyn = 0; - char const *yyp = yystr; - - for (;;) - switch (*++yyp) - { - case '\'': - case ',': - goto do_not_strip_quotes; - - case '\\': - if (*++yyp != '\\') - goto do_not_strip_quotes; - else - goto append; - - append: - default: - if (yyres) - yyres[yyn] = *yyp; - yyn++; - break; - - case '"': - if (yyres) - yyres[yyn] = '\0'; - return yyn; - } - do_not_strip_quotes: ; - } - - if (yyres) - return yystpcpy (yyres, yystr) - yyres; - else - return yystrlen (yystr); -} -# endif - -/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message - about the unexpected token YYTOKEN for the state stack whose top is - YYSSP. - - Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is - not large enough to hold the message. In that case, also set - *YYMSG_ALLOC to the required number of bytes. Return 2 if the - required number of bytes is too large to store. */ -static int -yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg, - yy_state_t *yyssp, int yytoken) -{ - enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; - /* Internationalized format string. */ - const char *yyformat = YY_NULLPTR; - /* Arguments of yyformat: reported tokens (one for the "unexpected", - one per "expected"). */ - char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; - /* Actual size of YYARG. */ - int yycount = 0; - /* Cumulated lengths of YYARG. */ - YYPTRDIFF_T yysize = 0; - - /* There are many possibilities here to consider: - - If this state is a consistent state with a default action, then - the only way this function was invoked is if the default action - is an error action. In that case, don't check for expected - tokens because there are none. - - The only way there can be no lookahead present (in yychar) is if - this state is a consistent state with a default action. Thus, - detecting the absence of a lookahead is sufficient to determine - that there is no unexpected or expected token to report. In that - case, just report a simple "syntax error". - - Don't assume there isn't a lookahead just because this state is a - consistent state with a default action. There might have been a - previous inconsistent state, consistent state with a non-default - action, or user semantic action that manipulated yychar. - - Of course, the expected token list depends on states to have - correct lookahead information, and it depends on the parser not - to perform extra reductions after fetching a lookahead from the - scanner and before detecting a syntax error. Thus, state merging - (from LALR or IELR) and default reductions corrupt the expected - token list. However, the list is correct for canonical LR with - one exception: it will still contain any token that will not be - accepted due to an error action in a later state. - */ - if (yytoken != YYEMPTY) - { - int yyn = yypact[+*yyssp]; - YYPTRDIFF_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); - yysize = yysize0; - yyarg[yycount++] = yytname[yytoken]; - if (!yypact_value_is_default (yyn)) - { - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. In other words, skip the first -YYN actions for - this state because they are default actions. */ - int yyxbegin = yyn < 0 ? -yyn : 0; - /* Stay within bounds of both yycheck and yytname. */ - int yychecklim = YYLAST - yyn + 1; - int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; - int yyx; - - for (yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR - && !yytable_value_is_error (yytable[yyx + yyn])) - { - if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) - { - yycount = 1; - yysize = yysize0; - break; - } - yyarg[yycount++] = yytname[yyx]; - { - YYPTRDIFF_T yysize1 - = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); - if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) - yysize = yysize1; - else - return 2; - } - } - } - } - - switch (yycount) - { -# define YYCASE_(N, S) \ - case N: \ - yyformat = S; \ - break - default: /* Avoid compiler warnings. */ - YYCASE_(0, YY_("syntax error")); - YYCASE_(1, YY_("syntax error, unexpected %s")); - YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); - YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); - YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); - YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); -# undef YYCASE_ - } - - { - /* Don't count the "%s"s in the final size, but reserve room for - the terminator. */ - YYPTRDIFF_T yysize1 = yysize + (yystrlen (yyformat) - 2 * yycount) + 1; - if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) - yysize = yysize1; - else - return 2; - } - - if (*yymsg_alloc < yysize) - { - *yymsg_alloc = 2 * yysize; - if (! (yysize <= *yymsg_alloc - && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) - *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; - return 1; - } - - /* Avoid sprintf, as that infringes on the user's name space. - Don't have undefined behavior even if the translation - produced a string with the wrong number of "%s"s. */ - { - char *yyp = *yymsg; - int yyi = 0; - while ((*yyp = *yyformat) != '\0') - if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) - { - yyp += yytnamerr (yyp, yyarg[yyi++]); - yyformat += 2; - } - else - { - ++yyp; - ++yyformat; - } - } - return 0; -} -#endif /* YYERROR_VERBOSE */ - -/*-----------------------------------------------. -| Release the memory associated to this symbol. | -`-----------------------------------------------*/ - -static void -yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) -{ - YYUSE (yyvaluep); - if (!yymsg) - yymsg = "Deleting"; - YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); - - YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - YYUSE (yytype); - YY_IGNORE_MAYBE_UNINITIALIZED_END -} - - - - -/* The lookahead symbol. */ -int yychar; - -/* The semantic value of the lookahead symbol. */ -YYSTYPE yylval; -/* Number of syntax errors so far. */ -int yynerrs; - - -/*----------. -| yyparse. | -`----------*/ - -int -yyparse (void) -{ - yy_state_fast_t yystate; - /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; - - /* The stacks and their tools: - 'yyss': related to states. - 'yyvs': related to semantic values. - - Refer to the stacks through separate pointers, to allow yyoverflow - to reallocate them elsewhere. */ - - /* The state stack. */ - yy_state_t yyssa[YYINITDEPTH]; - yy_state_t *yyss; - yy_state_t *yyssp; - - /* The semantic value stack. */ - YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs; - YYSTYPE *yyvsp; - - YYPTRDIFF_T yystacksize; - - int yyn; - int yyresult; - /* Lookahead token as an internal (translated) token number. */ - int yytoken = 0; - /* The variables used to return semantic value and location from the - action routines. */ - YYSTYPE yyval; - -#if YYERROR_VERBOSE - /* Buffer for error messages, and its allocated size. */ - char yymsgbuf[128]; - char *yymsg = yymsgbuf; - YYPTRDIFF_T yymsg_alloc = sizeof yymsgbuf; -#endif - -#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) - - /* The number of symbols on the RHS of the reduced rule. - Keep to zero when no symbol should be popped. */ - int yylen = 0; - - yyssp = yyss = yyssa; - yyvsp = yyvs = yyvsa; - yystacksize = YYINITDEPTH; - - YYDPRINTF ((stderr, "Starting parse\n")); - - yystate = 0; - yyerrstatus = 0; - yynerrs = 0; - yychar = YYEMPTY; /* Cause a token to be read. */ - goto yysetstate; - - -/*------------------------------------------------------------. -| yynewstate -- push a new state, which is found in yystate. | -`------------------------------------------------------------*/ -yynewstate: - /* In all cases, when you get here, the value and location stacks - have just been pushed. So pushing a state here evens the stacks. */ - yyssp++; - - -/*--------------------------------------------------------------------. -| yysetstate -- set current state (the top of the stack) to yystate. | -`--------------------------------------------------------------------*/ -yysetstate: - YYDPRINTF ((stderr, "Entering state %d\n", yystate)); - YY_ASSERT (0 <= yystate && yystate < YYNSTATES); - YY_IGNORE_USELESS_CAST_BEGIN - *yyssp = YY_CAST (yy_state_t, yystate); - YY_IGNORE_USELESS_CAST_END - - if (yyss + yystacksize - 1 <= yyssp) -#if !defined yyoverflow && !defined YYSTACK_RELOCATE - goto yyexhaustedlab; -#else - { - /* Get the current used size of the three stacks, in elements. */ - YYPTRDIFF_T yysize = yyssp - yyss + 1; - -# if defined yyoverflow - { - /* Give user a chance to reallocate the stack. Use copies of - these so that the &'s don't force the real ones into - memory. */ - yy_state_t *yyss1 = yyss; - YYSTYPE *yyvs1 = yyvs; - - /* Each stack pointer address is followed by the size of the - data in use in that stack, in bytes. This used to be a - conditional around just the two extra args, but that might - be undefined if yyoverflow is a macro. */ - yyoverflow (YY_("memory exhausted"), - &yyss1, yysize * YYSIZEOF (*yyssp), - &yyvs1, yysize * YYSIZEOF (*yyvsp), - &yystacksize); - yyss = yyss1; - yyvs = yyvs1; - } -# else /* defined YYSTACK_RELOCATE */ - /* Extend the stack our own way. */ - if (YYMAXDEPTH <= yystacksize) - goto yyexhaustedlab; - yystacksize *= 2; - if (YYMAXDEPTH < yystacksize) - yystacksize = YYMAXDEPTH; - - { - yy_state_t *yyss1 = yyss; - union yyalloc *yyptr = - YY_CAST (union yyalloc *, - YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize)))); - if (! yyptr) - goto yyexhaustedlab; - YYSTACK_RELOCATE (yyss_alloc, yyss); - YYSTACK_RELOCATE (yyvs_alloc, yyvs); -# undef YYSTACK_RELOCATE - if (yyss1 != yyssa) - YYSTACK_FREE (yyss1); - } -# endif - - yyssp = yyss + yysize - 1; - yyvsp = yyvs + yysize - 1; - - YY_IGNORE_USELESS_CAST_BEGIN - YYDPRINTF ((stderr, "Stack size increased to %ld\n", - YY_CAST (long, yystacksize))); - YY_IGNORE_USELESS_CAST_END - - if (yyss + yystacksize - 1 <= yyssp) - YYABORT; - } -#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ - - if (yystate == YYFINAL) - YYACCEPT; - - goto yybackup; - - -/*-----------. -| yybackup. | -`-----------*/ -yybackup: - /* Do appropriate processing given the current state. Read a - lookahead token if we need one and don't already have one. */ - - /* First try to decide what to do without reference to lookahead token. */ - yyn = yypact[yystate]; - if (yypact_value_is_default (yyn)) - goto yydefault; - - /* Not known => get a lookahead token if don't already have one. */ - - /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ - if (yychar == YYEMPTY) - { - YYDPRINTF ((stderr, "Reading a token: ")); - yychar = yylex (); - } - - if (yychar <= YYEOF) - { - yychar = yytoken = YYEOF; - YYDPRINTF ((stderr, "Now at end of input.\n")); - } - else - { - yytoken = YYTRANSLATE (yychar); - YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); - } - - /* If the proper action on seeing token YYTOKEN is to reduce or to - detect an error, take that action. */ - yyn += yytoken; - if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) - goto yydefault; - yyn = yytable[yyn]; - if (yyn <= 0) - { - if (yytable_value_is_error (yyn)) - goto yyerrlab; - yyn = -yyn; - goto yyreduce; - } - - /* Count tokens shifted since error; after three, turn off error - status. */ - if (yyerrstatus) - yyerrstatus--; - - /* Shift the lookahead token. */ - YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - yystate = yyn; - YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - *++yyvsp = yylval; - YY_IGNORE_MAYBE_UNINITIALIZED_END - - /* Discard the shifted token. */ - yychar = YYEMPTY; - goto yynewstate; - - -/*-----------------------------------------------------------. -| yydefault -- do the default action for the current state. | -`-----------------------------------------------------------*/ -yydefault: - yyn = yydefact[yystate]; - if (yyn == 0) - goto yyerrlab; - goto yyreduce; - - -/*-----------------------------. -| yyreduce -- do a reduction. | -`-----------------------------*/ -yyreduce: - /* yyn is the number of a rule to reduce with. */ - yylen = yyr2[yyn]; - - /* If YYLEN is nonzero, implement the default value of the action: - '$$ = $1'. - - Otherwise, the following line sets YYVAL to garbage. - This behavior is undocumented and Bison - users should not rely upon it. Assigning to YYVAL - unconditionally makes the parser a bit smaller, and it avoids a - GCC warning that YYVAL may be used uninitialized. */ - yyval = yyvsp[1-yylen]; - - - YY_REDUCE_PRINT (yyn); - switch (yyn) - { - case 7: -#line 64 "RdPMonteur.y" - { - if(!R->addPlace((yyvsp[0].s))) - { - yyerror("");return(1); - } - } -#line 1396 "RdPMonteur.tab.c" - break; - - case 8: -#line 71 "RdPMonteur.y" - { - if(!R->addPlace((yyvsp[-4].s),(yyvsp[-1].i))) - { - yyerror("");return(1); - } - } -#line 1407 "RdPMonteur.tab.c" - break; - - case 9: -#line 78 "RdPMonteur.y" - { - if(!R->addPlace((yyvsp[-4].s),0,(yyvsp[-1].i))) - { - yyerror("");return(1); - } - } -#line 1418 "RdPMonteur.tab.c" - break; - - case 10: -#line 85 "RdPMonteur.y" - { - if(!R->addPlace((yyvsp[-8].s),(yyvsp[-5].i),(yyvsp[-1].i))) - { - yyerror("");return(1); - } - } -#line 1429 "RdPMonteur.tab.c" - break; - - case 11: -#line 92 "RdPMonteur.y" - { - if(!R->addPlace((yyvsp[-8].s),(yyvsp[-1].i),(yyvsp[-5].i))) - { - yyerror("");return(1); - } - } -#line 1440 "RdPMonteur.tab.c" - break; - - case 12: -#line 105 "RdPMonteur.y" - { - if(!R->addQueue((yyvsp[0].s))) - { - yyerror("");return(1); - } - } -#line 1451 "RdPMonteur.tab.c" - break; - - case 13: -#line 112 "RdPMonteur.y" - { - if(!R->addQueue((yyvsp[-4].s),(yyvsp[-1].i))) - { - yyerror("");return(1); - } - } -#line 1462 "RdPMonteur.tab.c" - break; - - case 14: -#line 119 "RdPMonteur.y" - { - if(!R->addLossQueue((yyvsp[-1].s))) - { - yyerror("");return(1); - } - } -#line 1473 "RdPMonteur.tab.c" - break; - - case 15: -#line 126 "RdPMonteur.y" - { - if(!R->addLossQueue((yyvsp[-5].s),(yyvsp[-1].i))) - { - yyerror("");return(1); - } - } -#line 1484 "RdPMonteur.tab.c" - break; - - case 16: -#line 133 "RdPMonteur.y" - { - if(!R->addLossQueue((yyvsp[-5].s),(yyvsp[-2].i))) - { - yyerror("");return(1); - } - } -#line 1495 "RdPMonteur.tab.c" - break; - - case 17: -#line 145 "RdPMonteur.y" - { - if(!R->addTrans((yyvsp[0].s))) - { - yyerror("");return(1); - } - t=(yyvsp[0].s); - } -#line 1507 "RdPMonteur.tab.c" - break; - - case 23: -#line 176 "RdPMonteur.y" - { - if(!R->addPre((yyvsp[-3].s),t,(yyvsp[-1].i))) - { - yyerror("");return(1); - } - } -#line 1518 "RdPMonteur.tab.c" - break; - - case 24: -#line 183 "RdPMonteur.y" - { - if(!R->addPreQueue((yyvsp[-5].s),t,(yyvsp[-2].i))) - { - yyerror("");return(1); - } - } -#line 1529 "RdPMonteur.tab.c" - break; - - case 26: -#line 214 "RdPMonteur.y" - { - if(!R->addPost((yyvsp[-3].s),t,(yyvsp[-1].i))) - { - yyerror("");return(1); - } - } -#line 1540 "RdPMonteur.tab.c" - break; - - case 27: -#line 221 "RdPMonteur.y" - { - if(!R->addPostQueue((yyvsp[-5].s),t,(yyvsp[-2].i))) - { - yyerror("");return(1); - } - } -#line 1551 "RdPMonteur.tab.c" - break; - - case 29: -#line 237 "RdPMonteur.y" - {(yyval.i)=1;} -#line 1557 "RdPMonteur.tab.c" - break; - - case 30: -#line 239 "RdPMonteur.y" - {(yyval.i)=(yyvsp[-1].i);} -#line 1563 "RdPMonteur.tab.c" - break; - - -#line 1567 "RdPMonteur.tab.c" - - default: break; - } - /* User semantic actions sometimes alter yychar, and that requires - that yytoken be updated with the new translation. We take the - approach of translating immediately before every use of yytoken. - One alternative is translating here after every semantic action, - but that translation would be missed if the semantic action invokes - YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or - if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an - incorrect destructor might then be invoked immediately. In the - case of YYERROR or YYBACKUP, subsequent parser actions might lead - to an incorrect destructor call or verbose syntax error message - before the lookahead is translated. */ - YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); - - YYPOPSTACK (yylen); - yylen = 0; - YY_STACK_PRINT (yyss, yyssp); - - *++yyvsp = yyval; - - /* Now 'shift' the result of the reduction. Determine what state - that goes to, based on the state we popped back to and the rule - number reduced by. */ - { - const int yylhs = yyr1[yyn] - YYNTOKENS; - const int yyi = yypgoto[yylhs] + *yyssp; - yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp - ? yytable[yyi] - : yydefgoto[yylhs]); - } - - goto yynewstate; - - -/*--------------------------------------. -| yyerrlab -- here on detecting error. | -`--------------------------------------*/ -yyerrlab: - /* Make sure we have latest lookahead translation. See comments at - user semantic actions for why this is necessary. */ - yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); - - /* If not already recovering from an error, report this error. */ - if (!yyerrstatus) - { - ++yynerrs; -#if ! YYERROR_VERBOSE - yyerror (YY_("syntax error")); -#else -# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ - yyssp, yytoken) - { - char const *yymsgp = YY_("syntax error"); - int yysyntax_error_status; - yysyntax_error_status = YYSYNTAX_ERROR; - if (yysyntax_error_status == 0) - yymsgp = yymsg; - else if (yysyntax_error_status == 1) - { - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); - yymsg = YY_CAST (char *, YYSTACK_ALLOC (YY_CAST (YYSIZE_T, yymsg_alloc))); - if (!yymsg) - { - yymsg = yymsgbuf; - yymsg_alloc = sizeof yymsgbuf; - yysyntax_error_status = 2; - } - else - { - yysyntax_error_status = YYSYNTAX_ERROR; - yymsgp = yymsg; - } - } - yyerror (yymsgp); - if (yysyntax_error_status == 2) - goto yyexhaustedlab; - } -# undef YYSYNTAX_ERROR -#endif - } - - - - if (yyerrstatus == 3) - { - /* If just tried and failed to reuse lookahead token after an - error, discard it. */ - - if (yychar <= YYEOF) - { - /* Return failure if at end of input. */ - if (yychar == YYEOF) - YYABORT; - } - else - { - yydestruct ("Error: discarding", - yytoken, &yylval); - yychar = YYEMPTY; - } - } - - /* Else will try to reuse lookahead token after shifting the error - token. */ - goto yyerrlab1; - - -/*---------------------------------------------------. -| yyerrorlab -- error raised explicitly by YYERROR. | -`---------------------------------------------------*/ -yyerrorlab: - /* Pacify compilers when the user code never invokes YYERROR and the - label yyerrorlab therefore never appears in user code. */ - if (0) - YYERROR; - - /* Do not reclaim the symbols of the rule whose action triggered - this YYERROR. */ - YYPOPSTACK (yylen); - yylen = 0; - YY_STACK_PRINT (yyss, yyssp); - yystate = *yyssp; - goto yyerrlab1; - - -/*-------------------------------------------------------------. -| yyerrlab1 -- common code for both syntax error and YYERROR. | -`-------------------------------------------------------------*/ -yyerrlab1: - yyerrstatus = 3; /* Each real token shifted decrements this. */ - - for (;;) - { - yyn = yypact[yystate]; - if (!yypact_value_is_default (yyn)) - { - yyn += YYTERROR; - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) - { - yyn = yytable[yyn]; - if (0 < yyn) - break; - } - } - - /* Pop the current state because it cannot handle the error token. */ - if (yyssp == yyss) - YYABORT; - - - yydestruct ("Error: popping", - yystos[yystate], yyvsp); - YYPOPSTACK (1); - yystate = *yyssp; - YY_STACK_PRINT (yyss, yyssp); - } - - YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - *++yyvsp = yylval; - YY_IGNORE_MAYBE_UNINITIALIZED_END - - - /* Shift the error token. */ - YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); - - yystate = yyn; - goto yynewstate; - - -/*-------------------------------------. -| yyacceptlab -- YYACCEPT comes here. | -`-------------------------------------*/ -yyacceptlab: - yyresult = 0; - goto yyreturn; - - -/*-----------------------------------. -| yyabortlab -- YYABORT comes here. | -`-----------------------------------*/ -yyabortlab: - yyresult = 1; - goto yyreturn; - - -#if !defined yyoverflow || YYERROR_VERBOSE -/*-------------------------------------------------. -| yyexhaustedlab -- memory exhaustion comes here. | -`-------------------------------------------------*/ -yyexhaustedlab: - yyerror (YY_("memory exhausted")); - yyresult = 2; - /* Fall through. */ -#endif - - -/*-----------------------------------------------------. -| yyreturn -- parsing is finished, return the result. | -`-----------------------------------------------------*/ -yyreturn: - if (yychar != YYEMPTY) - { - /* Make sure we have latest lookahead translation. See comments at - user semantic actions for why this is necessary. */ - yytoken = YYTRANSLATE (yychar); - yydestruct ("Cleanup: discarding lookahead", - yytoken, &yylval); - } - /* Do not reclaim the symbols of the rule whose action triggered - this YYABORT or YYACCEPT. */ - YYPOPSTACK (yylen); - YY_STACK_PRINT (yyss, yyssp); - while (yyssp != yyss) - { - yydestruct ("Cleanup: popping", - yystos[+*yyssp], yyvsp); - YYPOPSTACK (1); - } -#ifndef yyoverflow - if (yyss != yyssa) - YYSTACK_FREE (yyss); -#endif -#if YYERROR_VERBOSE - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); -#endif - return yyresult; -} -#line 241 "RdPMonteur.y" - - -bool RdPMonteur::create(const char *f){ - int i; - if ((yyin=fopen(f,"r"))==NULL) - return false; - R=this; - i=(int) yyparse(); - fclose(yyin); - return (i==0); -} - - diff --git a/parser/RdPMonteur.tab.d b/parser/RdPMonteur.tab.d deleted file mode 100644 index e654065..0000000 --- a/parser/RdPMonteur.tab.d +++ /dev/null @@ -1,144 +0,0 @@ -RdPMonteur.tab.o RdPMonteur.tab.d : RdPMonteur.tab.cpp /usr/include/stdc-predef.h \ - /usr/include/c++/9/string \ - /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ - /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ - /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ - /usr/include/x86_64-linux-gnu/bits/wordsize.h \ - /usr/include/x86_64-linux-gnu/bits/long-double.h \ - /usr/include/x86_64-linux-gnu/gnu/stubs.h \ - /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ - /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ - /usr/include/c++/9/bits/stringfwd.h /usr/include/c++/9/bits/memoryfwd.h \ - /usr/include/c++/9/bits/char_traits.h \ - /usr/include/c++/9/bits/stl_algobase.h \ - /usr/include/c++/9/bits/functexcept.h \ - /usr/include/c++/9/bits/exception_defines.h \ - /usr/include/c++/9/bits/cpp_type_traits.h \ - /usr/include/c++/9/ext/type_traits.h \ - /usr/include/c++/9/ext/numeric_traits.h \ - /usr/include/c++/9/bits/stl_pair.h /usr/include/c++/9/bits/move.h \ - /usr/include/c++/9/bits/concept_check.h /usr/include/c++/9/type_traits \ - /usr/include/c++/9/bits/stl_iterator_base_types.h \ - /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ - /usr/include/c++/9/debug/assertions.h \ - /usr/include/c++/9/bits/stl_iterator.h \ - /usr/include/c++/9/bits/ptr_traits.h /usr/include/c++/9/debug/debug.h \ - /usr/include/c++/9/bits/predefined_ops.h \ - /usr/include/c++/9/bits/postypes.h /usr/include/c++/9/cwchar \ - /usr/include/wchar.h \ - /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ - /usr/include/x86_64-linux-gnu/bits/floatn.h \ - /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ - /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ - /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ - /usr/include/x86_64-linux-gnu/bits/wchar.h \ - /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ - /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ - /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ - /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/9/cstdint \ - /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h /usr/include/stdint.h \ - /usr/include/x86_64-linux-gnu/bits/types.h \ - /usr/include/x86_64-linux-gnu/bits/timesize.h \ - /usr/include/x86_64-linux-gnu/bits/typesizes.h \ - /usr/include/x86_64-linux-gnu/bits/time64.h \ - /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ - /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ - /usr/include/c++/9/bits/allocator.h \ - /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ - /usr/include/c++/9/ext/new_allocator.h /usr/include/c++/9/new \ - /usr/include/c++/9/exception /usr/include/c++/9/bits/exception.h \ - /usr/include/c++/9/bits/exception_ptr.h \ - /usr/include/c++/9/bits/cxxabi_init_exception.h \ - /usr/include/c++/9/typeinfo /usr/include/c++/9/bits/hash_bytes.h \ - /usr/include/c++/9/bits/nested_exception.h \ - /usr/include/c++/9/bits/localefwd.h \ - /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ - /usr/include/c++/9/clocale /usr/include/locale.h \ - /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/9/iosfwd \ - /usr/include/c++/9/cctype /usr/include/ctype.h \ - /usr/include/x86_64-linux-gnu/bits/endian.h \ - /usr/include/x86_64-linux-gnu/bits/endianness.h \ - /usr/include/c++/9/bits/ostream_insert.h \ - /usr/include/c++/9/bits/cxxabi_forced.h \ - /usr/include/c++/9/bits/stl_function.h \ - /usr/include/c++/9/backward/binders.h \ - /usr/include/c++/9/bits/range_access.h \ - /usr/include/c++/9/initializer_list \ - /usr/include/c++/9/bits/basic_string.h \ - /usr/include/c++/9/ext/atomicity.h \ - /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ - /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ - /usr/include/pthread.h /usr/include/sched.h \ - /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ - /usr/include/x86_64-linux-gnu/bits/sched.h \ - /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ - /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ - /usr/include/x86_64-linux-gnu/bits/time.h \ - /usr/include/x86_64-linux-gnu/bits/timex.h \ - /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ - /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ - /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ - /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ - /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ - /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ - /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ - /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ - /usr/include/x86_64-linux-gnu/bits/setjmp.h \ - /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ - /usr/include/c++/9/ext/alloc_traits.h \ - /usr/include/c++/9/bits/alloc_traits.h \ - /usr/include/c++/9/ext/string_conversions.h /usr/include/c++/9/cstdlib \ - /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ - /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ - /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ - /usr/include/x86_64-linux-gnu/bits/byteswap.h \ - /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ - /usr/include/x86_64-linux-gnu/sys/select.h \ - /usr/include/x86_64-linux-gnu/bits/select.h \ - /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ - /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ - /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ - /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ - /usr/include/x86_64-linux-gnu/bits/stdlib.h \ - /usr/include/c++/9/bits/std_abs.h /usr/include/c++/9/cstdio \ - /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ - /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ - /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ - /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ - /usr/include/x86_64-linux-gnu/bits/stdio.h \ - /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/9/cerrno \ - /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \ - /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \ - /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ - /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ - /usr/include/c++/9/bits/functional_hash.h \ - /usr/include/c++/9/bits/basic_string.tcc RdPMonteur.h \ - /usr/include/c++/9/iostream /usr/include/c++/9/ostream \ - /usr/include/c++/9/ios /usr/include/c++/9/bits/ios_base.h \ - /usr/include/c++/9/bits/locale_classes.h \ - /usr/include/c++/9/bits/locale_classes.tcc \ - /usr/include/c++/9/system_error \ - /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ - /usr/include/c++/9/stdexcept /usr/include/c++/9/streambuf \ - /usr/include/c++/9/bits/streambuf.tcc \ - /usr/include/c++/9/bits/basic_ios.h \ - /usr/include/c++/9/bits/locale_facets.h /usr/include/c++/9/cwctype \ - /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ - /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ - /usr/include/c++/9/bits/streambuf_iterator.h \ - /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ - /usr/include/c++/9/bits/locale_facets.tcc \ - /usr/include/c++/9/bits/basic_ios.tcc \ - /usr/include/c++/9/bits/ostream.tcc /usr/include/c++/9/istream \ - /usr/include/c++/9/bits/istream.tcc diff --git a/parser/RdPMonteur.tab.h b/parser/RdPMonteur.tab.h deleted file mode 100644 index 3de74e4..0000000 --- a/parser/RdPMonteur.tab.h +++ /dev/null @@ -1,91 +0,0 @@ -/* A Bison parser, made by GNU Bison 3.5.1. */ - -/* Bison interface for Yacc-like parsers in C - - Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 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 - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. */ - -/* As a special exception, you may create a larger work that contains - part or all of the Bison parser skeleton and distribute that work - under terms of your choice, so long as that work isn't itself a - parser generator using the skeleton or a modified version thereof - as a parser skeleton. Alternatively, if you modify or redistribute - the parser skeleton itself, you may (at your option) remove this - special exception, which will cause the skeleton and the resulting - Bison output files to be licensed under the GNU General Public - License without this special exception. - - This special exception was added by the Free Software Foundation in - version 2.2 of Bison. */ - -/* Undocumented macros, especially those whose name start with YY_, - are private implementation details. Do not rely on them. */ - -#ifndef YY_YY_RDPMONTEUR_TAB_H_INCLUDED -# define YY_YY_RDPMONTEUR_TAB_H_INCLUDED -/* Debug traces. */ -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif -#if YYDEBUG -extern int yydebug; -#endif - -/* Token type. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - enum yytokentype - { - IN = 258, - OUT = 259, - MK = 260, - CP = 261, - PLACE = 262, - QUEUE = 263, - TRANS = 264, - ENDTR = 265, - TOKEN = 266, - RESET = 267, - LOSS = 268, - INHIBITOR = 269, - ENTIER = 270, - VARIABLE = 271 - }; -#endif - -/* Value type. */ -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -union YYSTYPE -{ -#line 33 "RdPMonteur.y" - - int i; - char *s; - -#line 79 "RdPMonteur.tab.h" - -}; -typedef union YYSTYPE YYSTYPE; -# define YYSTYPE_IS_TRIVIAL 1 -# define YYSTYPE_IS_DECLARED 1 -#endif - - -extern YYSTYPE yylval; - -int yyparse (void); - -#endif /* !YY_YY_RDPMONTEUR_TAB_H_INCLUDED */ diff --git a/parser/RdPMonteur.tab.o b/parser/RdPMonteur.tab.o deleted file mode 100644 index e977b50ea55c1a792cfca50c91c4fb97e8af58b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18600 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 a5?UHbo}TFJU?Jhnz4DMeVCi6~vi|`|&V!Qx diff --git a/parser/libRdP.a b/parser/libRdP.a deleted file mode 100644 index 5db3c43c5f4fd3b6bd6da1cb38009f2c7cc78098..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 129850 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 SHWh#SLd)?@VdSIh|NjpwV&~TY -- GitLab