]> granicus.if.org Git - php/commitdiff
Some more work on the INI parser/scanner
authorZeev Suraski <zeev@php.net>
Sun, 29 Oct 2000 15:13:20 +0000 (15:13 +0000)
committerZeev Suraski <zeev@php.net>
Sun, 29 Oct 2000 15:13:20 +0000 (15:13 +0000)
Zend/Makefile.am
Zend/ZendTS.dsp
Zend/zend_ini_parser.y
Zend/zend_ini_scanner.l
Zend/zend_language_scanner.l

index a61d732cf5ccd810c1e46b18e82379abca0a2846..ea35704a9f3fde8bab77d458bb74e1f5c47c7d86 100644 (file)
@@ -42,13 +42,13 @@ zend_language_parser.c: $(srcdir)/zend_language_parser.y
 # INI parser/scanner rules
 
 zend_ini_parser.c: $(srcdir)/zend_ini_parser.y
-       $(YACC) -p zend_ini -v -d $(srcdir)/zend_ini_parser.y -o zend_ini_parser.c
+       $(YACC) -p ini -v -d $(srcdir)/zend_ini_parser.y -o zend_ini_parser.c
 
 zend_ini_scanner.c: $(srcdir)/zend_ini_scanner.l
-       $(LEX) -Pzend_ini -o$@ -i $(srcdir)/zend_ini_scanner.l
+       $(LEX) -Pini -o$@ -i $(srcdir)/zend_ini_scanner.l
 
 zend_ini_scanner_cc.cc: $(srcdir)/zend_ini_scanner.l
-       $(LEX) -+ -B -i -S$(srcdir)/flex.skl -Pzend_ini -o$@ $(srcdir)/zend_ini_scanner.l
+       $(LEX) -+ -B -i -S$(srcdir)/flex.skl -Pini -o$@ $(srcdir)/zend_ini_scanner.l
 
 depend:
 
index cf228b8510b362baa608b431706a67d4067fa731..ef7c49704c405741acd5adb0e5e26533dca9f47f 100644 (file)
@@ -107,14 +107,6 @@ LIB32=link.exe -lib
 # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"\r
 # Begin Source File\r
 \r
-SOURCE=".\zend_language_parser.c"\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=".\zend_language_scanner.cpp"\r
-# End Source File\r
-# Begin Source File\r
-\r
 SOURCE=.\zend.c\r
 # End Source File\r
 # Begin Source File\r
@@ -171,6 +163,14 @@ SOURCE=.\zend_ini.c
 # End Source File\r
 # Begin Source File\r
 \r
+SOURCE=".\zend_language_parser.c"\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=".\zend_language_scanner.cpp"\r
+# End Source File\r
+# Begin Source File\r
+\r
 SOURCE=.\zend_list.c\r
 # End Source File\r
 # Begin Source File\r
@@ -215,14 +215,6 @@ SOURCE=.\modules.h
 # End Source File\r
 # Begin Source File\r
 \r
-SOURCE=".\zend_language_parser.h"\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=".\zend_language_scanner.h"\r
-# End Source File\r
-# Begin Source File\r
-\r
 SOURCE=.\zend.h\r
 # End Source File\r
 # Begin Source File\r
@@ -299,6 +291,14 @@ SOURCE=.\zend_ini.h
 # End Source File\r
 # Begin Source File\r
 \r
+SOURCE=".\zend_language_parser.h"\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=".\zend_language_scanner.h"\r
+# End Source File\r
+# Begin Source File\r
+\r
 SOURCE=.\zend_list.h\r
 # End Source File\r
 # Begin Source File\r
@@ -327,6 +327,67 @@ SOURCE=.\zend_variables.h
 # PROP Default_Filter "y"\r
 # Begin Source File\r
 \r
