[Swfdec-commits] .gitignore vivified/code

Pekka Lampila medar at kemper.freedesktop.org
Thu Apr 3 09:49:07 PDT 2008


 .gitignore                                  |    1 
 vivified/code/.gitignore                    |    1 
 vivified/code/Makefile.am                   |   18 +
 vivified/code/vivi_compiler_scanner_lex.h   |  296 ++++++++++++++++++++++++++++
 vivified/code/vivi_compiler_scanner_lex.l   |  150 ++++++++++++++
 vivified/code/vivi_compiler_scanner_lex.lex |  147 -------------
 6 files changed, 458 insertions(+), 155 deletions(-)

New commits:
commit d220ee54e4164b6946765a9aa113c1d00ab424a1
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Thu Apr 3 19:47:05 2008 +0300

    Change build system so that flex generated code disables some warnings
    
    vivi_compiler_scanner_lex.h is no longer generated. I don't know whether that
    is correct behaviour

diff --git a/.gitignore b/.gitignore
index d58a796..255ce62 100644
--- a/.gitignore
+++ b/.gitignore
@@ -19,3 +19,4 @@ libtool
 ltmain.sh
 missing
 stamp-h1
+ylwrap
diff --git a/vivified/code/.gitignore b/vivified/code/.gitignore
index 70af836..1cc3a3f 100644
--- a/vivified/code/.gitignore
+++ b/vivified/code/.gitignore
@@ -12,7 +12,6 @@ Makefile.in
 *.loT
 
 vivi_compiler_scanner_lex.c
-vivi_compiler_scanner_lex.h
 
 vivi-decompile
 vivi-compile
diff --git a/vivified/code/Makefile.am b/vivified/code/Makefile.am
index 64a6960..409d224 100644
--- a/vivified/code/Makefile.am
+++ b/vivified/code/Makefile.am
@@ -1,10 +1,20 @@
 SUBDIRS = test
 
-noinst_LTLIBRARIES = libvivified-compiler.la
+noinst_LTLIBRARIES = libvivified-compiler-lex.la libvivified-compiler.la
+
+# we create own .la for lex generated code, so we can disable some warnings
+libvivified_compiler_lex_la_CFLAGS = $(GLOBAL_CFLAGS) $(SWFDEC_CFLAGS) -Wno-redundant-decls -Wno-switch-default -Wno-missing-declarations -Wno-missing-prototypes -Wno-sign-compare -Wno-unused-function -Wno-missing-noreturn
+libvivified_compiler_lex_la_LDFLAGS = $(SWFDEC_LIBS)
+
+libvivified_compiler_lex_la_SOURCES = \
+	vivi_compiler_scanner_lex.l
 
 libvivified_compiler_la_CFLAGS = $(GLOBAL_CFLAGS) $(SWFDEC_CFLAGS)
 libvivified_compiler_la_LDFLAGS = $(SWFDEC_LIBS)
 
+libvivified_compiler_la_LIBADD = \
+	libvivified-compiler-lex.la
+
 libvivified_compiler_la_SOURCES = \
 	vivi_code_assignment.c \
 	vivi_code_binary.c \
@@ -35,7 +45,6 @@ libvivified_compiler_la_SOURCES = \
 	vivi_compiler_empty_statement.c \
 	vivi_compiler_get_temporary.c \
 	vivi_compiler_scanner.c \
-	vivi_compiler_scanner_lex.c \
 	vivi_decompiler_block.c \
 	vivi_decompiler_duplicate.c \
 	vivi_decompiler_state.c \
@@ -74,7 +83,6 @@ noinst_HEADERS = \
 	vivi_compiler_scanner.h \
 	vivi_compiler_scanner_lex.h \
 	vivi_compiler_scanner_lex_include.h \
-	vivi_compiler_scanner_lex.lex \
 	vivi_decompiler.h \
 	vivi_decompiler_block.h \
 	vivi_decompiler_duplicate.h \
@@ -84,10 +92,6 @@ noinst_HEADERS = \
 
 noinst_PROGRAMS = vivi-decompile vivi-compile
 
-vivi_compiler_scanner_lex.h: vivi_compiler_scanner_lex.c
-vivi_compiler_scanner_lex.c: vivi_compiler_scanner_lex.lex
-	$(LEX) -o vivi_compiler_scanner_lex.c --header-file=vivi_compiler_scanner_lex.h vivi_compiler_scanner_lex.lex
-
 vivi_decompile_SOURCES = \
 	decompiler.c
 
diff --git a/vivified/code/vivi_compiler_scanner_lex.h b/vivified/code/vivi_compiler_scanner_lex.h
new file mode 100644
index 0000000..fe5fbe7
--- /dev/null
+++ b/vivified/code/vivi_compiler_scanner_lex.h
@@ -0,0 +1,296 @@
+#ifndef yyHEADER_H
+#define yyHEADER_H 1
+#define yyIN_HEADER 1
+
+#line 6 "vivi_compiler_scanner_lex.h"
+
+#line 8 "vivi_compiler_scanner_lex.h"
+
+#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 5
+#define YY_FLEX_SUBMINOR_VERSION 34
+#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;
+#endif /* ! C99 */
+
+/* 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
+
+#endif /* ! FLEXINT_H */
+
+#ifdef __cplusplus
+
+/* The "const" storage-class-modifier is valid. */
+#define YY_USE_CONST
+
+#else	/* ! __cplusplus */
+
+/* C99 requires __STDC__ to be defined as 1. */
+#if defined (__STDC__)
+
+#define YY_USE_CONST
+
+#endif	/* defined (__STDC__) */
+#endif	/* ! __cplusplus */
+
+#ifdef YY_USE_CONST
+#define yyconst const
+#else
+#define yyconst
+#endif
+
+/* Size of default input buffer. */
+#ifndef YY_BUF_SIZE
+#define YY_BUF_SIZE 16384
+#endif
+
+#ifndef YY_TYPEDEF_YY_BUFFER_STATE
+#define YY_TYPEDEF_YY_BUFFER_STATE
+typedef struct yy_buffer_state *YY_BUFFER_STATE;
+#endif
+
+extern int yyleng;
+
+extern FILE *yyin, *yyout;
+
+/* The following is because we cannot portably get our hands on size_t
+ * (without autoconf's help, which isn't available because we want
+ * flex-generated scanners to compile on their own).
+ * Given that the standard has decreed that size_t exists since 1989,
+ * I guess we can afford to depend on it. Manoj.
+ */
+
+#ifndef YY_TYPEDEF_YY_SIZE_T
+#define YY_TYPEDEF_YY_SIZE_T
+typedef size_t yy_size_t;
+#endif
+
+#ifndef YY_STRUCT_YY_BUFFER_STATE
+#define YY_STRUCT_YY_BUFFER_STATE
+struct yy_buffer_state
+	{
+	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.
+	 */
+	yy_size_t 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;
+
+	};
+#endif /* !YY_STRUCT_YY_BUFFER_STATE */
+
+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 );
+
+YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
+YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
+YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len  );
+
+void *yyalloc (yy_size_t  );
+void *yyrealloc (void *,yy_size_t  );
+void yyfree (void *  );
+
+/* Begin user sect3 */
+
+extern int yylineno;
+
+extern char *yytext;
+#define yytext_ptr yytext
+
+#ifdef YY_HEADER_EXPORT_START_CONDITIONS
+#define INITIAL 0
+
+#endif
+
+#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
+
+/* 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 yytext_ptr
+static void yy_flex_strncpy (char *,yyconst char *,int );
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * );
+#endif
+
+#ifndef YY_NO_INPUT
+
+#endif
+
+/* Amount of stuff to slurp up with each read. */
+#ifndef YY_READ_BUF_SIZE
+#define YY_READ_BUF_SIZE 8192
+#endif
+
+/* Number of entries by which start-condition stack grows. */
+#ifndef YY_START_STACK_INCR
+#define YY_START_STACK_INCR 25
+#endif
+
+/* 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 */
+
+/* yy_get_previous_state - get the state just before the EOB char was reached */
+
+#undef YY_NEW_FILE
+#undef YY_FLUSH_BUFFER
+#undef yy_set_bol
+#undef yy_new_buffer
+#undef yy_set_interactive
+#undef YY_DO_BEFORE_ACTION
+
+#ifdef YY_DECL_IS_OURS
+#undef YY_DECL_IS_OURS
+#undef YY_DECL
+#endif
+
+#line 148 "vivi_compiler_scanner_lex.l"
+
+
+#line 295 "vivi_compiler_scanner_lex.h"
+#undef yyIN_HEADER
+#endif /* yyHEADER_H */
diff --git a/vivified/code/vivi_compiler_scanner_lex.l b/vivified/code/vivi_compiler_scanner_lex.l
new file mode 100644
index 0000000..5585d7e
--- /dev/null
+++ b/vivified/code/vivi_compiler_scanner_lex.l
@@ -0,0 +1,150 @@
+%{
+#include "vivi_compiler_scanner_lex_include.h"
+%}
+
+digit			[0-9]
+identifier_start	[$_a-zA-Z]
+identifier_part		[$_a-zA-Z0-9]
+
+/* r'([1-9][0-9]*|0)(\.[0-9]*)?([eE][+-][0-9]+)? */
+/* '\.[0-9]+([eE][+-][0-9]+)?' */
+
+%%
+
+[ \t\n\r]		/* skip whitespace */
+<<EOF>>			{ return TOKEN_EOF; }
+
+"{"			{ return TOKEN_BRACE_LEFT; }
+"}"			{ return TOKEN_BRACE_RIGHT; }
+"["			{ return TOKEN_BRACKET_LEFT; }
+"]"			{ return TOKEN_BRACKET_RIGHT; }
+"("			{ return TOKEN_PARENTHESIS_LEFT; }
+")"			{ return TOKEN_PARENTHESIS_RIGHT; }
+
+"."			{ return TOKEN_DOT; }
+";"			{ return TOKEN_SEMICOLON; }
+","			{ return TOKEN_COMMA; }
+
+"<"			{ return TOKEN_LESS_THAN; }
+">"			{ return TOKEN_GREATER_THAN; }
+"<="			{ return TOKEN_LESS_THAN_OR_EQUAL; }
+"=>"			{ return TOKEN_EQUAL_OR_GREATER_THAN; }
+
+"==",			{ return TOKEN_EQUAL; }
+"!=",			{ return TOKEN_NOT_EQUAL; }
+"===",			{ return TOKEN_STRICT_EQUAL; }
+"!==",			{ return TOKEN_NOT_STRICT_EQUAL; }
+
+"+"			{ return TOKEN_PLUS; }
+"-"			{ return TOKEN_MINUS; }
+"*"			{ return TOKEN_MULTIPLY; }
+"/"			{ return TOKEN_DIVIDE; }
+"%"			{ return TOKEN_REMAINDER; }
+
+"<<"			{ return TOKEN_SHIFT_LEFT; }
+">>"			{ return TOKEN_SHIFT_RIGHT; }
+">>>"			{ return TOKEN_SHIFT_RIGHT_UNSIGNED; }
+
+"&"			{ return TOKEN_BITWISE_AND; }
+"|"			{ return TOKEN_BITWISE_OR; }
+"^"			{ return TOKEN_BITWISE_XOR; }
+
+"!"			{ return TOKEN_LOGICAL_NOT; }
+"~"			{ return TOKEN_BITWISE_NOT; }
+"++"			{ return TOKEN_INCREASE; }
+"--"			{ return TOKEN_DESCREASE; }
+
+"?"			{ return TOKEN_QUESTION_MARK; }
+":"			{ return TOKEN_COLON; }
+
+"&&"			{ return TOKEN_LOGICAL_AND; }
+"||"			{ return TOKEN_LOGICAL_OR; }
+
+"="			{ return TOKEN_ASSIGN; }
+"*="			{ return TOKEN_ASSIGN_MULTIPLY; }
+"/="			{ return TOKEN_ASSIGN_DIVIDE; }
+"%="			{ return TOKEN_ASSIGN_REMAINDER; }
+"+="			{ return TOKEN_ASSIGN_ADD; }
+"-="			{ return TOKEN_ASSIGN_MINUS; }
+"<<="			{ return TOKEN_ASSIGN_SHIFT_LEFT; }
+">>="			{ return TOKEN_ASSIGN_SHIFT_RIGHT; }
+">>>="			{ return TOKEN_ASSIGN_SHIFT_RIGHT_ZERO; }
+"&="			{ return TOKEN_ASSIGN_BITWISE_AND; }
+"^="			{ return TOKEN_ASSIGN_BITWISE_XOR; }
+"|="			{ return TOKEN_ASSIGN_BITWISE_OR; }
+
+"null"			{ return TOKEN_NULL; }
+"true"			{ yylval.v_boolean = 1;
+			  return TOKEN_BOOLEAN; }
+"false"			{ yylval.v_boolean = 0;
+			  return TOKEN_BOOLEAN; }
+
+"break"			{ return TOKEN_BREAK; }
+"case"			{ return TOKEN_CASE; }
+"catch"			{ return TOKEN_CATCH; }
+"continue"		{ return TOKEN_CONTINUE; }
+"default"		{ return TOKEN_DEFAULT; }
+"delete"		{ return TOKEN_DELETE; }
+"do"			{ return TOKEN_DO; }
+"else"			{ return TOKEN_ELSE; }
+"finally"		{ return TOKEN_FINALLY; }
+"for"			{ return TOKEN_FOR; }
+"function"		{ return TOKEN_FUNCTION; }
+"if"			{ return TOKEN_IF; }
+"in"			{ return TOKEN_IN; }
+"instanceof"		{ return TOKEN_INSTANCEOF; }
+"new"			{ return TOKEN_NEW; }
+"return"		{ return TOKEN_RETURN; }
+"switch"		{ return TOKEN_SWITCH; }
+"this"			{ return TOKEN_THIS; }
+"throw"			{ return TOKEN_THROW; }
+"try"			{ return TOKEN_TRY; }
+"typeof"		{ return TOKEN_TYPEOF; }
+"var"			{ return TOKEN_VAR; }
+"void"			{ return TOKEN_VOID; }
+"with"			{ return TOKEN_WITH; }
+
+"abstract"		{ return TOKEN_FUTURE; }
+"boolean"		{ return TOKEN_FUTURE; }
+"byte"			{ return TOKEN_FUTURE; }
+"char"			{ return TOKEN_FUTURE; }
+"class"			{ return TOKEN_FUTURE; }
+"const"			{ return TOKEN_FUTURE; }
+"debugger"		{ return TOKEN_FUTURE; }
+"double"		{ return TOKEN_FUTURE; }
+"enum"			{ return TOKEN_FUTURE; }
+"export"		{ return TOKEN_FUTURE; }
+"extends"		{ return TOKEN_FUTURE; }
+"final"			{ return TOKEN_FUTURE; }
+"float"			{ return TOKEN_FUTURE; }
+"goto"			{ return TOKEN_FUTURE; }
+"implements"		{ return TOKEN_FUTURE; }
+"import"		{ return TOKEN_FUTURE; }
+"int"			{ return TOKEN_FUTURE; }
+"interface"		{ return TOKEN_FUTURE; }
+"long"			{ return TOKEN_FUTURE; }
+"native"		{ return TOKEN_FUTURE; }
+"package"		{ return TOKEN_FUTURE; }
+"private"		{ return TOKEN_FUTURE; }
+"protected"		{ return TOKEN_FUTURE; }
+"public"		{ return TOKEN_FUTURE; }
+"short"			{ return TOKEN_FUTURE; }
+"static"		{ return TOKEN_FUTURE; }
+"super"			{ return TOKEN_FUTURE; }
+"synchronized"		{ return TOKEN_FUTURE; }
+"throws"		{ return TOKEN_FUTURE; }
+"transient"		{ return TOKEN_FUTURE; }
+"volatile"		{ return TOKEN_FUTURE; }
+
+{digit}+		{ yylval.v_number = atoi(yytext);
+			  return TOKEN_NUMBER; }
+
+{identifier_start}({identifier_part})* {
+			  yylval.v_identifier = (char *)strdup(yytext);
+			  return TOKEN_IDENTIFIER; }
+
+.			{ printf("Unknown character [%c]\n",yytext[0]);
+			  return TOKEN_UNKNOWN; }
+%%
+
+int yywrap(void){return 1;}
diff --git a/vivified/code/vivi_compiler_scanner_lex.lex b/vivified/code/vivi_compiler_scanner_lex.lex
deleted file mode 100644
index fdcf654..0000000
--- a/vivified/code/vivi_compiler_scanner_lex.lex
+++ /dev/null
@@ -1,147 +0,0 @@
-%{
-#include "vivi_compiler_scanner_lex_include.h"
-%}
-
-digit			[0-9]
-identifier_start	[$_a-zA-Z]
-identifier_part		[$_a-zA-Z0-9]
-
-%%
-
-[ \t\n\r]		/* skip whitespace */
-<<EOF>>			{ return TOKEN_EOF; }
-
-"{"			{ return TOKEN_BRACE_LEFT; }
-"}"			{ return TOKEN_BRACE_RIGHT; }
-"["			{ return TOKEN_BRACKET_LEFT; }
-"]"			{ return TOKEN_BRACKET_RIGHT; }
-"("			{ return TOKEN_PARENTHESIS_LEFT; }
-")"			{ return TOKEN_PARENTHESIS_RIGHT; }
-
-"."			{ return TOKEN_DOT; }
-";"			{ return TOKEN_SEMICOLON; }
-","			{ return TOKEN_COMMA; }
-
-"<"			{ return TOKEN_LESS_THAN; }
-">"			{ return TOKEN_GREATER_THAN; }
-"<="			{ return TOKEN_LESS_THAN_OR_EQUAL; }
-"=>"			{ return TOKEN_EQUAL_OR_GREATER_THAN; }
-
-"==",			{ return TOKEN_EQUAL; }
-"!=",			{ return TOKEN_NOT_EQUAL; }
-"===",			{ return TOKEN_STRICT_EQUAL; }
-"!==",			{ return TOKEN_NOT_STRICT_EQUAL; }
-
-"+"			{ return TOKEN_PLUS; }
-"-"			{ return TOKEN_MINUS; }
-"*"			{ return TOKEN_MULTIPLY; }
-"/"			{ return TOKEN_DIVIDE; }
-"%"			{ return TOKEN_REMAINDER; }
-
-"<<"			{ return TOKEN_SHIFT_LEFT; }
-">>"			{ return TOKEN_SHIFT_RIGHT; }
-">>>"			{ return TOKEN_SHIFT_RIGHT_UNSIGNED; }
-
-"&"			{ return TOKEN_BITWISE_AND; }
-"|"			{ return TOKEN_BITWISE_OR; }
-"^"			{ return TOKEN_BITWISE_XOR; }
-
-"!"			{ return TOKEN_LOGICAL_NOT; }
-"~"			{ return TOKEN_BITWISE_NOT; }
-"++"			{ return TOKEN_INCREASE; }
-"--"			{ return TOKEN_DESCREASE; }
-
-"?"			{ return TOKEN_QUESTION_MARK; }
-":"			{ return TOKEN_COLON; }
-
-"&&"			{ return TOKEN_LOGICAL_AND; }
-"||"			{ return TOKEN_LOGICAL_OR; }
-
-"="			{ return TOKEN_ASSIGN; }
-"*="			{ return TOKEN_ASSIGN_MULTIPLY; }
-"/="			{ return TOKEN_ASSIGN_DIVIDE; }
-"%="			{ return TOKEN_ASSIGN_REMAINDER; }
-"+="			{ return TOKEN_ASSIGN_ADD; }
-"-="			{ return TOKEN_ASSIGN_MINUS; }
-"<<="			{ return TOKEN_ASSIGN_SHIFT_LEFT; }
-">>="			{ return TOKEN_ASSIGN_SHIFT_RIGHT; }
-">>>="			{ return TOKEN_ASSIGN_SHIFT_RIGHT_ZERO; }
-"&="			{ return TOKEN_ASSIGN_BITWISE_AND; }
-"^="			{ return TOKEN_ASSIGN_BITWISE_XOR; }
-"|="			{ return TOKEN_ASSIGN_BITWISE_OR; }
-
-"null"			{ return TOKEN_NULL; }
-"true"			{ yylval.v_boolean = 1;
-			  return TOKEN_BOOLEAN; }
-"false"			{ yylval.v_boolean = 0;
-			  return TOKEN_BOOLEAN; }
-
-"break"			{ return TOKEN_BREAK; }
-"case"			{ return TOKEN_CASE; }
-"catch"			{ return TOKEN_CATCH; }
-"continue"		{ return TOKEN_CONTINUE; }
-"default"		{ return TOKEN_DEFAULT; }
-"delete"		{ return TOKEN_DELETE; }
-"do"			{ return TOKEN_DO; }
-"else"			{ return TOKEN_ELSE; }
-"finally"		{ return TOKEN_FINALLY; }
-"for"			{ return TOKEN_FOR; }
-"function"		{ return TOKEN_FUNCTION; }
-"if"			{ return TOKEN_IF; }
-"in"			{ return TOKEN_IN; }
-"instanceof"		{ return TOKEN_INSTANCEOF; }
-"new"			{ return TOKEN_NEW; }
-"return"		{ return TOKEN_RETURN; }
-"switch"		{ return TOKEN_SWITCH; }
-"this"			{ return TOKEN_THIS; }
-"throw"			{ return TOKEN_THROW; }
-"try"			{ return TOKEN_TRY; }
-"typeof"		{ return TOKEN_TYPEOF; }
-"var"			{ return TOKEN_VAR; }
-"void"			{ return TOKEN_VOID; }
-"with"			{ return TOKEN_WITH; }
-
-"abstract"		{ return TOKEN_FUTURE; }
-"boolean"		{ return TOKEN_FUTURE; }
-"byte"			{ return TOKEN_FUTURE; }
-"char"			{ return TOKEN_FUTURE; }
-"class"			{ return TOKEN_FUTURE; }
-"const"			{ return TOKEN_FUTURE; }
-"debugger"		{ return TOKEN_FUTURE; }
-"double"		{ return TOKEN_FUTURE; }
-"enum"			{ return TOKEN_FUTURE; }
-"export"		{ return TOKEN_FUTURE; }
-"extends"		{ return TOKEN_FUTURE; }
-"final"			{ return TOKEN_FUTURE; }
-"float"			{ return TOKEN_FUTURE; }
-"goto"			{ return TOKEN_FUTURE; }
-"implements"		{ return TOKEN_FUTURE; }
-"import"		{ return TOKEN_FUTURE; }
-"int"			{ return TOKEN_FUTURE; }
-"interface"		{ return TOKEN_FUTURE; }
-"long"			{ return TOKEN_FUTURE; }
-"native"		{ return TOKEN_FUTURE; }
-"package"		{ return TOKEN_FUTURE; }
-"private"		{ return TOKEN_FUTURE; }
-"protected"		{ return TOKEN_FUTURE; }
-"public"		{ return TOKEN_FUTURE; }
-"short"			{ return TOKEN_FUTURE; }
-"static"		{ return TOKEN_FUTURE; }
-"super"			{ return TOKEN_FUTURE; }
-"synchronized"		{ return TOKEN_FUTURE; }
-"throws"		{ return TOKEN_FUTURE; }
-"transient"		{ return TOKEN_FUTURE; }
-"volatile"		{ return TOKEN_FUTURE; }
-
-{digit}+		{ yylval.v_number = atoi(yytext);
-			  return TOKEN_NUMBER; }
-
-{identifier_start}({identifier_part})* {
-			  yylval.v_identifier = (char *)strdup(yytext);
-			  return TOKEN_IDENTIFIER; }
-
-.			{ printf("Unknown character [%c]\n",yytext[0]);
-			  return TOKEN_UNKNOWN; }
-%%
-
-int yywrap(void){return 1;}


More information about the Swfdec-commits mailing list