+SOURCE=.\zend_ini_parser.y\r
+\r
+!IF  "$(CFG)" == "ZendTS - Win32 Release_TS"\r
+\r
+# Begin Custom Build\r
+InputDir=.\r
+InputPath=.\zend_ini_parser.y\r
+\r
+BuildCmds= \\r
+       if not "X%CYGWIN%"=="X" bison --output=zend_ini_parser.c -v -d -S "%CYGWIN%\share\bison.simple" -p zend_ini zend_ini_parser.y \\r
+       if "X%CYGWIN%"=="X" bison --output=zend_ini_parser.c -v -d -S "C:\Program Files\Cygnus\share\bison.simple" -p zend_ini zend_ini_parser.y \\r
+       \r
+\r
+"$(InputDir)\zend_ini_parser.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"\r
+   $(BuildCmds)\r
+\r
+"$(InputDir)\zend_ini_parser.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"\r
+   $(BuildCmds)\r
+# End Custom Build\r
+\r
+!ELSEIF  "$(CFG)" == "ZendTS - Win32 Debug_TS"\r
+\r
+# Begin Custom Build\r
+InputDir=.\r
+InputPath=.\zend_ini_parser.y\r
+\r
+BuildCmds= \\r
+       if not "X%CYGWIN%"=="X" bison --output=zend_ini_parser.c -v -d -S "%CYGWIN%\share\bison.simple" -p zend_ini zend_ini_parser.y \\r
+       if "X%CYGWIN%"=="X" bison --output=zend_ini_parser.c -v -d -S "C:\Program Files\Cygnus\share\bison.simple" -p zend_ini zend_ini_parser.y \\r
+       \r
+\r
+"$(InputDir)\zend_ini_parser.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"\r
+   $(BuildCmds)\r
+\r
+"$(InputDir)\zend_ini_parser.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"\r
+   $(BuildCmds)\r
+# End Custom Build\r
+\r
+!ELSEIF  "$(CFG)" == "ZendTS - Win32 Release_TS_inline"\r
+\r
+# Begin Custom Build\r
+InputDir=.\r
+InputPath=.\zend_ini_parser.y\r
+\r
+BuildCmds= \\r
+       if not "X%CYGWIN%"=="X" bison --output=zend_ini_parser.c -v -d -S "%CYGWIN%\share\bison.simple" -p zend_ini zend_ini_parser.y \\r
+       if "X%CYGWIN%"=="X" bison --output=zend_ini_parser.c -v -d -S "C:\Program Files\Cygnus\share\bison.simple" -p zend_ini zend_ini_parser.y \\r
+       \r
+\r
+"$(InputDir)\zend_ini_parser.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"\r
+   $(BuildCmds)\r
+\r
+"$(InputDir)\zend_ini_parser.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"\r
+   $(BuildCmds)\r
+# End Custom Build\r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
 SOURCE=".\zend_language_parser.y"\r
 \r
 !IF  "$(CFG)" == "ZendTS - Win32 Release_TS"\r
@@ -392,6 +453,43 @@ BuildCmds= \
 # PROP Default_Filter "l"\r
 # Begin Source File\r
 \r
+SOURCE=.\zend_ini_scanner.l\r
+\r
+!IF  "$(CFG)" == "ZendTS - Win32 Release_TS"\r
+\r
+# Begin Custom Build\r
+InputPath=.\zend_ini_scanner.l\r
+\r
+"zend_ini_scanner.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"\r
+       flex -+ -B -i -Sflex.skl -Pzend_ini -ozend_ini_scanner.cpp zend_ini_scanner.l\r
+\r
+# End Custom Build\r
+\r
+!ELSEIF  "$(CFG)" == "ZendTS - Win32 Debug_TS"\r
+\r
+# Begin Custom Build\r
+InputPath=.\zend_ini_scanner.l\r
+\r
+"zend_ini_scanner.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"\r
+       flex -+ -B -i -Sflex.skl -Pzend_ini -ozend_ini_scanner.cpp zend_ini_scanner.l\r
+\r
+# End Custom Build\r
+\r
+!ELSEIF  "$(CFG)" == "ZendTS - Win32 Release_TS_inline"\r
+\r
+# Begin Custom Build\r
+InputPath=.\zend_ini_scanner.l\r
+\r
+"zend_ini_scanner.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"\r
+       flex -+ -B -i -Sflex.skl -Pzend_ini -ozend_ini_scanner.cpp zend_ini_scanner.l\r
+\r
+# End Custom Build\r
+\r
+!ENDIF \r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
 SOURCE=".\zend_language_scanner.l"\r
 \r
 !IF  "$(CFG)" == "ZendTS - Win32 Release_TS"\r
index acbbe500479f83e057e7c1c36dcba6b4740cfc0a..0e5393bc9d0a99df1a66f21a24e4606892b833d1 100644 (file)
@@ -37,7 +37,7 @@
 #define WIN32_LEAN_AND_MEAN
 #include <windows.h>
 #include <winbase.h>
-#include "win32/wfile.h"
+//#include "win32/wfile.h"
 #endif
 
 #define YYSTYPE zval
index 7508ef0e7d8451f8fa998bf89ef22bf1a6d182c4..7a942109e104efa1082559c4e59f4d902e4f68b3 100644 (file)
 
 #include "zend.h"
 #include "zend_ini_parser.h"
+#include "zend_ini_scanner.h"
 
 #undef YYSTYPE
 #define YYSTYPE zval
 
-#define YY_DECL cfglex(zval *cfglval)
-
+#ifdef ZTS
+#define YY_DECL int ZendIniFlexLexer::lex_scan(zval *inilval CLS_DC)
+#else
+#define YY_DECL int ini_lex_scan(zval *inilval CLS_DC)
+#endif
 
+#ifndef ZTS
 void init_cfg_scanner()
 {
-       cfglineno=1;
+       inilineno=1;
 }
+#endif
 
 
 %}
@@ -68,17 +74,17 @@ void init_cfg_scanner()
 
 
 <INITIAL>[ ]*("true"|"on"|"yes")[ ]* {
-       cfglval->value.str.val = zend_strndup("1",1);
-       cfglval->value.str.len = 1;
-       cfglval->type = IS_STRING;
+       inilval->value.str.val = zend_strndup("1",1);
+       inilval->value.str.len = 1;
+       inilval->type = IS_STRING;
        return CFG_TRUE;
 }
 
 
 <INITIAL>[ ]*("false"|"off"|"no"|"none")[ ]* {
-       cfglval->value.str.val = zend_strndup("",0);
-       cfglval->value.str.len = 0;
-       cfglval->type = IS_STRING;
+       inilval->value.str.val = zend_strndup("",0);
+       inilval->value.str.len = 0;
+       inilval->type = IS_STRING;
        return CFG_FALSE;
 }
 
@@ -95,9 +101,9 @@ void init_cfg_scanner()
        yytext++;
        yyleng--;
 
-       cfglval->value.str.val = zend_strndup(yytext,yyleng);
-       cfglval->value.str.len = yyleng;
-       cfglval->type = IS_STRING;
+       inilval->value.str.val = zend_strndup(yytext,yyleng);
+       inilval->value.str.len = yyleng;
+       inilval->type = IS_STRING;
        return SECTION;
 }
 
@@ -111,9 +117,9 @@ void init_cfg_scanner()
        /* eat leading " */
        yytext++;
 
-       cfglval->value.str.val = zend_strndup(yytext, yyleng - 2);
-       cfglval->value.str.len = yyleng - 2;
-       cfglval->type = IS_STRING;
+       inilval->value.str.val = zend_strndup(yytext, yyleng - 2);
+       inilval->value.str.len = yyleng - 2;
+       inilval->type = IS_STRING;
        return TC_ENCAPSULATED_STRING;
 }
 
@@ -145,9 +151,9 @@ void init_cfg_scanner()
                }
        }
        if (yyleng!=0) {
-               cfglval->value.str.val = zend_strndup(yytext,yyleng);
-               cfglval->value.str.len = yyleng;
-               cfglval->type = IS_STRING;
+               inilval->value.str.val = zend_strndup(yytext,yyleng);
+               inilval->value.str.len = yyleng;
+               inilval->type = IS_STRING;
                return TC_STRING;
        } else {
                /* whitespace */
index d307181b5ba2021ec156b26248088b1831a9cf27..b8df47b4a4805d3961fd6e8a910209803708259d 100644 (file)
@@ -76,6 +76,7 @@
 #else
 #define YY_DECL int lex_scan(zval *zendlval CLS_DC)
 #endif
+
 #define ECHO { ZEND_WRITE( yytext, yyleng ); }
 
 #ifdef ZTS
 class istdiostream : public istream
 {
 private:
-  stdiobuf _file;
+       stdiobuf _file;
 public:
-  istdiostream (FILE* __f) : istream(), _file(__f) { init(&_file); }
-  stdiobuf* rdbuf()/* const */ { return &_file; }
+       istdiostream (FILE* __f) : istream(), _file(__f) { init(&_file); }
+       stdiobuf* rdbuf()/* const */ { return &_file; }
 };
 #endif