Turned JavaScriptCore into a framework, and made it build with Project
authormjs <mjs@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 30 Mar 2002 11:01:26 +0000 (11:01 +0000)
committermjs <mjs@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 30 Mar 2002 11:01:26 +0000 (11:01 +0000)
Builder in preparation for submission:

Top level:
* Tests/kde/Makefile.am: Link against JavaScriptCore.framework
instead of the defunct libJavaScriptCore.dylib.
* Tests/khtmlview/WebViewTest/WebViewTest.pbproj/project.pbxproj: Likewise.
* Tests/qt/Makefile.am: Likewise.

JavaScriptCore:
Converted JavaScriptCore to build with Project Builder, in
preparation for B&I submission.

* English.lproj/InfoPlist.strings: Added.
* JavaScriptCore.pbproj/.cvsignore: Added.
* JavaScriptCore.pbproj/project.pbxproj: Added.

* .cvsignore: Update the set of ignored things.

* Makefile.am: Hand off to PB for the main build, but still handle
the generated files and the test program.

* kjs/Makefile.am: Don't build anything except the generated
source files.

* kjs/KWQDef.h, kjs/config.h: Added minimal versions of these
files to get kjs to build.

Check in all the genrated files, since Project Builder isn't up to
the task of handling built sources:

* kjs/array_object.lut.h: Added.
* kjs/date_object.lut.h: Added.
* kjs/grammar.cpp: Added.
* kjs/grammar.cpp.h: Added.
* kjs/grammar.h: Added.
* kjs/lexer.lut.h: Added.
* kjs/math_object.lut.h: Added.
* kjs/number_object.lut.h: Added.
* kjs/string_object.lut.h: Added.

* kjs/.cvsignore: Update set of ignored things.

WebCore:
* src/Makefile.am: Link against JavaScriptCore.framework instead
of the defunct libJavaScriptCore.dylib.

WebKit:
* WebKit.pbproj/project.pbxproj: Link against
JavaScriptCore.framework instead of the defunct
libJavaScriptCore.dylib.

WebBrowser:
* WebBrowser.pbproj/project.pbxproj: Link against
JavaScriptCore.framework instead of the defunct
libJavaScriptCore.dylib.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@901 268f45cc-cd09-0410-ab3c-d52691b4dbfc

28 files changed:
JavaScriptCore/.cvsignore
JavaScriptCore/ChangeLog
JavaScriptCore/ChangeLog-2002-12-03
JavaScriptCore/ChangeLog-2003-10-25
JavaScriptCore/English.lproj/InfoPlist.strings [new file with mode: 0644]
JavaScriptCore/JavaScriptCore.pbproj/.cvsignore [new file with mode: 0644]
JavaScriptCore/JavaScriptCore.pbproj/project.pbxproj [new file with mode: 0644]
JavaScriptCore/Makefile.am
JavaScriptCore/kjs/.cvsignore
JavaScriptCore/kjs/KWQDef.h [new file with mode: 0644]
JavaScriptCore/kjs/Makefile.am
JavaScriptCore/kjs/array_object.lut.h [new file with mode: 0644]
JavaScriptCore/kjs/config.h [new file with mode: 0644]
JavaScriptCore/kjs/date_object.lut.h [new file with mode: 0644]
JavaScriptCore/kjs/grammar.cpp [new file with mode: 0644]
JavaScriptCore/kjs/grammar.cpp.h [new file with mode: 0644]
JavaScriptCore/kjs/grammar.h [new file with mode: 0644]
JavaScriptCore/kjs/lexer.lut.h [new file with mode: 0644]
JavaScriptCore/kjs/math_object.lut.h [new file with mode: 0644]
JavaScriptCore/kjs/number_object.lut.h [new file with mode: 0644]
JavaScriptCore/kjs/string_object.lut.h [new file with mode: 0644]
WebCore/ChangeLog-2002-12-03
WebCore/ChangeLog-2003-10-25
WebCore/ChangeLog-2005-08-23
WebCore/src/Makefile.am
WebKit/ChangeLog
WebKit/ChangeLog-2002-12-03
WebKit/WebKit.pbproj/project.pbxproj

index 5d40362..f7fab61 100644 (file)
@@ -1,4 +1,3 @@
 Makefile.in
 Makefile
-JavaScriptCore-install-stamp
-libJavaScriptCore.dylib
+JavaScriptCore-stamp
index 3a31822..f0b5842 100644 (file)
@@ -1,3 +1,38 @@
+2002-03-30  Maciej Stachowiak  <mjs@apple.com>
+
+       Converted JavaScriptCore to build with Project Builder, in
+       preparation for B&I submission.
+
+       * English.lproj/InfoPlist.strings: Added.
+       * JavaScriptCore.pbproj/.cvsignore: Added.
+       * JavaScriptCore.pbproj/project.pbxproj: Added.
+       
+       * .cvsignore: Update the set of ignored things.
+
+       * Makefile.am: Hand off to PB for the main build, but still handle
+       the generated files and the test program.
+
+       * kjs/Makefile.am: Don't build anything except the generated
+       source files.
+
+       * kjs/KWQDef.h, kjs/config.h: Added minimal versions of these
+       files to get kjs to build.
+
+       Check in all the genrated files, since Project Builder isn't up to
+       the task of handling built sources:
+       
+       * kjs/array_object.lut.h: Added.
+       * kjs/date_object.lut.h: Added.
+       * kjs/grammar.cpp: Added.
+       * kjs/grammar.cpp.h: Added.
+       * kjs/grammar.h: Added.
+       * kjs/lexer.lut.h: Added.
+       * kjs/math_object.lut.h: Added.
+       * kjs/number_object.lut.h: Added.
+       * kjs/string_object.lut.h: Added.
+
+       * kjs/.cvsignore: Update set of ignored things.
+
 2002-03-28  Maciej Stachowiak  <mjs@apple.com>
 
        * kjs/kjs-test.chk: Update output for new test results.
index 3a31822..f0b5842 100644 (file)
@@ -1,3 +1,38 @@
+2002-03-30  Maciej Stachowiak  <mjs@apple.com>
+
+       Converted JavaScriptCore to build with Project Builder, in
+       preparation for B&I submission.
+
+       * English.lproj/InfoPlist.strings: Added.
+       * JavaScriptCore.pbproj/.cvsignore: Added.
+       * JavaScriptCore.pbproj/project.pbxproj: Added.
+       
+       * .cvsignore: Update the set of ignored things.
+
+       * Makefile.am: Hand off to PB for the main build, but still handle
+       the generated files and the test program.
+
+       * kjs/Makefile.am: Don't build anything except the generated
+       source files.
+
+       * kjs/KWQDef.h, kjs/config.h: Added minimal versions of these
+       files to get kjs to build.
+
+       Check in all the genrated files, since Project Builder isn't up to
+       the task of handling built sources:
+       
+       * kjs/array_object.lut.h: Added.
+       * kjs/date_object.lut.h: Added.
+       * kjs/grammar.cpp: Added.
+       * kjs/grammar.cpp.h: Added.
+       * kjs/grammar.h: Added.
+       * kjs/lexer.lut.h: Added.
+       * kjs/math_object.lut.h: Added.
+       * kjs/number_object.lut.h: Added.
+       * kjs/string_object.lut.h: Added.
+
+       * kjs/.cvsignore: Update set of ignored things.
+
 2002-03-28  Maciej Stachowiak  <mjs@apple.com>
 
        * kjs/kjs-test.chk: Update output for new test results.
index 3a31822..f0b5842 100644 (file)
@@ -1,3 +1,38 @@
+2002-03-30  Maciej Stachowiak  <mjs@apple.com>
+
+       Converted JavaScriptCore to build with Project Builder, in
+       preparation for B&I submission.
+
+       * English.lproj/InfoPlist.strings: Added.
+       * JavaScriptCore.pbproj/.cvsignore: Added.
+       * JavaScriptCore.pbproj/project.pbxproj: Added.
+       
+       * .cvsignore: Update the set of ignored things.
+
+       * Makefile.am: Hand off to PB for the main build, but still handle
+       the generated files and the test program.
+
+       * kjs/Makefile.am: Don't build anything except the generated
+       source files.
+
+       * kjs/KWQDef.h, kjs/config.h: Added minimal versions of these
+       files to get kjs to build.
+
+       Check in all the genrated files, since Project Builder isn't up to
+       the task of handling built sources:
+       
+       * kjs/array_object.lut.h: Added.
+       * kjs/date_object.lut.h: Added.
+       * kjs/grammar.cpp: Added.
+       * kjs/grammar.cpp.h: Added.
+       * kjs/grammar.h: Added.
+       * kjs/lexer.lut.h: Added.
+       * kjs/math_object.lut.h: Added.
+       * kjs/number_object.lut.h: Added.
+       * kjs/string_object.lut.h: Added.
+
+       * kjs/.cvsignore: Update set of ignored things.
+
 2002-03-28  Maciej Stachowiak  <mjs@apple.com>
 
        * kjs/kjs-test.chk: Update output for new test results.
diff --git a/JavaScriptCore/English.lproj/InfoPlist.strings b/JavaScriptCore/English.lproj/InfoPlist.strings
new file mode 100644 (file)
index 0000000..6f7ee82
Binary files /dev/null and b/JavaScriptCore/English.lproj/InfoPlist.strings differ
diff --git a/JavaScriptCore/JavaScriptCore.pbproj/.cvsignore b/JavaScriptCore/JavaScriptCore.pbproj/.cvsignore
new file mode 100644 (file)
index 0000000..0857ac3
--- /dev/null
@@ -0,0 +1 @@
+*.pbxuser
diff --git a/JavaScriptCore/JavaScriptCore.pbproj/project.pbxproj b/JavaScriptCore/JavaScriptCore.pbproj/project.pbxproj
new file mode 100644 (file)
index 0000000..469e964
--- /dev/null
@@ -0,0 +1,1159 @@
+// !$*UTF8*$!
+{
+       archiveVersion = 1;
+       classes = {
+       };
+       objectVersion = 38;
+       objects = {
+               014CEA440018CDF011CA2923 = {
+                       buildRules = (
+                       );
+                       buildSettings = {
+                               COPY_PHASE_STRIP = NO;
+                               INSTALL_PATH = "@executable_path/../Frameworks";
+                               SKIP_INSTALL = YES;
+                       };
+                       isa = PBXBuildStyle;
+                       name = Development;
+               };
+               014CEA450018CDF011CA2923 = {
+                       buildRules = (
+                       );
+                       buildSettings = {
+                               COPY_PHASE_STRIP = YES;
+                               INSTALL_PATH = "@executable_path/../Frameworks";
+                               OTHER_CFLAGS = "-Os";
+                               SKIP_INSTALL = YES;
+                       };
+                       isa = PBXBuildStyle;
+                       name = Deployment;
+               };
+//010
+//011
+//012
+//013
+//014
+//030
+//031
+//032
+//033
+//034
+               034768DFFF38A50411DB9C8B = {
+                       children = (
+                               034768E0FF38A50411DB9C8B,
+                       );
+                       isa = PBXGroup;
+                       name = Products;
+                       refType = 4;
+               };
+               034768E0FF38A50411DB9C8B = {
+                       isa = PBXFrameworkReference;
+                       path = JavaScriptCore.framework;
+                       refType = 3;
+               };
+//030
+//031
+//032
+//033
+//034
+//080
+//081
+//082
+//083
+//084
+               0867D690FE84028FC02AAC07 = {
+                       buildStyles = (
+                               014CEA440018CDF011CA2923,
+                               014CEA450018CDF011CA2923,
+                               F692A8D90255645D01FF60F7,
+                       );
+                       isa = PBXProject;
+                       mainGroup = 0867D691FE84028FC02AAC07;
+                       productRefGroup = 034768DFFF38A50411DB9C8B;
+                       projectDirPath = "";
+                       targets = (
+                               0867D69CFE84028FC02AAC07,
+                       );
+               };
+               0867D691FE84028FC02AAC07 = {
+                       children = (
+                               08FB77AEFE84172EC02AAC07,
+                               089C1665FE841158C02AAC07,
+                               0867D69AFE84028FC02AAC07,
+                               034768DFFF38A50411DB9C8B,
+                               F692A8C802555BA201FF60F7,
+                               F692A8C902555BA201FF60F7,
+                               F692A8CA02555BA201FF60F7,
+                       );
+                       isa = PBXGroup;
+                       name = JavaScriptCore;
+                       refType = 4;
+               };
+               0867D69AFE84028FC02AAC07 = {
+                       children = (
+                               1058C7B0FEA5585E11CA2CBB,
+                               1058C7B2FEA5585E11CA2CBB,
+                       );
+                       isa = PBXGroup;
+                       name = "External Frameworks and Libraries";
+                       refType = 4;
+               };
+               0867D69BFE84028FC02AAC07 = {
+                       isa = PBXFrameworkReference;
+                       name = Foundation.framework;
+                       path = /System/Library/Frameworks/Foundation.framework;
+                       refType = 0;
+               };
+               0867D69CFE84028FC02AAC07 = {
+                       buildPhases = (
+                               0867D69DFE84028FC02AAC07,
+                               0867D69EFE84028FC02AAC07,
+                               0867D69FFE84028FC02AAC07,
+                               0867D6A0FE84028FC02AAC07,
+                               0867D6A2FE84028FC02AAC07,
+                               F692A8D8025563E401FF60F7,
+                       );
+                       buildSettings = {
+                               DYLIB_COMPATIBILITY_VERSION = 1;
+                               DYLIB_CURRENT_VERSION = 1;
+                               FRAMEWORK_SEARCH_PATHS = "";
+                               FRAMEWORK_VERSION = A;
+                               HEADER_SEARCH_PATHS = "";
+                               INSTALL_PATH = /System/Library/PrivateFrameworks;
+                               LIBRARY_SEARCH_PATHS = "";
+                               OTHER_CFLAGS = "-Wall -Werror -Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wcast-align -Wsign-compare -DAPPLE_CHANGES -DHAVE_CONFIG_H";
+                               PRODUCT_NAME = JavaScriptCore;
+                               SECTORDER_FLAGS = "";
+                               WARNING_CFLAGS = "-Wmost -Wno-four-char-constants -Wno-unknown-pragmas";
+                               WRAPPER_EXTENSION = framework;
+                       };
+                       dependencies = (
+                       );
+                       isa = PBXFrameworkTarget;
+                       name = JavaScriptCore;
+                       productInstallPath = /System/Library/PrivateFrameworks;
+                       productName = JavaScriptCore;
+                       productReference = 034768E0FF38A50411DB9C8B;
+                       productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
+<!DOCTYPE plist SYSTEM \"file://localhost/System/Library/DTDs/PropertyList.dtd\">
+<plist version=\"0.9\">
+<dict>
+       <key>CFBundleDevelopmentRegion</key>
+       <string>English</string>
+       <key>CFBundleExecutable</key>
+       <string>JavaScriptCore</string>
+       <key>CFBundleGetInfoString</key>
+       <string>JavaScriptCore</string>
+       <key>CFBundleIconFile</key>
+       <string></string>
+       <key>CFBundleIdentifier</key>
+       <string>com.apple.JavaScriptCore</string>
+       <key>CFBundleInfoDictionaryVersion</key>
+       <string>6.0</string>
+       <key>CFBundleLongVersionString</key>
+       <string>JavaScriptCore 0.1, Copyright (c) 2001-2002 Apple Compupter</string>
+       <key>CFBundleName</key>
+       <string>JavaScriptCore</string>
+       <key>CFBundlePackageType</key>
+       <string>FMWK</string>
+       <key>CFBundleShortVersionString</key>
+       <string>0.1</string>
+       <key>CFBundleSignature</key>
+       <string>????</string>
+       <key>CFBundleVersion</key>
+       <string>0.1</string>
+       <key>CFHumanReadableCopyright</key>
+       <string>Copyright (c) 2001-2002 Apple Computer</string>
+       <key>NSPrincipalClass</key>
+       <string></string>
+</dict>
+</plist>
+";
+                       shouldUseHeadermap = 1;
+               };
+               0867D69DFE84028FC02AAC07 = {
+                       buildActionMask = 2147483647;
+                       files = (
+                               F692A88A0255597D01FF60F7,
+                               F692A88B0255597D01FF60F7,
+                               F692A88D0255597D01FF60F7,
+                               F692A88F0255597D01FF60F7,
+                               F692A8920255597D01FF60F7,
+                               F692A8930255597D01FF60F7,
+                               F692A8950255597D01FF60F7,
+                               F692A8970255597D01FF60F7,
+                               F692A8990255597D01FF60F7,
+                               F692A89B0255597D01FF60F7,
+                               F692A89E0255597D01FF60F7,
+                               F692A8A00255597D01FF60F7,
+                               F692A8A20255597D01FF60F7,
+                               F692A8A30255597D01FF60F7,
+                               F692A8A50255597D01FF60F7,
+                               F692A8A70255597D01FF60F7,
+                               F692A8A80255597D01FF60F7,
+                               F692A8AA0255597D01FF60F7,
+                               F692A8AD0255597D01FF60F7,
+                               F692A8AE0255597D01FF60F7,
+                               F692A8B00255597D01FF60F7,
+                               F692A8B20255597D01FF60F7,
+                               F692A8B40255597D01FF60F7,
+                               F692A8B60255597D01FF60F7,
+                               F692A8B80255597D01FF60F7,
+                               F692A8BA0255597D01FF60F7,
+                               F692A8BC0255597D01FF60F7,
+                               F692A8BD0255597D01FF60F7,
+                               F692A8C00255597D01FF60F7,
+                               F692A8C20255597D01FF60F7,
+                               F692A8C40255597D01FF60F7,
+                               F692A8CC02555BA201FF60F7,
+                               F692A8CD02555BA201FF60F7,
+                       );
+                       isa = PBXHeadersBuildPhase;
+               };
+               0867D69EFE84028FC02AAC07 = {
+                       buildActionMask = 2147483647;
+                       files = (
+                               089C1668FE841158C02AAC07,
+                               F692A8900255597D01FF60F7,
+                       );
+                       isa = PBXResourcesBuildPhase;
+               };
+               0867D69FFE84028FC02AAC07 = {
+                       buildActionMask = 2147483647;
+                       files = (
+                               F692A8890255597D01FF60F7,
+                               F692A88C0255597D01FF60F7,
+                               F692A88E0255597D01FF60F7,
+                               F692A8910255597D01FF60F7,
+                               F692A8940255597D01FF60F7,
+                               F692A8960255597D01FF60F7,
+                               F692A8980255597D01FF60F7,
+                               F692A89A0255597D01FF60F7,
+                               F692A89D0255597D01FF60F7,
+                               F692A89F0255597D01FF60F7,
+                               F692A8A10255597D01FF60F7,
+                               F692A8A40255597D01FF60F7,
+                               F692A8A60255597D01FF60F7,
+                               F692A8A90255597D01FF60F7,
+                               F692A8AC0255597D01FF60F7,
+                               F692A8AF0255597D01FF60F7,
+                               F692A8B10255597D01FF60F7,
+                               F692A8B30255597D01FF60F7,
+                               F692A8B50255597D01FF60F7,
+                               F692A8B70255597D01FF60F7,
+                               F692A8B90255597D01FF60F7,
+                               F692A8BB0255597D01FF60F7,
+                               F692A8BF0255597D01FF60F7,
+                               F692A8C10255597D01FF60F7,
+                               F692A8C30255597D01FF60F7,
+                               F692A8CB02555BA201FF60F7,
+                       );
+                       isa = PBXSourcesBuildPhase;
+               };
+               0867D6A0FE84028FC02AAC07 = {
+                       buildActionMask = 2147483647;
+                       files = (
+                               1058C7B3FEA5585E11CA2CBB,
+                       );
+                       isa = PBXFrameworksBuildPhase;
+               };
+               0867D6A2FE84028FC02AAC07 = {
+                       buildActionMask = 2147483647;
+                       files = (
+                       );
+                       isa = PBXRezBuildPhase;
+               };
+               0867D6A5FE840307C02AAC07 = {
+                       isa = PBXFrameworkReference;
+                       name = AppKit.framework;
+                       path = /System/Library/Frameworks/AppKit.framework;
+                       refType = 0;
+               };
+               089C1665FE841158C02AAC07 = {
+                       children = (
+                               089C1666FE841158C02AAC07,
+                       );
+                       isa = PBXGroup;
+                       name = Resources;
+                       refType = 4;
+               };
+               089C1666FE841158C02AAC07 = {
+                       children = (
+                               089C1667FE841158C02AAC07,
+                       );
+                       isa = PBXVariantGroup;
+                       name = InfoPlist.strings;
+                       refType = 4;
+               };
+               089C1667FE841158C02AAC07 = {
+                       fileEncoding = 10;
+                       isa = PBXFileReference;
+                       name = English;
+                       path = English.lproj/InfoPlist.strings;
+                       refType = 4;
+               };
+               089C1668FE841158C02AAC07 = {
+                       fileRef = 089C1666FE841158C02AAC07;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               08FB77AEFE84172EC02AAC07 = {
+                       children = (
+                               F692A84D0255597D01FF60F7,
+                               F692A84E0255597D01FF60F7,
+                               F692A84F0255597D01FF60F7,
+                               F692A8500255597D01FF60F7,
+                               F692A8510255597D01FF60F7,
+                               F692A8520255597D01FF60F7,
+                               F692A8530255597D01FF60F7,
+                               F692A8540255597D01FF60F7,
+                               F692A8550255597D01FF60F7,
+                               F692A8560255597D01FF60F7,
+                               F692A8570255597D01FF60F7,
+                               F692A8580255597D01FF60F7,
+                               F692A8590255597D01FF60F7,
+                               F692A85A0255597D01FF60F7,
+                               F692A85B0255597D01FF60F7,
+                               F692A85C0255597D01FF60F7,
+                               F692A85D0255597D01FF60F7,
+                               F692A85E0255597D01FF60F7,
+                               F692A85F0255597D01FF60F7,
+                               F692A8610255597D01FF60F7,
+                               F692A8620255597D01FF60F7,
+                               F692A8630255597D01FF60F7,
+                               F692A8640255597D01FF60F7,
+                               F692A8650255597D01FF60F7,
+                               F692A8660255597D01FF60F7,
+                               F692A8670255597D01FF60F7,
+                               F692A8680255597D01FF60F7,
+                               F692A8690255597D01FF60F7,
+                               F692A86A0255597D01FF60F7,
+                               F692A86B0255597D01FF60F7,
+                               F692A86C0255597D01FF60F7,
+                               F692A86D0255597D01FF60F7,
+                               F692A86E0255597D01FF60F7,
+                               F692A8700255597D01FF60F7,
+                               F692A8710255597D01FF60F7,
+                               F692A8720255597D01FF60F7,
+                               F692A8730255597D01FF60F7,
+                               F692A8740255597D01FF60F7,
+                               F692A8750255597D01FF60F7,
+                               F692A8760255597D01FF60F7,
+                               F692A8770255597D01FF60F7,
+                               F692A8780255597D01FF60F7,
+                               F692A8790255597D01FF60F7,
+                               F692A87A0255597D01FF60F7,
+                               F692A87B0255597D01FF60F7,
+                               F692A87C0255597D01FF60F7,
+                               F692A87D0255597D01FF60F7,
+                               F692A87E0255597D01FF60F7,
+                               F692A87F0255597D01FF60F7,
+                               F692A8800255597D01FF60F7,
+                               F692A8810255597D01FF60F7,
+                               F692A8830255597D01FF60F7,
+                               F692A8840255597D01FF60F7,
+                               F692A8850255597D01FF60F7,
+                               F692A8860255597D01FF60F7,
+                               F692A8870255597D01FF60F7,
+                               F692A8880255597D01FF60F7,
+                       );
+                       isa = PBXGroup;
+                       name = Classes;
+                       refType = 4;
+               };
+//080
+//081
+//082
+//083
+//084
+//100
+//101
+//102
+//103
+//104
+               1058C7B0FEA5585E11CA2CBB = {
+                       children = (
+                               1058C7B1FEA5585E11CA2CBB,
+                       );
+                       isa = PBXGroup;
+                       name = "Linked Frameworks";
+                       refType = 4;
+               };
+               1058C7B1FEA5585E11CA2CBB = {
+                       isa = PBXFrameworkReference;
+                       name = Cocoa.framework;
+                       path = /System/Library/Frameworks/Cocoa.framework;
+                       refType = 0;
+               };
+               1058C7B2FEA5585E11CA2CBB = {
+                       children = (
+                               0867D69BFE84028FC02AAC07,
+                               0867D6A5FE840307C02AAC07,
+                       );
+                       isa = PBXGroup;
+                       name = "Other Frameworks";
+                       refType = 4;
+               };
+               1058C7B3FEA5585E11CA2CBB = {
+                       fileRef = 1058C7B1FEA5585E11CA2CBB;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+//100
+//101
+//102
+//103
+//104
+//F60
+//F61
+//F62
+//F63
+//F64
+               F692A84D0255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = array_object.cpp;
+                       path = kjs/array_object.cpp;
+                       refType = 4;
+               };
+               F692A84E0255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = array_object.h;
+                       path = kjs/array_object.h;
+                       refType = 4;
+               };
+               F692A84F0255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = array_object.lut.h;
+                       path = kjs/array_object.lut.h;
+                       refType = 4;
+               };
+               F692A8500255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = bool_object.cpp;
+                       path = kjs/bool_object.cpp;
+                       refType = 4;
+               };
+               F692A8510255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = bool_object.h;
+                       path = kjs/bool_object.h;
+                       refType = 4;
+               };
+               F692A8520255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = collector.cpp;
+                       path = kjs/collector.cpp;
+                       refType = 4;
+               };
+               F692A8530255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = collector.h;
+                       path = kjs/collector.h;
+                       refType = 4;
+               };
+               F692A8540255597D01FF60F7 = {
+                       isa = PBXExecutableFileReference;
+                       name = create_hash_table;
+                       path = kjs/create_hash_table;
+                       refType = 4;
+               };
+               F692A8550255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = date_object.cpp;
+                       path = kjs/date_object.cpp;
+                       refType = 4;
+               };
+               F692A8560255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = date_object.h;
+                       path = kjs/date_object.h;
+                       refType = 4;
+               };
+               F692A8570255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = date_object.lut.h;
+                       path = kjs/date_object.lut.h;
+                       refType = 4;
+               };
+               F692A8580255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = debugger.cpp;
+                       path = kjs/debugger.cpp;
+                       refType = 4;
+               };
+               F692A8590255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = debugger.h;
+                       path = kjs/debugger.h;
+                       refType = 4;
+               };
+               F692A85A0255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = error_object.cpp;
+                       path = kjs/error_object.cpp;
+                       refType = 4;
+               };
+               F692A85B0255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = error_object.h;
+                       path = kjs/error_object.h;
+                       refType = 4;
+               };
+               F692A85C0255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = function_object.cpp;
+                       path = kjs/function_object.cpp;
+                       refType = 4;
+               };
+               F692A85D0255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = function_object.h;
+                       path = kjs/function_object.h;
+                       refType = 4;
+               };
+               F692A85E0255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = function.cpp;
+                       path = kjs/function.cpp;
+                       refType = 4;
+               };
+               F692A85F0255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = function.h;
+                       path = kjs/function.h;
+                       refType = 4;
+               };
+               F692A8610255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = internal.cpp;
+                       path = kjs/internal.cpp;
+                       refType = 4;
+               };
+               F692A8620255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = internal.h;
+                       path = kjs/internal.h;
+                       refType = 4;
+               };
+               F692A8630255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = interpreter.cpp;
+                       path = kjs/interpreter.cpp;
+                       refType = 4;
+               };
+               F692A8640255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = interpreter.h;
+                       path = kjs/interpreter.h;
+                       refType = 4;
+               };
+               F692A8650255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = lexer.cpp;
+                       path = kjs/lexer.cpp;
+                       refType = 4;
+               };
+               F692A8660255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = lexer.h;
+                       path = kjs/lexer.h;
+                       refType = 4;
+               };
+               F692A8670255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = lexer.lut.h;
+                       path = kjs/lexer.lut.h;
+                       refType = 4;
+               };
+               F692A8680255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = lookup.cpp;
+                       path = kjs/lookup.cpp;
+                       refType = 4;
+               };
+               F692A8690255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = lookup.h;
+                       path = kjs/lookup.h;
+                       refType = 4;
+               };
+               F692A86A0255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = math_object.cpp;
+                       path = kjs/math_object.cpp;
+                       refType = 4;
+               };
+               F692A86B0255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = math_object.h;
+                       path = kjs/math_object.h;
+                       refType = 4;
+               };
+               F692A86C0255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = math_object.lut.h;
+                       path = kjs/math_object.lut.h;
+                       refType = 4;
+               };
+               F692A86D0255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = nodes.cpp;
+                       path = kjs/nodes.cpp;
+                       refType = 4;
+               };
+               F692A86E0255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = nodes.h;
+                       path = kjs/nodes.h;
+                       refType = 4;
+               };
+               F692A8700255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = number_object.cpp;
+                       path = kjs/number_object.cpp;
+                       refType = 4;
+               };
+               F692A8710255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = number_object.h;
+                       path = kjs/number_object.h;
+                       refType = 4;
+               };
+               F692A8720255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = number_object.lut.h;
+                       path = kjs/number_object.lut.h;
+                       refType = 4;
+               };
+               F692A8730255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = object_object.cpp;
+                       path = kjs/object_object.cpp;
+                       refType = 4;
+               };
+               F692A8740255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = object_object.h;
+                       path = kjs/object_object.h;
+                       refType = 4;
+               };
+               F692A8750255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = object.cpp;
+                       path = kjs/object.cpp;
+                       refType = 4;
+               };
+               F692A8760255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = object.h;
+                       path = kjs/object.h;
+                       refType = 4;
+               };
+               F692A8770255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = operations.cpp;
+                       path = kjs/operations.cpp;
+                       refType = 4;
+               };
+               F692A8780255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = operations.h;
+                       path = kjs/operations.h;
+                       refType = 4;
+               };
+               F692A8790255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = property_map.cpp;
+                       path = kjs/property_map.cpp;
+                       refType = 4;
+               };
+               F692A87A0255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = property_map.h;
+                       path = kjs/property_map.h;
+                       refType = 4;
+               };
+               F692A87B0255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = regexp_object.cpp;
+                       path = kjs/regexp_object.cpp;
+                       refType = 4;
+               };
+               F692A87C0255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = regexp_object.h;
+                       path = kjs/regexp_object.h;
+                       refType = 4;
+               };
+               F692A87D0255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = regexp.cpp;
+                       path = kjs/regexp.cpp;
+                       refType = 4;
+               };
+               F692A87E0255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = regexp.h;
+                       path = kjs/regexp.h;
+                       refType = 4;
+               };
+               F692A87F0255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = string_object.cpp;
+                       path = kjs/string_object.cpp;
+                       refType = 4;
+               };
+               F692A8800255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = string_object.h;
+                       path = kjs/string_object.h;
+                       refType = 4;
+               };
+               F692A8810255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = string_object.lut.h;
+                       path = kjs/string_object.lut.h;
+                       refType = 4;
+               };
+               F692A8830255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = types.cpp;
+                       path = kjs/types.cpp;
+                       refType = 4;
+               };
+               F692A8840255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = types.h;
+                       path = kjs/types.h;
+                       refType = 4;
+               };
+               F692A8850255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = ustring.cpp;
+                       path = kjs/ustring.cpp;
+                       refType = 4;
+               };
+               F692A8860255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = ustring.h;
+                       path = kjs/ustring.h;
+                       refType = 4;
+               };
+               F692A8870255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = value.cpp;
+                       path = kjs/value.cpp;
+                       refType = 4;
+               };
+               F692A8880255597D01FF60F7 = {
+                       isa = PBXFileReference;
+                       name = value.h;
+                       path = kjs/value.h;
+                       refType = 4;
+               };
+               F692A8890255597D01FF60F7 = {
+                       fileRef = F692A84D0255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A88A0255597D01FF60F7 = {
+                       fileRef = F692A84E0255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A88B0255597D01FF60F7 = {
+                       fileRef = F692A84F0255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A88C0255597D01FF60F7 = {
+                       fileRef = F692A8500255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A88D0255597D01FF60F7 = {
+                       fileRef = F692A8510255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A88E0255597D01FF60F7 = {
+                       fileRef = F692A8520255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A88F0255597D01FF60F7 = {
+                       fileRef = F692A8530255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8900255597D01FF60F7 = {
+                       fileRef = F692A8540255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8910255597D01FF60F7 = {
+                       fileRef = F692A8550255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8920255597D01FF60F7 = {
+                       fileRef = F692A8560255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8930255597D01FF60F7 = {
+                       fileRef = F692A8570255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8940255597D01FF60F7 = {
+                       fileRef = F692A8580255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8950255597D01FF60F7 = {
+                       fileRef = F692A8590255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8960255597D01FF60F7 = {
+                       fileRef = F692A85A0255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8970255597D01FF60F7 = {
+                       fileRef = F692A85B0255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8980255597D01FF60F7 = {
+                       fileRef = F692A85C0255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8990255597D01FF60F7 = {
+                       fileRef = F692A85D0255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A89A0255597D01FF60F7 = {
+                       fileRef = F692A85E0255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A89B0255597D01FF60F7 = {
+                       fileRef = F692A85F0255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A89D0255597D01FF60F7 = {
+                       fileRef = F692A8610255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A89E0255597D01FF60F7 = {
+                       fileRef = F692A8620255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A89F0255597D01FF60F7 = {
+                       fileRef = F692A8630255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8A00255597D01FF60F7 = {
+                       fileRef = F692A8640255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8A10255597D01FF60F7 = {
+                       fileRef = F692A8650255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8A20255597D01FF60F7 = {
+                       fileRef = F692A8660255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8A30255597D01FF60F7 = {
+                       fileRef = F692A8670255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8A40255597D01FF60F7 = {
+                       fileRef = F692A8680255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8A50255597D01FF60F7 = {
+                       fileRef = F692A8690255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8A60255597D01FF60F7 = {
+                       fileRef = F692A86A0255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8A70255597D01FF60F7 = {
+                       fileRef = F692A86B0255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8A80255597D01FF60F7 = {
+                       fileRef = F692A86C0255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8A90255597D01FF60F7 = {
+                       fileRef = F692A86D0255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8AA0255597D01FF60F7 = {
+                       fileRef = F692A86E0255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8AC0255597D01FF60F7 = {
+                       fileRef = F692A8700255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8AD0255597D01FF60F7 = {
+                       fileRef = F692A8710255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8AE0255597D01FF60F7 = {
+                       fileRef = F692A8720255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8AF0255597D01FF60F7 = {
+                       fileRef = F692A8730255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8B00255597D01FF60F7 = {
+                       fileRef = F692A8740255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8B10255597D01FF60F7 = {
+                       fileRef = F692A8750255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8B20255597D01FF60F7 = {
+                       fileRef = F692A8760255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8B30255597D01FF60F7 = {
+                       fileRef = F692A8770255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8B40255597D01FF60F7 = {
+                       fileRef = F692A8780255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8B50255597D01FF60F7 = {
+                       fileRef = F692A8790255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8B60255597D01FF60F7 = {
+                       fileRef = F692A87A0255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8B70255597D01FF60F7 = {
+                       fileRef = F692A87B0255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8B80255597D01FF60F7 = {
+                       fileRef = F692A87C0255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8B90255597D01FF60F7 = {
+                       fileRef = F692A87D0255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8BA0255597D01FF60F7 = {
+                       fileRef = F692A87E0255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8BB0255597D01FF60F7 = {
+                       fileRef = F692A87F0255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8BC0255597D01FF60F7 = {
+                       fileRef = F692A8800255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8BD0255597D01FF60F7 = {
+                       fileRef = F692A8810255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8BF0255597D01FF60F7 = {
+                       fileRef = F692A8830255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8C00255597D01FF60F7 = {
+                       fileRef = F692A8840255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8C10255597D01FF60F7 = {
+                       fileRef = F692A8850255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8C20255597D01FF60F7 = {
+                       fileRef = F692A8860255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8C30255597D01FF60F7 = {
+                       fileRef = F692A8870255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8C40255597D01FF60F7 = {
+                       fileRef = F692A8880255597D01FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8C802555BA201FF60F7 = {
+                       isa = PBXFileReference;
+                       name = grammar.cpp;
+                       path = kjs/grammar.cpp;
+                       refType = 4;
+               };
+               F692A8C902555BA201FF60F7 = {
+                       isa = PBXFileReference;
+                       name = grammar.cpp.h;
+                       path = kjs/grammar.cpp.h;
+                       refType = 4;
+               };
+               F692A8CA02555BA201FF60F7 = {
+                       isa = PBXFileReference;
+                       name = grammar.h;
+                       path = kjs/grammar.h;
+                       refType = 4;
+               };
+               F692A8CB02555BA201FF60F7 = {
+                       fileRef = F692A8C802555BA201FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8CC02555BA201FF60F7 = {
+                       fileRef = F692A8C902555BA201FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8CD02555BA201FF60F7 = {
+                       fileRef = F692A8CA02555BA201FF60F7;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F692A8D8025563E401FF60F7 = {
+                       buildActionMask = 2147483647;
+                       files = (
+                       );
+                       generatedFileNames = (
+                       );
+                       isa = PBXShellScriptBuildPhase;
+                       neededFileNames = (
+                       );
+                       shellPath = /bin/sh;
+                       shellScript = "if [ -f ../configure.in ]; then make embed; fi";
+               };
+               F692A8D90255645D01FF60F7 = {
+                       buildRules = (
+                       );
+                       buildSettings = {
+                               COPY_PHASE_STRIP = YES;
+                               INSTALL_PATH = "";
+                               OPTIMIZATION_CFLAGS = "-Os";
+                       };
+                       isa = PBXBuildStyle;
+                       name = Standalone;
+               };
+       };
+       rootObject = 0867D690FE84028FC02AAC07;
+}
index ed972d5..b8adbf8 100644 (file)
@@ -2,59 +2,46 @@ NULL=
 
 SUBDIRS = kjs
 
-symrootsdir = $(SYMROOTS)
+INCLUDES = -I $(top_srcdir)/JavaScriptCore/kjs
 
-symroots_LIBRARIES = libJavaScriptCore.dylib
+# FIXME: need to build kjs test program
+noinst_PROGRAMS = kjs/testkjs
+kjs_testkjs_SOURCES = kjs/testkjs.cpp JavaScriptCore-stamp
+kjs_testkjs_LDFLAGS = -F$(SYMROOTS) -framework JavaScriptCore
 
-libJavaScriptCore_dylib_SOURCES = \
-       dummy.cpp \
-       $(NULL)
+BUILT_SOURCES = JavaScriptCore-stamp
+CLEANFILES = $(BUILT_SOURCES)
 
-libJavaScriptCore_dylib_LIBADD = \
-       ./kjs/libkjs.o \
-       $(NULL)
+JavaScriptCore-stamp:
+       pbxbuild -buildstyle $(BUILDSTYLE)
+       touch JavaScriptCore-stamp
 
-LIBJAVASCRIPTCORE_INSTALL_PATH = @executable_path/../Frameworks
-
-DYLIB_NAME = libJavaScriptCore.dylib
+FRAMEWORK_NAME = JavaScriptCore
+FRAMEWORK_DIR = $(SYMROOTS)/$(FRAMEWORK_NAME).framework
+FRAMEWORK_DYLIB = $(FRAMEWORK_DIR)/Versions/Current/$(FRAMEWORK_NAME)
 EMBED_HOST = $(SYMROOTS)/Alexander.app
 EMBED_DIR = $(EMBED_HOST)/Contents/Frameworks
 
 embed:
-       @if test -f "$(DYLIB_NAME)"; then \
-               INSTALL_PATH=`otool -D "$(DYLIB_NAME)"`; \
+       @if test -f "$(FRAMEWORK_DYLIB)"; then \
+               INSTALL_PATH=`otool -D "$(FRAMEWORK_DYLIB)"`; \
                WILL_EMBED=`echo $$INSTALL_PATH | sed -n -e "s/@executable_path//p"`; \
                if test -n "$$WILL_EMBED"; then \
                        if [ -d "$(EMBED_HOST)" ]; then \
                                if [ ! -d "$(EMBED_DIR)" ]; then \
                                        mkdir -p "$(EMBED_DIR)"; \
                                fi; \
-                               echo "embedding $(DYLIB_NAME) into $(EMBED_HOST)..."; \
-                               cp -f $(DYLIB_NAME) $(EMBED_DIR); \
+                               echo "embedding $(FRAMEWORK_NAME) into $(EMBED_HOST)..."; \
+                               cp -rf $(FRAMEWORK_DIR) $(EMBED_DIR); \
                        else \
                                echo "$(EMBED_HOST) not found. Not embedding framework"; \
                        fi; \
                fi; \
         else \
-               echo "can't find: $(DYLIB_NAME)"; \
+               echo "can't find: $(FRAMEWORK_DYLIB)"; \
                exit 1; \
         fi
 
-LDFLAGS = \
-        -dynamiclib \
-       -twolevel_namespace \
-       -prebind \
-        -undefined error \
-        -all_load \
-       -seg1addr 0x6000000 \
-        -install_name $(LIBJAVASCRIPTCORE_INSTALL_PATH)/libJavaScriptCore.dylib \
-       $(NULL)
-
-libJavaScriptCore_dylib_AR = $(OBJCXXLD) $(AM_OBJCXXFLAGS) $(OBJCXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o
-
-noinst_DATA = JavaScriptCore-install-stamp
-
-JavaScriptCore-install-stamp: libJavaScriptCore.dylib
-       $(MAKE) install-symrootsLIBRARIES
-       touch ./JavaScriptCore-install-stamp
+clean:
+       pbxbuild clean
 
index 218f94f..e9467e5 100644 (file)
@@ -1,14 +1,8 @@
 Makefile.in
 Makefile
 testkjs
-grammar.cpp
-grammar.cpp.h
-grammar.h
 .deps
 *-stamp
-*.lo
-*.la
 .libs
-*.lut.h
 kjs-test.diff
 kjs-test.out
diff --git a/JavaScriptCore/kjs/KWQDef.h b/JavaScriptCore/kjs/KWQDef.h
new file mode 100644 (file)
index 0000000..b3fb19c
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2001 Apple Computer, Inc.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
+ */
+
+#ifndef KWQDEF_H_
+#define KWQDEF_H_
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+typedef unsigned char uchar;
+typedef unsigned short ushort;
+typedef unsigned uint;
+typedef unsigned long ulong;
+
+#endif
index 397059a..8a751c6 100644 (file)
@@ -1,74 +1,5 @@
 NULL =
 
-noinst_LIBRARIES = libkjs.o
-libkjs_o_ldflags = -Wl,-r -nostdlib
-libkjs_o_AR = $(OBJCXXLD) $(AM_OBJCXXFLAGS) $(OBJCXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) $(libkjs_o_ldflags) -o
-
-INCLUDES = $(KWQ_INCLUDES)
-
-libkjs_o_SOURCES = \
-       array_object.cpp \
-       array_object.h \
-       bool_object.cpp \
-       bool_object.h \
-       collector.cpp \
-       collector.h \
-       date_object.cpp \
-       date_object.h \
-       debugger.cpp \
-       debugger.h \
-       error_object.cpp \
-       error_object.h \
-       function.cpp \
-       function.h \
-       function_object.cpp \
-       function_object.h \
-       grammar.cpp \
-       grammar.h \
-       internal.cpp \
-       internal.h \
-       interpreter.cpp \
-       interpreter.h \
-       lexer.cpp \
-       lexer.h \
-       lexer.lut.h \
-       lookup.cpp \
-       lookup.h \
-       math_object.cpp \
-       math_object.h \
-       math_object.lut.h \
-       nodes.cpp \
-       nodes.h \
-       number_object.cpp \
-       number_object.h \
-       object.cpp \
-       object.h \
-       object_object.cpp \
-       object_object.h \
-       operations.cpp \
-       operations.h \
-       property_map.cpp \
-       property_map.h \
-       regexp.cpp \
-       regexp.h \
-       regexp_object.cpp \
-       regexp_object.h \
-       string_object.cpp \
-       string_object.h \
-       types.cpp \
-       types.h \
-       ustring.cpp \
-       ustring.h \
-       value.cpp \
-       value.h \
-       $(NULL)
-
-noinst_PROGRAMS = testkjs
-
-testkjs_SOURCES = testkjs.cpp
-
-testkjs_LDADD = $(srcdir)/libkjs.o
-
 YACCFLAGS = -d --output-file=grammar.cpp --file-prefix=grammar --name-prefix=kjsyy
 
 GRAMMAR_FILES = grammar.h grammar.cpp.h grammar.cpp
@@ -77,7 +8,7 @@ $(GRAMMAR_FILES): grammar-stamp
 
 grammar-stamp: grammar.y
        $(YACC) $(YACCFLAGS) $<
-       ln -sf grammar.cpp.h grammar.h
+       cp -f grammar.cpp.h grammar.h
        touch ./grammar-stamp
 
 LUT_FILES = math_object.lut.h lexer.lut.h array_object.lut.h date_object.lut.h string_object.lut.h number_object.lut.h
@@ -102,5 +33,6 @@ string_object.lut.h: string_object.cpp
 
 BUILT_SOURCES = $(GRAMMAR_FILES) $(LUT_FILES) grammar-stamp
 
-CLEANFILES = $(BUILT_SOURCES)
+noinst_DATA = $(BUILT_SOURCES)
+
 
diff --git a/JavaScriptCore/kjs/array_object.lut.h b/JavaScriptCore/kjs/array_object.lut.h
new file mode 100644 (file)
index 0000000..27bd35e
--- /dev/null
@@ -0,0 +1,28 @@
+/* Automatically generated from array_object.cpp using ./create_hash_table. DO NOT EDIT ! */
+
+#include "lookup.h"
+
+namespace KJS {
+
+const struct HashEntry arrayTableEntries[] = {
+   { "toString", ArrayProtoFuncImp::ToString, DontEnum|Function, 0, 0 },
+   { "sort", ArrayProtoFuncImp::Sort, DontEnum|Function, 1, 0 },
+   { "unshift", ArrayProtoFuncImp::UnShift, DontEnum|Function, 1, 0 },
+   { "join", ArrayProtoFuncImp::Join, DontEnum|Function, 1, &arrayTableEntries[15] },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "push", ArrayProtoFuncImp::Push, DontEnum|Function, 1, 0 },
+   { "toLocaleString", ArrayProtoFuncImp::ToLocaleString, DontEnum|Function, 0, 0 },
+   { "concat", ArrayProtoFuncImp::Concat, DontEnum|Function, 1, &arrayTableEntries[14] },
+   { "shift", ArrayProtoFuncImp::Shift, DontEnum|Function, 0, 0 },
+   { "pop", ArrayProtoFuncImp::Pop, DontEnum|Function, 0, &arrayTableEntries[13] },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "reverse", ArrayProtoFuncImp::Reverse, DontEnum|Function, 0, 0 },
+   { "slice", ArrayProtoFuncImp::Slice, DontEnum|Function, 2, 0 },
+   { "splice", ArrayProtoFuncImp::Splice, DontEnum|Function, 2, 0 }
+};
+
+const struct HashTable arrayTable = { 2, 16, arrayTableEntries, 13 };
+
+}; // namespace
diff --git a/JavaScriptCore/kjs/config.h b/JavaScriptCore/kjs/config.h
new file mode 100644 (file)
index 0000000..39e7fc9
--- /dev/null
@@ -0,0 +1,5 @@
+
+#define TIME_WITH_SYS_TIME 1
+#define HAVE_SYS_TIME_H 1
+#define HAVE_FUNC_ISNAN 1
+#define HAVE_STRINGS_H
diff --git a/JavaScriptCore/kjs/date_object.lut.h b/JavaScriptCore/kjs/date_object.lut.h
new file mode 100644 (file)
index 0000000..c76862e
--- /dev/null
@@ -0,0 +1,83 @@
+/* Automatically generated from date_object.cpp using ./create_hash_table. DO NOT EDIT ! */
+
+#include "lookup.h"
+
+namespace KJS {
+
+const struct HashEntry dateTableEntries[] = {
+   { "setMilliseconds", DateProtoFuncImp::SetMilliSeconds, DontEnum|Function, 1, 0 },
+   { "setYear", DateProtoFuncImp::SetYear, DontEnum|Function, 1, 0 },
+   { "toLocaleDateString", DateProtoFuncImp::ToLocaleDateString, DontEnum|Function, 0, &dateTableEntries[64] },
+   { 0, 0, 0, 0, 0 },
+   { "toString", DateProtoFuncImp::ToString, DontEnum|Function, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "setUTCSeconds", -DateProtoFuncImp::SetSeconds, DontEnum|Function, 2, 0 },
+   { "setHours", DateProtoFuncImp::SetHours, DontEnum|Function, 4, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "getTimezoneOffset", DateProtoFuncImp::GetTimezoneOffset, DontEnum|Function, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "setSeconds", DateProtoFuncImp::SetSeconds, DontEnum|Function, 2, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "getUTCMinutes", -DateProtoFuncImp::GetMinutes, DontEnum|Function, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "getUTCFullYear", -DateProtoFuncImp::GetFullYear, DontEnum|Function, 0, 0 },
+   { "toLocaleTimeString", DateProtoFuncImp::ToLocaleTimeString, DontEnum|Function, 0, 0 },
+   { "toDateString", DateProtoFuncImp::ToDateString, DontEnum|Function, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "getUTCDate", -DateProtoFuncImp::GetDate, DontEnum|Function, 0, 0 },
+   { "getMinutes", DateProtoFuncImp::GetMinutes, DontEnum|Function, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "getFullYear", DateProtoFuncImp::GetFullYear, DontEnum|Function, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "setUTCMinutes", -DateProtoFuncImp::SetMinutes, DontEnum|Function, 3, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "setUTCFullYear", -DateProtoFuncImp::SetFullYear, DontEnum|Function, 3, 0 },
+   { "getDate", DateProtoFuncImp::GetDate, DontEnum|Function, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "setUTCDate", -DateProtoFuncImp::SetDate, DontEnum|Function, 1, 0 },
+   { "setMinutes", DateProtoFuncImp::SetMinutes, DontEnum|Function, 3, 0 },
+   { "toTimeString", DateProtoFuncImp::ToTimeString, DontEnum|Function, 0, &dateTableEntries[61] },
+   { "setFullYear", DateProtoFuncImp::SetFullYear, DontEnum|Function, 3, 0 },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "getUTCMilliseconds", -DateProtoFuncImp::GetMilliSeconds, DontEnum|Function, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "setDate", DateProtoFuncImp::SetDate, DontEnum|Function, 1, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "getMonth", DateProtoFuncImp::GetMonth, DontEnum|Function, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "toLocaleString", DateProtoFuncImp::ToLocaleString, DontEnum|Function, 0, 0 },
+   { "getTime", DateProtoFuncImp::GetTime, DontEnum|Function, 0, &dateTableEntries[63] },
+   { "getUTCDay", -DateProtoFuncImp::GetDay, DontEnum|Function, 0, &dateTableEntries[65] },
+   { "getYear", DateProtoFuncImp::GetYear, DontEnum|Function, 0, 0 },
+   { "valueOf", DateProtoFuncImp::ValueOf, DontEnum|Function, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "toGMTString", DateProtoFuncImp::ToGMTString, DontEnum|Function, 0, &dateTableEntries[66] },
+   { 0, 0, 0, 0, 0 },
+   { "getUTCSeconds", -DateProtoFuncImp::GetSeconds, DontEnum|Function, 0, 0 },
+   { "getHours", DateProtoFuncImp::GetHours, DontEnum|Function, 0, 0 },
+   { "toUTCString", -DateProtoFuncImp::ToString, DontEnum|Function, 0, &dateTableEntries[62] },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "setTime", DateProtoFuncImp::SetTime, DontEnum|Function, 1, &dateTableEntries[67] },
+   { "getUTCMonth", -DateProtoFuncImp::GetMonth, DontEnum|Function, 0, 0 },
+   { "getDay", DateProtoFuncImp::GetDay, DontEnum|Function, 0, &dateTableEntries[68] },
+   { "getUTCHours", -DateProtoFuncImp::GetHours, DontEnum|Function, 0, 0 },
+   { "getSeconds", DateProtoFuncImp::GetSeconds, DontEnum|Function, 0, 0 },
+   { "getMilliseconds", DateProtoFuncImp::GetMilliSeconds, DontEnum|Function, 0, &dateTableEntries[69] },
+   { "setUTCMilliseconds", -DateProtoFuncImp::SetMilliSeconds, DontEnum|Function, 1, &dateTableEntries[70] },
+   { "setUTCHours", -DateProtoFuncImp::SetHours, DontEnum|Function, 4, 0 },
+   { "setMonth", DateProtoFuncImp::SetMonth, DontEnum|Function, 2, 0 },
+   { "setUTCMonth", -DateProtoFuncImp::SetMonth, DontEnum|Function, 2, 0 },
+   { "toGMTString", DateProtoFuncImp::ToGMTString, DontEnum|Function, 0, 0 }
+};
+
+const struct HashTable dateTable = { 2, 71, dateTableEntries, 61 };
+
+}; // namespace
diff --git a/JavaScriptCore/kjs/grammar.cpp b/JavaScriptCore/kjs/grammar.cpp
new file mode 100644 (file)
index 0000000..f3dd715
--- /dev/null
@@ -0,0 +1,2256 @@
+
+/*  A Bison parser, made from grammar.y
+    by GNU Bison version 1.28  */
+
+#define YYBISON 1  /* Identify Bison output.  */
+
+#define yyparse kjsyyparse
+#define yylex kjsyylex
+#define yyerror kjsyyerror
+#define yylval kjsyylval
+#define yychar kjsyychar
+#define yydebug kjsyydebug
+#define yynerrs kjsyynerrs
+#define YYLSP_NEEDED
+
+#define        NULLTOKEN       257
+#define        TRUETOKEN       258
+#define        FALSETOKEN      259
+#define        STRING  260
+#define        NUMBER  261
+#define        BREAK   262
+#define        CASE    263
+#define        DEFAULT 264
+#define        FOR     265
+#define        NEW     266
+#define        VAR     267
+#define        CONTINUE        268
+#define        FUNCTION        269
+#define        RETURN  270
+#define        VOID    271
+#define        DELETE  272
+#define        IF      273
+#define        THIS    274
+#define        DO      275
+#define        WHILE   276
+#define        ELSE    277
+#define        IN      278
+#define        INSTANCEOF      279
+#define        TYPEOF  280
+#define        SWITCH  281
+#define        WITH    282
+#define        RESERVED        283
+#define        THROW   284
+#define        TRY     285
+#define        CATCH   286
+#define        FINALLY 287
+#define        EQEQ    288
+#define        NE      289
+#define        STREQ   290
+#define        STRNEQ  291
+#define        LE      292
+#define        GE      293
+#define        OR      294
+#define        AND     295
+#define        PLUSPLUS        296
+#define        MINUSMINUS      297
+#define        LSHIFT  298
+#define        RSHIFT  299
+#define        URSHIFT 300
+#define        PLUSEQUAL       301
+#define        MINUSEQUAL      302
+#define        MULTEQUAL       303
+#define        DIVEQUAL        304
+#define        LSHIFTEQUAL     305
+#define        RSHIFTEQUAL     306
+#define        URSHIFTEQUAL    307
+#define        ANDEQUAL        308
+#define        MODEQUAL        309
+#define        XOREQUAL        310
+#define        OREQUAL 311
+#define        IDENT   312
+#define        AUTOPLUSPLUS    313
+#define        AUTOMINUSMINUS  314
+
+#line 1 "grammar.y"
+
+
+/*
+ *  This file is part of the KDE libraries
+ *  Copyright (C) 1999-2000 Harri Porten (porten@kde.org)
+ *
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Lesser General Public
+ *  License as published by the Free Software Foundation; either
+ *  version 2 of the License, or (at your option) any later version.
+ *
+ *  This library 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
+ *  Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public
+ *  License along with this library; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ *  $Id$
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+#include <string.h>
+#include <stdlib.h>
+#include "value.h"
+#include "object.h"
+#include "types.h"
+#include "interpreter.h"
+#include "nodes.h"
+#include "lexer.h"
+#include "internal.h"
+
+/* default values for bison */
+#define YYDEBUG 0
+#define YYMAXDEPTH 0
+#ifdef APPLE_CHANGES
+#else
+#define YYERROR_VERBOSE
+#endif
+#define DBG(l, s, e) { l->setLoc(s.first_line, e.last_line, Parser::sid); } // location
+
+extern int yylex();
+int yyerror (const char *);
+bool automatic();
+
+using namespace KJS;
+
+
+#line 54 "grammar.y"
+typedef union {
+  int                 ival;
+  double              dval;
+  UString             *ustr;
+  Node                *node;
+  StatementNode       *stat;
+  ParameterNode       *param;
+  FunctionBodyNode    *body;
+  FuncDeclNode        *func;
+  ProgramNode         *prog;
+  AssignExprNode      *init;
+  SourceElementNode   *src;
+  SourceElementsNode  *srcs;
+  StatListNode        *slist;
+  ArgumentsNode       *args;
+  ArgumentListNode    *alist;
+  VarDeclNode         *decl;
+  VarDeclListNode     *vlist;
+  CaseBlockNode       *cblk;
+  ClauseListNode      *clist;
+  CaseClauseNode      *ccl;
+  ElementNode         *elm;
+  ElisionNode         *eli;
+  Operator            op;
+} YYSTYPE;
+
+#ifndef YYLTYPE
+typedef
+  struct yyltype
+    {
+      int timestamp;
+      int first_line;
+      int first_column;
+      int last_line;
+      int last_column;
+      char *text;
+   }
+  yyltype;
+
+#define YYLTYPE yyltype
+#endif
+
+#include <stdio.h>
+
+#ifndef __cplusplus
+#ifndef __STDC__
+#define const
+#endif
+#endif
+
+
+
+#define        YYFINAL         358
+#define        YYFLAG          -32768
+#define        YYNTBASE        85
+
+#define YYTRANSLATE(x) ((unsigned)(x) <= 314 ? yytranslate[x] : 149)
+
+static const char 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,    74,     2,     2,     2,    76,    79,     2,    62,
+    63,    75,    71,    68,    72,    70,    61,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,    69,    84,    77,
+    83,    78,    82,     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,
+    66,     2,    67,    80,     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,    64,    81,    65,    73,     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,     3,     4,     5,     6,
+     7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
+    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
+    27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
+    37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
+    47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
+    57,    58,    59,    60
+};
+
+#if YYDEBUG != 0
+static const short yyprhs[] = {     0,
+     0,     2,     4,     6,     8,    10,    12,    14,    16,    18,
+    20,    22,    26,    29,    33,    37,    41,    47,    50,    55,
+    56,    58,    60,    63,    67,    73,    75,    77,    79,    81,
+    83,    88,    92,    96,    98,   101,   104,   107,   112,   116,
+   119,   123,   125,   129,   131,   133,   135,   138,   141,   143,
+   146,   149,   152,   155,   158,   161,   164,   167,   170,   173,
+   176,   178,   182,   186,   190,   192,   196,   200,   202,   206,
+   210,   214,   216,   220,   224,   228,   232,   236,   240,   242,
+   246,   250,   254,   258,   260,   264,   266,   270,   272,   276,
+   278,   282,   284,   288,   290,   296,   298,   302,   304,   306,
+   308,   310,   312,   314,   316,   318,   320,   322,   324,   326,
+   328,   332,   334,   336,   338,   340,   342,   344,   346,   348,
+   350,   352,   354,   356,   358,   360,   363,   367,   369,   372,
+   376,   380,   382,   386,   388,   391,   394,   396,   399,   402,
+   408,   416,   423,   429,   439,   450,   458,   467,   477,   478,
+   480,   483,   486,   490,   494,   497,   500,   504,   508,   511,
+   514,   518,   522,   528,   534,   538,   544,   545,   547,   549,
+   552,   556,   561,   564,   568,   572,   576,   580,   584,   589,
+   595,   598,   604,   611,   616,   622,   624,   628,   631,   635,
+   636,   638,   640,   643,   645
+};
+
+static const short yyrhs[] = {     3,
+     0,     4,     0,     5,     0,     7,     0,     6,     0,    61,
+     0,    50,     0,    20,     0,    58,     0,    85,     0,    87,
+     0,    62,   114,    63,     0,    64,    65,     0,    64,    91,
+    65,     0,    66,    89,    67,     0,    66,    88,    67,     0,
+    66,    88,    68,    89,    67,     0,    89,   112,     0,    88,
+    68,    89,   112,     0,     0,    90,     0,    68,     0,    90,
+    68,     0,    92,    69,   112,     0,    91,    68,    92,    69,
+   112,     0,    58,     0,     6,     0,     7,     0,    86,     0,
+   143,     0,    93,    66,   114,    67,     0,    93,    70,    58,
+     0,    12,    93,    96,     0,    93,     0,    12,    94,     0,
+    93,    96,     0,    95,    96,     0,    95,    66,   114,    67,
+     0,    95,    70,    58,     0,    62,    63,     0,    62,    97,
+    63,     0,   112,     0,    97,    68,   112,     0,    94,     0,
+    95,     0,    98,     0,    98,    42,     0,    98,    43,     0,
+    99,     0,    18,   100,     0,    17,   100,     0,    26,   100,
+     0,    42,   100,     0,    59,   100,     0,    43,   100,     0,
+    60,   100,     0,    71,   100,     0,    72,   100,     0,    73,
+   100,     0,    74,   100,     0,   100,     0,   101,    75,   100,
+     0,   101,    61,   100,     0,   101,    76,   100,     0,   101,
+     0,   102,    71,   101,     0,   102,    72,   101,     0,   102,
+     0,   103,    44,   102,     0,   103,    45,   102,     0,   103,
+    46,   102,     0,   103,     0,   104,    77,   103,     0,   104,
+    78,   103,     0,   104,    38,   103,     0,   104,    39,   103,
+     0,   104,    25,   103,     0,   104,    24,   103,     0,   104,
+     0,   105,    34,   104,     0,   105,    35,   104,     0,   105,
+    36,   104,     0,   105,    37,   104,     0,   105,     0,   106,
+    79,   105,     0,   106,     0,   107,    80,   105,     0,   107,
+     0,   108,    81,   105,     0,   108,     0,   109,    41,   108,
+     0,   109,     0,   110,    40,   109,     0,   110,     0,   110,
+    82,   112,    69,   112,     0,   111,     0,    98,   113,   112,
+     0,    83,     0,    47,     0,    48,     0,    49,     0,    50,
+     0,    51,     0,    52,     0,    53,     0,    54,     0,    56,
+     0,    57,     0,    55,     0,   112,     0,   114,    68,   112,
+     0,   116,     0,   118,     0,   122,     0,   123,     0,   124,
+     0,   125,     0,   127,     0,   128,     0,   129,     0,   130,
+     0,   131,     0,   137,     0,   138,     0,   139,     0,    64,
+    65,     0,    64,   147,    65,     0,   115,     0,   117,   115,
+     0,    13,   119,    84,     0,    13,   119,     1,     0,   120,
+     0,   119,    68,   120,     0,    58,     0,    58,   121,     0,
+    83,   112,     0,    84,     0,   114,    84,     0,   114,     1,
+     0,    19,    62,   114,    63,   115,     0,    19,    62,   114,
+    63,   115,    23,   115,     0,    21,   115,    22,    62,   114,
+    63,     0,    22,    62,   114,    63,   115,     0,    11,    62,
+   126,    84,   126,    84,   126,    63,   115,     0,    11,    62,
+    13,   119,    84,   126,    84,   126,    63,   115,     0,    11,
+    62,    98,    24,   114,    63,   115,     0,    11,    62,    13,
+    58,    24,   114,    63,   115,     0,    11,    62,    13,    58,
+   121,    24,   114,    63,   115,     0,     0,   114,     0,    14,
+    84,     0,    14,     1,     0,    14,    58,    84,     0,    14,
+    58,     1,     0,     8,    84,     0,     8,     1,     0,     8,
+    58,    84,     0,     8,    58,     1,     0,    16,    84,     0,
+    16,     1,     0,    16,   114,    84,     0,    16,   114,     1,
+     0,    28,    62,   114,    63,   115,     0,    27,    62,   114,
+    63,   132,     0,    64,   133,    65,     0,    64,   133,   136,
+   133,    65,     0,     0,   134,     0,   135,     0,   134,   135,
+     0,     9,   114,    69,     0,     9,   114,    69,   117,     0,
+    10,    69,     0,    10,    69,   117,     0,    58,    69,   115,
+     0,    30,   114,    84,     0,    31,   116,   140,     0,    31,
+   116,   141,     0,    31,   116,   140,   141,     0,    32,    62,
+    58,    63,   116,     0,    33,   116,     0,    15,    58,    62,
+    63,   145,     0,    15,    58,    62,   144,    63,   145,     0,
+    15,    62,    63,   145,     0,    15,    62,   144,    63,   145,
+     0,    58,     0,   144,    68,    58,     0,    64,    65,     0,
+    64,   147,    65,     0,     0,   147,     0,   148,     0,   147,
+   148,     0,   115,     0,   142,     0
+};
+
+#endif
+
+#if YYDEBUG != 0
+static const short yyrline[] = { 0,
+   161,   163,   164,   165,   166,   167,   170,   176,   178,   180,
+   181,   182,   183,   184,   187,   189,   190,   193,   195,   199,
+   201,   204,   206,   209,   211,   215,   218,   219,   222,   224,
+   225,   226,   228,   231,   233,   236,   238,   239,   240,   243,
+   245,   248,   250,   253,   255,   258,   260,   261,   264,   266,
+   267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
+   279,   281,   282,   283,   286,   288,   289,   292,   294,   295,
+   296,   299,   301,   303,   305,   307,   309,   311,   315,   317,
+   318,   319,   320,   323,   325,   328,   330,   333,   335,   338,
+   340,   344,   346,   350,   352,   356,   358,   362,   364,   365,
+   366,   367,   368,   369,   370,   371,   372,   373,   374,   377,
+   379,   382,   384,   385,   386,   387,   388,   389,   390,   391,
+   392,   393,   394,   395,   396,   399,   401,   404,   406,   409,
+   412,   421,   423,   427,   429,   432,   436,   440,   443,   450,
+   452,   456,   458,   459,   462,   465,   468,   472,   478,   480,
+   483,   485,   489,   491,   498,   500,   504,   506,   514,   516,
+   520,   521,   527,   532,   537,   539,   543,   545,   548,   550,
+   553,   555,   558,   560,   563,   569,   573,   575,   576,   579,
+   583,   587,   590,   594,   596,   601,   603,   607,   610,   614,
+   617,   621,   623,   626,   628
+};
+#endif
+
+
+#if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
+
+static const char * const yytname[] = {   "$","error","$undefined.","NULLTOKEN",
+"TRUETOKEN","FALSETOKEN","STRING","NUMBER","BREAK","CASE","DEFAULT","FOR","NEW",
+"VAR","CONTINUE","FUNCTION","RETURN","VOID","DELETE","IF","THIS","DO","WHILE",
+"ELSE","IN","INSTANCEOF","TYPEOF","SWITCH","WITH","RESERVED","THROW","TRY","CATCH",
+"FINALLY","EQEQ","NE","STREQ","STRNEQ","LE","GE","OR","AND","PLUSPLUS","MINUSMINUS",
+"LSHIFT","RSHIFT","URSHIFT","PLUSEQUAL","MINUSEQUAL","MULTEQUAL","DIVEQUAL",
+"LSHIFTEQUAL","RSHIFTEQUAL","URSHIFTEQUAL","ANDEQUAL","MODEQUAL","XOREQUAL",
+"OREQUAL","IDENT","AUTOPLUSPLUS","AUTOMINUSMINUS","'/'","'('","')'","'{'","'}'",
+"'['","']'","','","':'","'.'","'+'","'-'","'~'","'!'","'*'","'%'","'<'","'>'",
+"'&'","'^'","'|'","'?'","'='","';'","Literal","PrimaryExpr","ArrayLiteral","ElementList",
+"ElisionOpt","Elision","PropertyNameAndValueList","PropertyName","MemberExpr",
+"NewExpr","CallExpr","Arguments","ArgumentList","LeftHandSideExpr","PostfixExpr",
+"UnaryExpr","MultiplicativeExpr","AdditiveExpr","ShiftExpr","RelationalExpr",
+"EqualityExpr","BitwiseANDExpr","BitwiseXORExpr","BitwiseORExpr","LogicalANDExpr",
+"LogicalORExpr","ConditionalExpr","AssignmentExpr","AssignmentOperator","Expr",
+"Statement","Block","StatementList","VariableStatement","VariableDeclarationList",
+"VariableDeclaration","Initializer","EmptyStatement","ExprStatement","IfStatement",
+"IterationStatement","ExprOpt","ContinueStatement","BreakStatement","ReturnStatement",
+"WithStatement","SwitchStatement","CaseBlock","CaseClausesOpt","CaseClauses",
+"CaseClause","DefaultClause","LabelledStatement","ThrowStatement","TryStatement",
+"Catch","Finally","FunctionDeclaration","FunctionExpr","FormalParameterList",
+"FunctionBody","Program","SourceElements","SourceElement", NULL
+};
+#endif
+
+static const short yyr1[] = {     0,
+    85,    85,    85,    85,    85,    85,    85,    86,    86,    86,
+    86,    86,    86,    86,    87,    87,    87,    88,    88,    89,
+    89,    90,    90,    91,    91,    92,    92,    92,    93,    93,
+    93,    93,    93,    94,    94,    95,    95,    95,    95,    96,
+    96,    97,    97,    98,    98,    99,    99,    99,   100,   100,
+   100,   100,   100,   100,   100,   100,   100,   100,   100,   100,
+   101,   101,   101,   101,   102,   102,   102,   103,   103,   103,
+   103,   104,   104,   104,   104,   104,   104,   104,   105,   105,
+   105,   105,   105,   106,   106,   107,   107,   108,   108,   109,
+   109,   110,   110,   111,   111,   112,   112,   113,   113,   113,
+   113,   113,   113,   113,   113,   113,   113,   113,   113,   114,
+   114,   115,   115,   115,   115,   115,   115,   115,   115,   115,
+   115,   115,   115,   115,   115,   116,   116,   117,   117,   118,
+   118,   119,   119,   120,   120,   121,   122,   123,   123,   124,
+   124,   125,   125,   125,   125,   125,   125,   125,   126,   126,
+   127,   127,   127,   127,   128,   128,   128,   128,   129,   129,
+   129,   129,   130,   131,   132,   132,   133,   133,   134,   134,
+   135,   135,   136,   136,   137,   138,   139,   139,   139,   140,
+   141,   142,   142,   143,   143,   144,   144,   145,   145,   146,
+   146,   147,   147,   148,   148
+};
+
+static const short yyr2[] = {     0,
+     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+     1,     3,     2,     3,     3,     3,     5,     2,     4,     0,
+     1,     1,     2,     3,     5,     1,     1,     1,     1,     1,
+     4,     3,     3,     1,     2,     2,     2,     4,     3,     2,
+     3,     1,     3,     1,     1,     1,     2,     2,     1,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     1,     3,     3,     3,     1,     3,     3,     1,     3,     3,
+     3,     1,     3,     3,     3,     3,     3,     3,     1,     3,
+     3,     3,     3,     1,     3,     1,     3,     1,     3,     1,
+     3,     1,     3,     1,     5,     1,     3,     1,     1,     1,
+     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+     3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+     1,     1,     1,     1,     1,     2,     3,     1,     2,     3,
+     3,     1,     3,     1,     2,     2,     1,     2,     2,     5,
+     7,     6,     5,     9,    10,     7,     8,     9,     0,     1,
+     2,     2,     3,     3,     2,     2,     3,     3,     2,     2,
+     3,     3,     5,     5,     3,     5,     0,     1,     1,     2,
+     3,     4,     2,     3,     3,     3,     3,     3,     4,     5,
+     2,     5,     6,     4,     5,     1,     3,     2,     3,     0,
+     1,     1,     2,     1,     1
+};
+
+static const short yydefact[] = {   190,
+     1,     2,     3,     5,     4,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     8,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     7,     9,     0,     0,     6,
+     0,     0,    20,     0,     0,     0,     0,   137,    10,    29,
+    11,    34,    44,    45,    46,    49,    61,    65,    68,    72,
+    79,    84,    86,    88,    90,    92,    94,    96,   110,     0,
+   194,   112,   113,   114,   115,   116,   117,   118,   119,   120,
+   121,   122,   123,   124,   125,   195,    30,   191,   192,   156,
+     0,   155,   149,     0,     9,     0,    34,    35,   134,     0,
+   132,   152,     0,   151,     0,     0,   160,   159,     0,    46,
+    51,    50,     0,     0,     0,    52,     0,     0,     0,     0,
+     0,    53,    55,     0,    54,    56,     0,     5,     4,     9,
+    13,     0,     0,     0,    22,     0,     0,    21,    57,    58,
+    59,    60,     0,     0,     0,    36,     0,     0,    37,    47,
+    48,    99,   100,   101,   102,   103,   104,   105,   106,   109,
+   107,   108,    98,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,   139,     0,
+   138,   193,   158,   157,     0,    46,   150,     0,    27,    28,
+    26,    13,    33,     0,   135,   131,     0,   130,   154,   153,
+     0,   186,     0,     0,   162,   161,     0,     0,     0,     0,
+     0,   176,   126,     0,     0,   177,   178,   175,    12,    14,
+     0,     0,   127,    16,    20,    15,    18,    23,    40,     0,
+    42,     0,    32,     0,    39,    97,    63,    62,    64,    66,
+    67,    69,    70,    71,    78,    77,    75,    76,    73,    74,
+    80,    81,    82,    83,    85,    87,    89,    91,    93,     0,
+   111,   134,     0,     0,   149,   136,   133,     0,     0,     0,
+   184,     0,     0,     0,     0,     0,     0,     0,     0,   181,
+   179,     0,    24,     0,    41,     0,    31,    38,     0,     0,
+   135,   149,     0,     0,   182,     0,   188,     0,   185,   187,
+   140,     0,   143,   167,   164,   163,     0,     0,    17,    19,
+    43,    95,     0,     0,     0,     0,   149,   183,   189,     0,
+   142,     0,     0,   168,   169,     0,    25,     0,     0,   149,
+   146,     0,   141,     0,     0,   165,   167,   170,   180,   147,
+     0,     0,     0,   171,   173,     0,   148,     0,   144,   128,
+   172,   174,   166,   145,   129,     0,     0,     0
+};
+
+static const short yydefgoto[] = {    39,
+    40,    41,   126,   127,   128,   122,   123,    42,    43,    44,
+   136,   230,    45,    46,    47,    48,    49,    50,    51,    52,
+    53,    54,    55,    56,    57,    58,    59,   154,    60,    61,
+    62,   351,    63,    90,    91,   195,    64,    65,    66,    67,
+   188,    68,    69,    70,    71,    72,   305,   323,   324,   325,
+   337,    73,    74,    75,   216,   217,    76,    77,   204,   271,
+   356,   124,    79
+};
+
+static const short yypact[] = {   779,
+-32768,-32768,-32768,-32768,-32768,     5,   -28,   111,   -30,     6,
+   -31,   335,  1252,  1252,   -16,-32768,   853,    -5,  1252,     9,
+    57,  1252,   -20,  1252,  1252,-32768,   -21,  1252,  1252,-32768,
+  1252,   409,    -1,  1252,  1252,  1252,  1252,-32768,-32768,-32768,
+-32768,    42,-32768,    43,   179,-32768,-32768,   -14,    12,   195,
+    82,   118,    72,    85,    93,   151,   -23,-32768,-32768,    11,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,   779,-32768,-32768,
+     7,-32768,   964,   161,-32768,    45,    42,-32768,   136,    17,
+-32768,-32768,     8,-32768,   192,    24,-32768,-32768,    18,    90,
+-32768,-32768,  1252,   236,  1252,-32768,  1252,  1252,   -45,   483,
+   231,-32768,-32768,   853,-32768,-32768,    59,   191,   196,   -21,
+   935,   123,   208,   557,-32768,   200,  1036,   203,-32768,-32768,
+-32768,-32768,  1108,  1252,   222,-32768,  1252,   224,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,  1252,  1252,  1252,  1252,  1252,  1252,  1252,
+  1252,  1252,  1252,  1252,  1252,  1252,  1252,  1252,  1252,  1252,
+  1252,  1252,  1252,  1252,  1252,  1252,  1252,  1252,-32768,  1252,
+-32768,-32768,-32768,-32768,   226,    87,   217,   204,-32768,-32768,
+-32768,-32768,-32768,  1252,-32768,-32768,   -30,-32768,-32768,-32768,
+   105,-32768,   223,   103,-32768,-32768,   113,   227,   115,   116,
+   117,-32768,-32768,   228,   -20,   253,-32768,-32768,-32768,-32768,
+    35,  1252,-32768,-32768,    -1,-32768,-32768,-32768,-32768,   119,
+-32768,   202,-32768,   206,-32768,-32768,-32768,-32768,-32768,   -14,
+   -14,    12,    12,    12,   195,   195,   195,   195,   195,   195,
+    82,    82,    82,    82,   118,   118,   118,    93,   151,   225,
+-32768,    -3,   -44,  1252,  1252,-32768,-32768,   223,   126,   631,
+-32768,   223,   233,   853,  1252,   853,   229,   853,   234,-32768,
+-32768,   232,-32768,  1180,-32768,  1252,-32768,-32768,  1252,  1252,
+   271,  1252,   127,   212,-32768,   223,-32768,   705,-32768,-32768,
+   274,   157,-32768,   289,-32768,-32768,   237,  1252,-32768,-32768,
+-32768,-32768,   174,  1252,   218,   853,  1252,-32768,-32768,   853,
+-32768,  1252,    23,   289,-32768,   -20,-32768,   853,   175,  1252,
+-32768,   243,-32768,   207,   238,-32768,   289,-32768,-32768,-32768,
+   853,   246,   853,   853,   853,   245,-32768,   853,-32768,-32768,
+   853,   853,-32768,-32768,-32768,   312,   314,-32768
+};
+
+static const short yypgoto[] = {-32768,
+-32768,-32768,-32768,    91,-32768,-32768,    94,   309,   310,-32768,
+   -34,-32768,    41,-32768,     1,   120,    88,   -18,    75,    78,
+-32768,-32768,   143,   145,-32768,-32768,  -122,-32768,    -9,   -17,
+   -22,   -25,-32768,   138,   128,    67,-32768,-32768,-32768,-32768,
+  -249,-32768,-32768,-32768,-32768,-32768,-32768,    -7,-32768,    13,
+-32768,-32768,-32768,-32768,-32768,   129,-32768,-32768,   131,  -223,
+-32768,     2,   -74
+};
+
+
+#define        YYLAST          1326
+
+
+static const short yytable[] = {   104,
+   111,    78,    99,   182,   227,    80,    92,   183,   199,   139,
+   231,   179,   109,   101,   102,   294,   177,   196,   205,   106,
+   290,   117,   180,   197,   112,   113,    95,    89,   115,   116,
+    96,   236,   335,    83,   129,   130,   131,   132,   212,   292,
+   189,   190,   315,   110,   295,   103,   155,   114,   299,   182,
+   189,   190,   193,   100,   100,   260,   105,   261,   178,   100,
+   156,   157,    81,    93,   100,   100,   125,   332,   100,   100,
+   107,   266,   318,   187,   100,   100,   100,   100,   180,   194,
+   342,   202,   158,   159,   197,   180,   203,   336,    82,    94,
+   184,   200,   191,   207,   181,   209,   218,   210,   211,   283,
+   198,   206,   191,   133,   133,   163,   164,   134,   137,   192,
+   264,   135,   138,     1,     2,     3,     4,     5,   108,   165,
+   166,   219,     8,   186,   232,    84,   180,   234,   140,   141,
+    16,   140,   141,   142,   143,   144,   145,   146,   147,   148,
+   149,   150,   151,   152,   245,   246,   247,   248,   249,   250,
+   173,   169,   170,   171,   172,   237,   238,   239,   167,   168,
+    26,   310,   202,   311,   174,   272,   312,   268,    85,   153,
+   273,    30,    31,   175,    86,   274,    33,   276,   277,   278,
+   180,   285,   180,   180,   180,   327,   286,   220,   296,   316,
+   221,   176,   280,   273,   180,   100,   100,   100,   100,   100,
+   100,   100,   100,   100,   100,   100,   100,   100,   100,   100,
+   100,   100,   100,   100,   100,   100,   100,   100,   194,   321,
+   140,   141,    96,   182,   180,   142,   143,   144,   145,   146,
+   147,   148,   149,   150,   151,   152,   328,   341,   160,   161,
+   162,   180,   180,   251,   252,   253,   254,   242,   243,   244,
+   255,   256,   257,   201,   293,   187,   301,   208,   303,   -27,
+   306,   153,   214,   215,   -28,   302,   224,   225,   287,   180,
+   228,   298,   288,   180,   180,   344,   222,   240,   241,   233,
+   313,   235,   187,   262,   180,   215,   270,   265,   275,   279,
+   300,   307,   304,   289,   314,   317,   320,   322,   331,   326,
+   308,   330,   333,   339,   329,   343,   345,   187,   348,   353,
+   340,   357,   334,   358,   282,   284,    87,    88,   258,   352,
+   187,   259,   263,   347,   267,   349,   350,   350,   291,   346,
+   354,   269,     0,   355,   355,    97,   338,     1,     2,     3,
+     4,     5,     0,     0,   281,     0,     8,     0,     0,    84,
+     0,    13,    14,     0,    16,     0,     0,     0,     0,     0,
+    19,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,    24,    25,     0,     0,
+     0,     0,     0,     0,    26,     0,     0,     0,     0,     0,
+     0,     0,    85,    28,    29,    30,    31,     0,    86,     0,
+    33,     0,     0,     0,     0,    34,    35,    36,    37,     0,
+     0,     1,     2,     3,   118,   119,     6,     0,    98,     7,
+     8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
+    18,     0,     0,     0,    19,    20,    21,     0,    22,    23,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+    24,    25,     0,     0,     0,     0,     0,     0,    26,     0,
+     0,     0,     0,     0,     0,     0,   120,    28,    29,    30,
+    31,     0,    32,   121,    33,     0,     0,     0,     0,    34,
+    35,    36,    37,     0,     0,     1,     2,     3,     4,     5,
+     6,     0,    38,     7,     8,     9,    10,    11,    12,    13,
+    14,    15,    16,    17,    18,     0,     0,     0,    19,    20,
+    21,     0,    22,    23,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,    24,    25,     0,     0,     0,     0,
+     0,     0,    26,     0,     0,     0,     0,     0,     0,     0,
+    27,    28,    29,    30,    31,     0,    32,   213,    33,     0,
+     0,     0,     0,    34,    35,    36,    37,     0,     0,     1,
+     2,     3,     4,     5,     6,     0,    38,     7,     8,     9,
+    10,    11,    12,    13,    14,    15,    16,    17,    18,     0,
+     0,     0,    19,    20,    21,     0,    22,    23,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,    24,    25,
+     0,     0,     0,     0,     0,     0,    26,     0,     0,     0,
+     0,     0,     0,     0,    27,    28,    29,    30,    31,     0,
+    32,   223,    33,     0,     0,     0,     0,    34,    35,    36,
+    37,     0,     0,     1,     2,     3,     4,     5,     6,     0,
+    38,     7,     8,     9,    10,    11,    12,    13,    14,    15,
+    16,    17,    18,     0,     0,     0,    19,    20,    21,     0,
+    22,    23,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,    24,    25,     0,     0,     0,     0,     0,     0,
+    26,     0,     0,     0,     0,     0,     0,     0,    27,    28,
+    29,    30,    31,     0,    32,   297,    33,     0,     0,     0,
+     0,    34,    35,    36,    37,     0,     0,     1,     2,     3,
+     4,     5,     6,     0,    38,     7,     8,     9,    10,    11,
+    12,    13,    14,    15,    16,    17,    18,     0,     0,     0,
+    19,    20,    21,     0,    22,    23,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,    24,    25,     0,     0,
+     0,     0,     0,     0,    26,     0,     0,     0,     0,     0,
+     0,     0,    27,    28,    29,    30,    31,     0,    32,   319,
+    33,     0,     0,     0,     0,    34,    35,    36,    37,     0,
+     0,     1,     2,     3,     4,     5,     6,     0,    38,     7,
+     8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
+    18,     0,     0,     0,    19,    20,    21,     0,    22,    23,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+    24,    25,     0,     0,     0,     0,     0,     0,    26,     0,
+     0,     0,     0,     0,     0,     0,    27,    28,    29,    30,
+    31,     0,    32,     0,    33,     0,     0,     0,     0,    34,
+    35,    36,    37,     0,     0,     1,     2,     3,     4,     5,
+     6,     0,    38,     7,     8,     9,    10,    84,    12,    13,
+    14,    15,    16,    17,    18,     0,     0,     0,    19,    20,
+    21,     0,    22,    23,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,    24,    25,     0,     0,     0,     0,
+     0,     0,    26,     0,     0,     0,     0,     0,     0,     0,
+    27,    28,    29,    30,    31,     0,    32,     0,    33,     0,
+     0,     0,     0,    34,    35,    36,    37,     0,     0,     0,
+     0,     0,     0,     0,  -126,     0,    38,  -126,  -126,  -126,
+  -126,  -126,  -126,  -126,  -126,  -126,  -126,  -126,  -126,  -126,
+  -126,  -126,  -126,  -126,  -126,  -126,  -126,  -126,     0,     0,
+  -126,  -126,  -126,     0,  -126,  -126,     1,     2,     3,     4,
+     5,     0,     0,     0,     0,     8,   185,     0,    84,     0,
+    13,    14,     0,    16,     0,     0,     0,     0,     0,    19,
+     0,     0,  -126,  -126,  -126,     0,     0,     0,  -126,  -126,
+     0,     0,     0,     0,     0,    24,    25,  -126,  -126,     0,
+     0,     0,     0,    26,     0,     0,     0,     0,     0,     0,
+     0,    85,    28,    29,    30,    31,     0,    86,     0,    33,
+     0,     0,     0,     0,    34,    35,    36,    37,     1,     2,
+     3,     4,     5,     0,     0,     0,     0,     8,     0,     0,
+    84,     0,    13,    14,     0,    16,     0,     0,     0,     0,
+     0,    19,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,    24,    25,     0,
+     0,     0,     0,     0,     0,    26,     0,     0,     0,     0,
+     0,     0,     0,    85,    28,    29,    30,    31,     0,    86,
+     0,    33,   226,     0,     0,     0,    34,    35,    36,    37,
+     1,     2,     3,     4,     5,     0,     0,     0,     0,     8,
+     0,     0,    84,     0,    13,    14,     0,    16,     0,     0,
+     0,     0,     0,    19,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,    24,
+    25,     0,     0,     0,     0,     0,     0,    26,     0,     0,
+     0,     0,     0,     0,     0,    85,    28,    29,    30,    31,
+   229,    86,     0,    33,     0,     0,     0,     0,    34,    35,
+    36,    37,     1,     2,     3,     4,     5,     0,     0,     0,
+     0,     8,     0,     0,    84,     0,    13,    14,     0,    16,
+     0,     0,     0,     0,     0,    19,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,    24,    25,     0,     0,     0,     0,     0,     0,    26,
+     0,     0,     0,     0,     0,     0,     0,    85,    28,    29,
+    30,    31,     0,    86,     0,    33,   309,     0,     0,     0,
+    34,    35,    36,    37,     1,     2,     3,     4,     5,     0,
+     0,     0,     0,     8,     0,     0,    84,     0,    13,    14,
+     0,    16,     0,     0,     0,     0,     0,    19,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,    24,    25,     0,     0,     0,     0,     0,
+     0,    26,     0,     0,     0,     0,     0,     0,     0,    85,
+    28,    29,    30,    31,     0,    86,     0,    33,     0,     0,
+     0,     0,    34,    35,    36,    37
+};
+
+static const short yycheck[] = {    17,
+    23,     0,    12,    78,   127,     1,     1,     1,     1,    44,
+   133,     1,    22,    13,    14,   265,    40,     1,     1,    19,
+    24,    31,    68,    68,    24,    25,    58,    58,    28,    29,
+    62,   154,    10,    62,    34,    35,    36,    37,    84,    84,
+     6,     7,   292,    64,   268,    62,    61,    69,   272,   124,
+     6,     7,    87,    13,    14,   178,    62,   180,    82,    19,
+    75,    76,    58,    58,    24,    25,    68,   317,    28,    29,
+    62,   194,   296,    83,    34,    35,    36,    37,    68,    83,
+   330,    58,    71,    72,    68,    68,    63,    65,    84,    84,
+    84,    84,    58,   103,    84,   105,   114,   107,   108,   222,
+    84,    84,    58,    62,    62,    24,    25,    66,    66,    65,
+    24,    70,    70,     3,     4,     5,     6,     7,    62,    38,
+    39,    63,    12,    83,   134,    15,    68,   137,    42,    43,
+    20,    42,    43,    47,    48,    49,    50,    51,    52,    53,
+    54,    55,    56,    57,   163,   164,   165,   166,   167,   168,
+    79,    34,    35,    36,    37,   155,   156,   157,    77,    78,
+    50,   284,    58,   286,    80,    63,   289,    63,    58,    83,
+    68,    61,    62,    81,    64,    63,    66,    63,    63,    63,
+    68,    63,    68,    68,    68,   308,    68,    65,    63,    63,
+    68,    41,   215,    68,    68,   155,   156,   157,   158,   159,
+   160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
+   170,   171,   172,   173,   174,   175,   176,   177,    83,    63,
+    42,    43,    62,   298,    68,    47,    48,    49,    50,    51,
+    52,    53,    54,    55,    56,    57,    63,    63,    44,    45,
+    46,    68,    68,   169,   170,   171,   172,   160,   161,   162,
+   173,   174,   175,    62,   264,   265,   274,    22,   276,    69,
+   278,    83,    32,    33,    69,   275,    67,    68,    67,    68,
+    68,   270,    67,    68,    68,    69,    69,   158,   159,    58,
+   290,    58,   292,    58,    68,    33,    64,    84,    62,    62,
+    58,    58,    64,    69,    24,    84,    23,     9,   316,    63,
+    69,    84,   320,   326,   314,    63,    69,   317,    63,    65,
+   328,     0,   322,     0,   221,   225,     8,     8,   176,   345,
+   330,   177,   185,   341,   197,   343,   344,   345,   262,   337,
+   348,   201,    -1,   351,   352,     1,   324,     3,     4,     5,
+     6,     7,    -1,    -1,   216,    -1,    12,    -1,    -1,    15,
+    -1,    17,    18,    -1,    20,    -1,    -1,    -1,    -1,    -1,
+    26,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    42,    43,    -1,    -1,
+    -1,    -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    58,    59,    60,    61,    62,    -1,    64,    -1,
+    66,    -1,    -1,    -1,    -1,    71,    72,    73,    74,    -1,
+    -1,     3,     4,     5,     6,     7,     8,    -1,    84,    11,
+    12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
+    22,    -1,    -1,    -1,    26,    27,    28,    -1,    30,    31,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    42,    43,    -1,    -1,    -1,    -1,    -1,    -1,    50,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    58,    59,    60,    61,
+    62,    -1,    64,    65,    66,    -1,    -1,    -1,    -1,    71,
+    72,    73,    74,    -1,    -1,     3,     4,     5,     6,     7,
+     8,    -1,    84,    11,    12,    13,    14,    15,    16,    17,
+    18,    19,    20,    21,    22,    -1,    -1,    -1,    26,    27,
+    28,    -1,    30,    31,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    42,    43,    -1,    -1,    -1,    -1,
+    -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    58,    59,    60,    61,    62,    -1,    64,    65,    66,    -1,
+    -1,    -1,    -1,    71,    72,    73,    74,    -1,    -1,     3,
+     4,     5,     6,     7,     8,    -1,    84,    11,    12,    13,
+    14,    15,    16,    17,    18,    19,    20,    21,    22,    -1,
+    -1,    -1,    26,    27,    28,    -1,    30,    31,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    43,
+    -1,    -1,    -1,    -1,    -1,    -1,    50,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    58,    59,    60,    61,    62,    -1,
+    64,    65,    66,    -1,    -1,    -1,    -1,    71,    72,    73,
+    74,    -1,    -1,     3,     4,     5,     6,     7,     8,    -1,
+    84,    11,    12,    13,    14,    15,    16,    17,    18,    19,
+    20,    21,    22,    -1,    -1,    -1,    26,    27,    28,    -1,
+    30,    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    42,    43,    -1,    -1,    -1,    -1,    -1,    -1,
+    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    58,    59,
+    60,    61,    62,    -1,    64,    65,    66,    -1,    -1,    -1,
+    -1,    71,    72,    73,    74,    -1,    -1,     3,     4,     5,
+     6,     7,     8,    -1,    84,    11,    12,    13,    14,    15,
+    16,    17,    18,    19,    20,    21,    22,    -1,    -1,    -1,
+    26,    27,    28,    -1,    30,    31,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    42,    43,    -1,    -1,
+    -1,    -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    58,    59,    60,    61,    62,    -1,    64,    65,
+    66,    -1,    -1,    -1,    -1,    71,    72,    73,    74,    -1,
+    -1,     3,     4,     5,     6,     7,     8,    -1,    84,    11,
+    12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
+    22,    -1,    -1,    -1,    26,    27,    28,    -1,    30,    31,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    42,    43,    -1,    -1,    -1,    -1,    -1,    -1,    50,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    58,    59,    60,    61,
+    62,    -1,    64,    -1,    66,    -1,    -1,    -1,    -1,    71,
+    72,    73,    74,    -1,    -1,     3,     4,     5,     6,     7,
+     8,    -1,    84,    11,    12,    13,    14,    15,    16,    17,
+    18,    19,    20,    21,    22,    -1,    -1,    -1,    26,    27,
+    28,    -1,    30,    31,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    42,    43,    -1,    -1,    -1,    -1,
+    -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    58,    59,    60,    61,    62,    -1,    64,    -1,    66,    -1,
+    -1,    -1,    -1,    71,    72,    73,    74,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,     0,    -1,    84,     3,     4,     5,
+     6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
+    16,    17,    18,    19,    20,    21,    22,    23,    -1,    -1,
+    26,    27,    28,    -1,    30,    31,     3,     4,     5,     6,
+     7,    -1,    -1,    -1,    -1,    12,    13,    -1,    15,    -1,
+    17,    18,    -1,    20,    -1,    -1,    -1,    -1,    -1,    26,
+    -1,    -1,    58,    59,    60,    -1,    -1,    -1,    64,    65,
+    -1,    -1,    -1,    -1,    -1,    42,    43,    73,    74,    -1,
+    -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    58,    59,    60,    61,    62,    -1,    64,    -1,    66,
+    -1,    -1,    -1,    -1,    71,    72,    73,    74,     3,     4,
+     5,     6,     7,    -1,    -1,    -1,    -1,    12,    -1,    -1,
+    15,    -1,    17,    18,    -1,    20,    -1,    -1,    -1,    -1,
+    -1,    26,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    43,    -1,
+    -1,    -1,    -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    58,    59,    60,    61,    62,    -1,    64,
+    -1,    66,    67,    -1,    -1,    -1,    71,    72,    73,    74,
+     3,     4,     5,     6,     7,    -1,    -1,    -1,    -1,    12,
+    -1,    -1,    15,    -1,    17,    18,    -1,    20,    -1,    -1,
+    -1,    -1,    -1,    26,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,
+    43,    -1,    -1,    -1,    -1,    -1,    -1,    50,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    58,    59,    60,    61,    62,
+    63,    64,    -1,    66,    -1,    -1,    -1,    -1,    71,    72,
+    73,    74,     3,     4,     5,     6,     7,    -1,    -1,    -1,
+    -1,    12,    -1,    -1,    15,    -1,    17,    18,    -1,    20,
+    -1,    -1,    -1,    -1,    -1,    26,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    42,    43,    -1,    -1,    -1,    -1,    -1,    -1,    50,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    58,    59,    60,
+    61,    62,    -1,    64,    -1,    66,    67,    -1,    -1,    -1,
+    71,    72,    73,    74,     3,     4,     5,     6,     7,    -1,
+    -1,    -1,    -1,    12,    -1,    -1,    15,    -1,    17,    18,
+    -1,    20,    -1,    -1,    -1,    -1,    -1,    26,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    42,    43,    -1,    -1,    -1,    -1,    -1,
+    -1,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    58,
+    59,    60,    61,    62,    -1,    64,    -1,    66,    -1,    -1,
+    -1,    -1,    71,    72,    73,    74
+};
+/* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
+#line 3 "/usr/share/bison.simple"
+/* This file comes from bison-1.28.  */
+
+/* Skeleton output parser for bison,
+   Copyright (C) 1984, 1989, 1990 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 2, 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, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+/* As a special exception, when this file is copied by Bison into a
+   Bison output file, you may use that output file without restriction.
+   This special exception was added by the Free Software Foundation
+   in version 1.24 of Bison.  */
+
+/* This is the parser code that is written into each bison parser
+  when the %semantic_parser declaration is not specified in the grammar.
+  It was written by Richard Stallman by simplifying the hairy parser
+  used when %semantic_parser is specified.  */
+
+#ifndef YYSTACK_USE_ALLOCA
+#ifdef alloca
+#define YYSTACK_USE_ALLOCA
+#else /* alloca not defined */
+#ifdef __GNUC__
+#define YYSTACK_USE_ALLOCA
+#define alloca __builtin_alloca
+#else /* not GNU C.  */
+#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
+#define YYSTACK_USE_ALLOCA
+#include <alloca.h>
+#else /* not sparc */
+/* We think this test detects Watcom and Microsoft C.  */
+/* This used to test MSDOS, but that is a bad idea
+   since that symbol is in the user namespace.  */
+#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
+#if 0 /* No need for malloc.h, which pollutes the namespace;
+        instead, just don't use alloca.  */
+#include <malloc.h>
+#endif
+#else /* not MSDOS, or __TURBOC__ */
+#if defined(_AIX)
+/* I don't know what this was needed for, but it pollutes the namespace.
+   So I turned it off.   rms, 2 May 1997.  */
+/* #include <malloc.h>  */
+ #pragma alloca
+#define YYSTACK_USE_ALLOCA
+#else /* not MSDOS, or __TURBOC__, or _AIX */
+#if 0
+#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
+                and on HPUX 10.  Eventually we can turn this on.  */
+#define YYSTACK_USE_ALLOCA
+#define alloca __builtin_alloca
+#endif /* __hpux */
+#endif
+#endif /* not _AIX */
+#endif /* not MSDOS, or __TURBOC__ */
+#endif /* not sparc */
+#endif /* not GNU C */
+#endif /* alloca not defined */
+#endif /* YYSTACK_USE_ALLOCA not defined */
+
+#ifdef YYSTACK_USE_ALLOCA
+#define YYSTACK_ALLOC alloca
+#else
+#define YYSTACK_ALLOC malloc
+#endif
+
+/* Note: there must be only one dollar sign in this file.
+   It is replaced by the list of actions, each action
+   as one case of the switch.  */
+
+#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 yyerrlab1
+/* Like YYERROR except do call yyerror.
+   This remains here temporarily to ease the
+   transition to the new meaning of YYERROR, for GCC.
+   Once GCC version 2 has supplanted version 1, this can go.  */
+#define YYFAIL         goto yyerrlab
+#define YYRECOVERING()  (!!yyerrstatus)
+#define YYBACKUP(token, value) \
+do                                                             \
+  if (yychar == YYEMPTY && yylen == 1)                         \
+    { yychar = (token), yylval = (value);                      \
+      yychar1 = YYTRANSLATE (yychar);                          \
+      YYPOPSTACK;                                              \
+      goto yybackup;                                           \
+    }                                                          \
+  else                                                         \
+    { yyerror ("syntax error: cannot back up"); YYERROR; }     \
+while (0)
+
+#define YYTERROR       1
+#define YYERRCODE      256
+
+#ifndef YYPURE
+#define YYLEX          yylex()
+#endif
+
+#ifdef YYPURE
+#ifdef YYLSP_NEEDED
+#ifdef YYLEX_PARAM
+#define YYLEX          yylex(&yylval, &yylloc, YYLEX_PARAM)
+#else
+#define YYLEX          yylex(&yylval, &yylloc)
+#endif
+#else /* not YYLSP_NEEDED */
+#ifdef YYLEX_PARAM
+#define YYLEX          yylex(&yylval, YYLEX_PARAM)
+#else
+#define YYLEX          yylex(&yylval)
+#endif
+#endif /* not YYLSP_NEEDED */
+#endif
+
+/* If nonreentrant, generate the variables here */
+
+#ifndef YYPURE
+
+int    yychar;                 /*  the lookahead symbol                */
+YYSTYPE        yylval;                 /*  the semantic value of the           */
+                               /*  lookahead symbol                    */
+
+#ifdef YYLSP_NEEDED
+YYLTYPE yylloc;                        /*  location data for the lookahead     */
+                               /*  symbol                              */
+#endif
+
+int yynerrs;                   /*  number of parse errors so far       */
+#endif  /* not YYPURE */
+
+#if YYDEBUG != 0
+int yydebug;                   /*  nonzero means print parse trace     */
+/* Since this is uninitialized, it does not stop multiple parsers
+   from coexisting.  */
+#endif
+
+/*  YYINITDEPTH indicates the initial size of the parser's stacks      */
+
+#ifndef        YYINITDEPTH
+#define YYINITDEPTH 200
+#endif
+
+/*  YYMAXDEPTH is the maximum size the stacks can grow to
+    (effective only if the built-in stack extension method is used).  */
+
+#if YYMAXDEPTH == 0
+#undef YYMAXDEPTH
+#endif
+
+#ifndef YYMAXDEPTH
+#define YYMAXDEPTH 10000
+#endif
+\f
+/* Define __yy_memcpy.  Note that the size argument
+   should be passed with type unsigned int, because that is what the non-GCC
+   definitions require.  With GCC, __builtin_memcpy takes an arg
+   of type size_t, but it can handle unsigned int.  */
+
+#if __GNUC__ > 1               /* GNU C and GNU C++ define this.  */
+#define __yy_memcpy(TO,FROM,COUNT)     __builtin_memcpy(TO,FROM,COUNT)
+#else                          /* not GNU C or C++ */
+#ifndef __cplusplus
+
+/* This is the most reliable way to avoid incompatibilities
+   in available built-in functions on various systems.  */
+static void
+__yy_memcpy (to, from, count)
+     char *to;
+     char *from;
+     unsigned int count;
+{
+  register char *f = from;
+  register char *t = to;
+  register int i = count;
+
+  while (i-- > 0)
+    *t++ = *f++;
+}
+
+#else /* __cplusplus */
+
+/* This is the most reliable way to avoid incompatibilities
+   in available built-in functions on various systems.  */
+static void
+__yy_memcpy (char *to, char *from, unsigned int count)
+{
+  register char *t = to;
+  register char *f = from;
+  register int i = count;
+
+  while (i-- > 0)
+    *t++ = *f++;
+}
+
+#endif
+#endif
+\f
+#line 217 "/usr/share/bison.simple"
+
+/* The user can define YYPARSE_PARAM as the name of an argument to be passed
+   into yyparse.  The argument should have type void *.
+   It should actually point to an object.
+   Grammar actions can access the variable by casting it
+   to the proper pointer type.  */
+
+#ifdef YYPARSE_PARAM
+#ifdef __cplusplus
+#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
+#define YYPARSE_PARAM_DECL
+#else /* not __cplusplus */
+#define YYPARSE_PARAM_ARG YYPARSE_PARAM
+#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
+#endif /* not __cplusplus */
+#else /* not YYPARSE_PARAM */
+#define YYPARSE_PARAM_ARG
+#define YYPARSE_PARAM_DECL
+#endif /* not YYPARSE_PARAM */
+
+/* Prevent warning if -Wstrict-prototypes.  */
+#ifdef __GNUC__
+#ifdef YYPARSE_PARAM
+int yyparse (void *);
+#else
+int yyparse (void);
+#endif
+#endif
+
+int
+yyparse(YYPARSE_PARAM_ARG)
+     YYPARSE_PARAM_DECL
+{
+  register int yystate;
+  register int yyn;
+  register short *yyssp;
+  register YYSTYPE *yyvsp;
+  int yyerrstatus;     /*  number of tokens to shift before error messages enabled */
+  int yychar1 = 0;             /*  lookahead token as an internal (translated) token number */
+
+  short        yyssa[YYINITDEPTH];     /*  the state stack                     */
+  YYSTYPE yyvsa[YYINITDEPTH];  /*  the semantic value stack            */
+
+  short *yyss = yyssa;         /*  refer to the stacks thru separate pointers */
+  YYSTYPE *yyvs = yyvsa;       /*  to allow yyoverflow to reallocate them elsewhere */
+
+#ifdef YYLSP_NEEDED
+  YYLTYPE yylsa[YYINITDEPTH];  /*  the location stack                  */
+  YYLTYPE *yyls = yylsa;
+  YYLTYPE *yylsp;
+
+#define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
+#else
+#define YYPOPSTACK   (yyvsp--, yyssp--)
+#endif
+
+  int yystacksize = YYINITDEPTH;
+  int yyfree_stacks = 0;
+
+#ifdef YYPURE
+  int yychar;
+  YYSTYPE yylval;
+  int yynerrs;
+#ifdef YYLSP_NEEDED
+  YYLTYPE yylloc;
+#endif
+#endif
+
+  YYSTYPE yyval;               /*  the variable used to return         */
+                               /*  semantic values from the action     */
+                               /*  routines                            */
+
+  int yylen;
+
+#if YYDEBUG != 0
+  if (yydebug)
+    fprintf(stderr, "Starting parse\n");
+#endif
+
+  yystate = 0;
+  yyerrstatus = 0;
+  yynerrs = 0;
+  yychar = YYEMPTY;            /* Cause a token to be read.  */
+
+  /* Initialize stack pointers.
+     Waste one element of value and location stack
+     so that they stay on the same level as the state stack.
+     The wasted elements are never initialized.  */
+
+  yyssp = yyss - 1;
+  yyvsp = yyvs;
+#ifdef YYLSP_NEEDED
+  yylsp = yyls;
+#endif
+
+/* Push a new state, which is found in  yystate  .  */
+/* In all cases, when you get here, the value and location stacks
+   have just been pushed. so pushing a state here evens the stacks.  */
+yynewstate:
+
+  *++yyssp = yystate;
+
+  if (yyssp >= yyss + yystacksize - 1)
+    {
+      /* Give user a chance to reallocate the stack */
+      /* Use copies of these so that the &'s don't force the real ones into memory. */
+      YYSTYPE *yyvs1 = yyvs;
+      short *yyss1 = yyss;
+#ifdef YYLSP_NEEDED
+      YYLTYPE *yyls1 = yyls;
+#endif
+
+      /* Get the current used size of the three stacks, in elements.  */
+      int size = yyssp - yyss + 1;
+
+#ifdef yyoverflow
+      /* Each stack pointer address is followed by the size of
+        the data in use in that stack, in bytes.  */
+#ifdef YYLSP_NEEDED
+      /* This used to be a conditional around just the two extra args,
+        but that might be undefined if yyoverflow is a macro.  */
+      yyoverflow("parser stack overflow",
+                &yyss1, size * sizeof (*yyssp),
+                &yyvs1, size * sizeof (*yyvsp),
+                &yyls1, size * sizeof (*yylsp),
+                &yystacksize);
+#else
+      yyoverflow("parser stack overflow",
+                &yyss1, size * sizeof (*yyssp),
+                &yyvs1, size * sizeof (*yyvsp),
+                &yystacksize);
+#endif
+
+      yyss = yyss1; yyvs = yyvs1;
+#ifdef YYLSP_NEEDED
+      yyls = yyls1;
+#endif
+#else /* no yyoverflow */
+      /* Extend the stack our own way.  */
+      if (yystacksize >= YYMAXDEPTH)
+       {
+         yyerror("parser stack overflow");
+         if (yyfree_stacks)
+           {
+             free (yyss);
+             free (yyvs);
+#ifdef YYLSP_NEEDED
+             free (yyls);
+#endif
+           }
+         return 2;
+       }
+      yystacksize *= 2;
+      if (yystacksize > YYMAXDEPTH)
+       yystacksize = YYMAXDEPTH;
+#ifndef YYSTACK_USE_ALLOCA
+      yyfree_stacks = 1;
+#endif
+      yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
+      __yy_memcpy ((char *)yyss, (char *)yyss1,
+                  size * (unsigned int) sizeof (*yyssp));
+      yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
+      __yy_memcpy ((char *)yyvs, (char *)yyvs1,
+                  size * (unsigned int) sizeof (*yyvsp));
+#ifdef YYLSP_NEEDED
+      yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
+      __yy_memcpy ((char *)yyls, (char *)yyls1,
+                  size * (unsigned int) sizeof (*yylsp));
+#endif
+#endif /* no yyoverflow */
+
+      yyssp = yyss + size - 1;
+      yyvsp = yyvs + size - 1;
+#ifdef YYLSP_NEEDED
+      yylsp = yyls + size - 1;
+#endif
+
+#if YYDEBUG != 0
+      if (yydebug)
+       fprintf(stderr, "Stack size increased to %d\n", yystacksize);
+#endif
+
+      if (yyssp >= yyss + yystacksize - 1)
+       YYABORT;
+    }
+
+#if YYDEBUG != 0
+  if (yydebug)
+    fprintf(stderr, "Entering state %d\n", yystate);
+#endif
+
+  goto yybackup;
+ yybackup:
+
+/* Do appropriate processing given the current state.  */
+/* Read a lookahead token if we need one and don't already have one.  */
+/* yyresume: */
+
+  /* First try to decide what to do without reference to lookahead token.  */
+
+  yyn = yypact[yystate];
+  if (yyn == YYFLAG)
+    goto yydefault;
+
+  /* Not known => get a lookahead token if don't already have one.  */
+
+  /* yychar is either YYEMPTY or YYEOF
+     or a valid token in external form.  */
+
+  if (yychar == YYEMPTY)
+    {
+#if YYDEBUG != 0
+      if (yydebug)
+       fprintf(stderr, "Reading a token: ");
+#endif
+      yychar = YYLEX;
+    }
+
+  /* Convert token to internal form (in yychar1) for indexing tables with */
+
+  if (yychar <= 0)             /* This means end of input. */
+    {
+      yychar1 = 0;
+      yychar = YYEOF;          /* Don't call YYLEX any more */
+
+#if YYDEBUG != 0
+      if (yydebug)
+       fprintf(stderr, "Now at end of input.\n");
+#endif
+    }
+  else
+    {
+      yychar1 = YYTRANSLATE(yychar);
+
+#if YYDEBUG != 0
+      if (yydebug)
+       {
+         fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
+         /* Give the individual parser a way to print the precise meaning
+            of a token, for further debugging info.  */
+#ifdef YYPRINT
+         YYPRINT (stderr, yychar, yylval);
+#endif
+         fprintf (stderr, ")\n");
+       }
+#endif
+    }
+
+  yyn += yychar1;
+  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
+    goto yydefault;
+
+  yyn = yytable[yyn];
+
+  /* yyn is what to do for this token type in this state.
+     Negative => reduce, -yyn is rule number.
+     Positive => shift, yyn is new state.
+       New state is final state => don't bother to shift,
+       just return success.
+     0, or most negative number => error.  */
+
+  if (yyn < 0)
+    {
+      if (yyn == YYFLAG)
+       goto yyerrlab;
+      yyn = -yyn;
+      goto yyreduce;
+    }
+  else if (yyn == 0)
+    goto yyerrlab;
+
+  if (yyn == YYFINAL)
+    YYACCEPT;
+
+  /* Shift the lookahead token.  */
+
+#if YYDEBUG != 0
+  if (yydebug)
+    fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
+#endif
+
+  /* Discard the token being shifted unless it is eof.  */
+  if (yychar != YYEOF)
+    yychar = YYEMPTY;
+
+  *++yyvsp = yylval;
+#ifdef YYLSP_NEEDED
+  *++yylsp = yylloc;
+#endif
+
+  /* count tokens shifted since error; after three, turn off error status.  */
+  if (yyerrstatus) yyerrstatus--;
+
+  yystate = yyn;
+  goto yynewstate;
+
+/* Do the default action for the current state.  */
+yydefault:
+
+  yyn = yydefact[yystate];
+  if (yyn == 0)
+    goto yyerrlab;
+
+/* Do a reduction.  yyn is the number of a rule to reduce with.  */
+yyreduce:
+  yylen = yyr2[yyn];
+  if (yylen > 0)
+    yyval = yyvsp[1-yylen]; /* implement default value of the action */
+
+#if YYDEBUG != 0
+  if (yydebug)
+    {
+      int i;
+
+      fprintf (stderr, "Reducing via rule %d (line %d), ",
+              yyn, yyrline[yyn]);
+
+      /* Print the symbols being reduced, and their result.  */
+      for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
+       fprintf (stderr, "%s ", yytname[yyrhs[i]]);
+      fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
+    }
+#endif
+
+
+  switch (yyn) {
+
+case 1:
+#line 162 "grammar.y"
+{ yyval.node = new NullNode(); ;
+    break;}
+case 2:
+#line 163 "grammar.y"
+{ yyval.node = new BooleanNode(true); ;
+    break;}
+case 3:
+#line 164 "grammar.y"
+{ yyval.node = new BooleanNode(false); ;
+    break;}
+case 4:
+#line 165 "grammar.y"
+{ yyval.node = new NumberNode(yyvsp[0].dval); ;
+    break;}
+case 5:
+#line 166 "grammar.y"
+{ yyval.node = new StringNode(yyvsp[0].ustr); delete yyvsp[0].ustr; ;
+    break;}
+case 6:
+#line 167 "grammar.y"
+{ Lexer *l = Lexer::curr();
+                                     if (!l->scanRegExp()) YYABORT;
+                                     yyval.node = new RegExpNode(l->pattern,l->flags);;
+    break;}
+case 7:
+#line 171 "grammar.y"
+{ Lexer *l = Lexer::curr();
+                                     if (!l->scanRegExp()) YYABORT;
+                                     yyval.node = new RegExpNode(UString('=')+l->pattern,l->flags);;
+    break;}
+case 8:
+#line 177 "grammar.y"
+{ yyval.node = new ThisNode(); ;
+    break;}
+case 9:
+#line 178 "grammar.y"
+{ yyval.node = new ResolveNode(yyvsp[0].ustr);
+                                     delete yyvsp[0].ustr; ;
+    break;}
+case 12:
+#line 182 "grammar.y"
+{ yyval.node = new GroupNode(yyvsp[-1].node); ;
+    break;}
+case 13:
+#line 183 "grammar.y"
+{ yyval.node = new ObjectLiteralNode(0L); ;
+    break;}
+case 14:
+#line 184 "grammar.y"
+{ yyval.node = new ObjectLiteralNode(yyvsp[-1].node); ;
+    break;}
+case 15:
+#line 188 "grammar.y"
+{ yyval.node = new ArrayNode(yyvsp[-1].eli); ;
+    break;}
+case 16:
+#line 189 "grammar.y"
+{ yyval.node = new ArrayNode(yyvsp[-1].elm); ;
+    break;}
+case 17:
+#line 190 "grammar.y"
+{ yyval.node = new ArrayNode(yyvsp[-1].eli, yyvsp[-3].elm); ;
+    break;}
+case 18:
+#line 194 "grammar.y"
+{ yyval.elm = new ElementNode(yyvsp[-1].eli, yyvsp[0].node); ;
+    break;}
+case 19:
+#line 196 "grammar.y"
+{ yyval.elm = new ElementNode(yyvsp[-3].elm, yyvsp[-1].eli, yyvsp[0].node); ;
+    break;}
+case 20:
+#line 200 "grammar.y"
+{ yyval.eli = 0L; ;
+    break;}
+case 22:
+#line 205 "grammar.y"
+{ yyval.eli = new ElisionNode(0L); ;
+    break;}
+case 23:
+#line 206 "grammar.y"
+{ yyval.eli = new ElisionNode(yyvsp[-1].eli); ;
+    break;}
+case 24:
+#line 210 "grammar.y"
+{ yyval.node = new PropertyValueNode(yyvsp[-2].node, yyvsp[0].node); ;
+    break;}
+case 25:
+#line 212 "grammar.y"
+{ yyval.node = new PropertyValueNode(yyvsp[-2].node, yyvsp[0].node, yyvsp[-4].node); ;
+    break;}
+case 26:
+#line 216 "grammar.y"
+{ yyval.node = new PropertyNode(yyvsp[0].ustr);
+                                     delete yyvsp[0].ustr; ;
+    break;}
+case 27:
+#line 218 "grammar.y"
+{ yyval.node = new PropertyNode(yyvsp[0].ustr); delete yyvsp[0].ustr; ;
+    break;}
+case 28:
+#line 219 "grammar.y"
+{ yyval.node = new PropertyNode(yyvsp[0].dval); ;
+    break;}
+case 31:
+#line 225 "grammar.y"
+{ yyval.node = new AccessorNode1(yyvsp[-3].node, yyvsp[-1].node); ;
+    break;}
+case 32:
+#line 226 "grammar.y"
+{ yyval.node = new AccessorNode2(yyvsp[-2].node, yyvsp[0].ustr);
+                                     delete yyvsp[0].ustr; ;
+    break;}
+case 33:
+#line 228 "grammar.y"
+{ yyval.node = new NewExprNode(yyvsp[-1].node, yyvsp[0].args); ;
+    break;}
+case 35:
+#line 233 "grammar.y"
+{ yyval.node = new NewExprNode(yyvsp[0].node); ;
+    break;}
+case 36:
+#line 237 "grammar.y"
+{ yyval.node = new FunctionCallNode(yyvsp[-1].node, yyvsp[0].args); ;
+    break;}
+case 37:
+#line 238 "grammar.y"
+{ yyval.node = new FunctionCallNode(yyvsp[-1].node, yyvsp[0].args); ;
+    break;}
+case 38:
+#line 239 "grammar.y"
+{ yyval.node = new AccessorNode1(yyvsp[-3].node, yyvsp[-1].node); ;
+    break;}
+case 39:
+#line 240 "grammar.y"
+{ yyval.node = new AccessorNode2(yyvsp[-2].node, yyvsp[0].ustr); ;
+    break;}
+case 40:
+#line 244 "grammar.y"
+{ yyval.args = new ArgumentsNode(0L); ;
+    break;}
+case 41:
+#line 245 "grammar.y"
+{ yyval.args = new ArgumentsNode(yyvsp[-1].alist); ;
+    break;}
+case 42:
+#line 249 "grammar.y"
+{ yyval.alist = new ArgumentListNode(yyvsp[0].node); ;
+    break;}
+case 43:
+#line 250 "grammar.y"
+{ yyval.alist = new ArgumentListNode(yyvsp[-2].alist, yyvsp[0].node); ;
+    break;}
+case 47:
+#line 260 "grammar.y"
+{ yyval.node = new PostfixNode(yyvsp[-1].node, OpPlusPlus); ;
+    break;}
+case 48:
+#line 261 "grammar.y"
+{ yyval.node = new PostfixNode(yyvsp[-1].node, OpMinusMinus); ;
+    break;}
+case 50:
+#line 266 "grammar.y"
+{ yyval.node = new DeleteNode(yyvsp[0].node); ;
+    break;}
+case 51:
+#line 267 "grammar.y"
+{ yyval.node = new VoidNode(yyvsp[0].node); ;
+    break;}
+case 52:
+#line 268 "grammar.y"
+{ yyval.node = new TypeOfNode(yyvsp[0].node); ;
+    break;}
+case 53:
+#line 269 "grammar.y"
+{ yyval.node = new PrefixNode(OpPlusPlus, yyvsp[0].node); ;
+    break;}
+case 54:
+#line 270 "grammar.y"
+{ yyval.node = new PrefixNode(OpPlusPlus, yyvsp[0].node); ;
+    break;}
+case 55:
+#line 271 "grammar.y"
+{ yyval.node = new PrefixNode(OpMinusMinus, yyvsp[0].node); ;
+    break;}
+case 56:
+#line 272 "grammar.y"
+{ yyval.node = new PrefixNode(OpMinusMinus, yyvsp[0].node); ;
+    break;}
+case 57:
+#line 273 "grammar.y"
+{ yyval.node = new UnaryPlusNode(yyvsp[0].node); ;
+    break;}
+case 58:
+#line 274 "grammar.y"
+{ yyval.node = new NegateNode(yyvsp[0].node); ;
+    break;}
+case 59:
+#line 275 "grammar.y"
+{ yyval.node = new BitwiseNotNode(yyvsp[0].node); ;
+    break;}
+case 60:
+#line 276 "grammar.y"
+{ yyval.node = new LogicalNotNode(yyvsp[0].node); ;
+    break;}
+case 62:
+#line 281 "grammar.y"
+{ yyval.node = new MultNode(yyvsp[-2].node, yyvsp[0].node, '*'); ;
+    break;}
+case 63:
+#line 282 "grammar.y"
+{ yyval.node = new MultNode(yyvsp[-2].node, yyvsp[0].node, '/'); ;
+    break;}
+case 64:
+#line 283 "grammar.y"
+{ yyval.node = new MultNode(yyvsp[-2].node,yyvsp[0].node,'%'); ;
+    break;}
+case 66:
+#line 288 "grammar.y"
+{ yyval.node = new AddNode(yyvsp[-2].node, yyvsp[0].node, '+'); ;
+    break;}
+case 67:
+#line 289 "grammar.y"
+{ yyval.node = new AddNode(yyvsp[-2].node, yyvsp[0].node, '-'); ;
+    break;}
+case 69:
+#line 294 "grammar.y"
+{ yyval.node = new ShiftNode(yyvsp[-2].node, OpLShift, yyvsp[0].node); ;
+    break;}
+case 70:
+#line 295 "grammar.y"
+{ yyval.node = new ShiftNode(yyvsp[-2].node, OpRShift, yyvsp[0].node); ;
+    break;}
+case 71:
+#line 296 "grammar.y"
+{ yyval.node = new ShiftNode(yyvsp[-2].node, OpURShift, yyvsp[0].node); ;
+    break;}
+case 73:
+#line 302 "grammar.y"
+{ yyval.node = new RelationalNode(yyvsp[-2].node, OpLess, yyvsp[0].node); ;
+    break;}
+case 74:
+#line 304 "grammar.y"
+{ yyval.node = new RelationalNode(yyvsp[-2].node, OpGreater, yyvsp[0].node); ;
+    break;}
+case 75:
+#line 306 "grammar.y"
+{ yyval.node = new RelationalNode(yyvsp[-2].node, OpLessEq, yyvsp[0].node); ;
+    break;}
+case 76:
+#line 308 "grammar.y"
+{ yyval.node = new RelationalNode(yyvsp[-2].node, OpGreaterEq, yyvsp[0].node); ;
+    break;}
+case 77:
+#line 310 "grammar.y"
+{ yyval.node = new RelationalNode(yyvsp[-2].node, OpInstanceOf, yyvsp[0].node); ;
+    break;}
+case 78:
+#line 312 "grammar.y"
+{ yyval.node = new RelationalNode(yyvsp[-2].node, OpIn, yyvsp[0].node); ;
+    break;}
+case 80:
+#line 317 "grammar.y"
+{ yyval.node = new EqualNode(yyvsp[-2].node, OpEqEq, yyvsp[0].node); ;
+    break;}
+case 81:
+#line 318 "grammar.y"
+{ yyval.node = new EqualNode(yyvsp[-2].node, OpNotEq, yyvsp[0].node); ;
+    break;}
+case 82:
+#line 319 "grammar.y"
+{ yyval.node = new EqualNode(yyvsp[-2].node, OpStrEq, yyvsp[0].node); ;
+    break;}
+case 83:
+#line 320 "grammar.y"
+{ yyval.node = new EqualNode(yyvsp[-2].node, OpStrNEq, yyvsp[0].node);;
+    break;}
+case 85:
+#line 325 "grammar.y"
+{ yyval.node = new BitOperNode(yyvsp[-2].node, OpBitAnd, yyvsp[0].node); ;
+    break;}
+case 87:
+#line 330 "grammar.y"
+{ yyval.node = new BitOperNode(yyvsp[-2].node, OpBitXOr, yyvsp[0].node); ;
+    break;}
+case 89:
+#line 335 "grammar.y"
+{ yyval.node = new BitOperNode(yyvsp[-2].node, OpBitOr, yyvsp[0].node); ;
+    break;}
+case 91:
+#line 341 "grammar.y"
+{ yyval.node = new BinaryLogicalNode(yyvsp[-2].node, OpAnd, yyvsp[0].node); ;
+    break;}
+case 93:
+#line 347 "grammar.y"
+{ yyval.node = new BinaryLogicalNode(yyvsp[-2].node, OpOr, yyvsp[0].node); ;
+    break;}
+case 95:
+#line 353 "grammar.y"
+{ yyval.node = new ConditionalNode(yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].node); ;
+    break;}
+case 97:
+#line 359 "grammar.y"
+{ yyval.node = new AssignNode(yyvsp[-2].node, yyvsp[-1].op, yyvsp[0].node);;
+    break;}
+case 98:
+#line 363 "grammar.y"
+{ yyval.op = OpEqual; ;
+    break;}
+case 99:
+#line 364 "grammar.y"
+{ yyval.op = OpPlusEq; ;
+    break;}
+case 100:
+#line 365 "grammar.y"
+{ yyval.op = OpMinusEq; ;
+    break;}
+case 101:
+#line 366 "grammar.y"
+{ yyval.op = OpMultEq; ;
+    break;}
+case 102:
+#line 367 "grammar.y"
+{ yyval.op = OpDivEq; ;
+    break;}
+case 103:
+#line 368 "grammar.y"
+{ yyval.op = OpLShift; ;
+    break;}
+case 104:
+#line 369 "grammar.y"
+{ yyval.op = OpRShift; ;
+    break;}
+case 105:
+#line 370 "grammar.y"
+{ yyval.op = OpURShift; ;
+    break;}
+case 106:
+#line 371 "grammar.y"
+{ yyval.op = OpAndEq; ;
+    break;}
+case 107:
+#line 372 "grammar.y"
+{ yyval.op = OpXOrEq; ;
+    break;}
+case 108:
+#line 373 "grammar.y"
+{ yyval.op = OpOrEq; ;
+    break;}
+case 109:
+#line 374 "grammar.y"
+{ yyval.op = OpModEq; ;
+    break;}
+case 111:
+#line 379 "grammar.y"
+{ yyval.node = new CommaNode(yyvsp[-2].node, yyvsp[0].node); ;
+    break;}
+case 126:
+#line 400 "grammar.y"
+{ yyval.stat = new BlockNode(0L); DBG(yyval.stat, yylsp[0], yylsp[0]); ;
+    break;}
+case 127:
+#line 401 "grammar.y"
+{ yyval.stat = new BlockNode(yyvsp[-1].srcs); DBG(yyval.stat, yylsp[0], yylsp[0]); ;
+    break;}
+case 128:
+#line 405 "grammar.y"
+{ yyval.slist = new StatListNode(yyvsp[0].stat); ;
+    break;}
+case 129:
+#line 406 "grammar.y"
+{ yyval.slist = new StatListNode(yyvsp[-1].slist, yyvsp[0].stat); ;
+    break;}
+case 130:
+#line 410 "grammar.y"
+{ yyval.stat = new VarStatementNode(yyvsp[-1].vlist);
+                                      DBG(yyval.stat, yylsp[-2], yylsp[0]); ;
+    break;}
+case 131:
+#line 412 "grammar.y"
+{ if (automatic()) {
+                                          yyval.stat = new VarStatementNode(yyvsp[-1].vlist);
+                                         DBG(yyval.stat, yylsp[-2], yylsp[-1]);
+                                        } else {
+                                         YYABORT;
+                                       }
+                                      ;
+    break;}
+case 132:
+#line 422 "grammar.y"
+{ yyval.vlist = new VarDeclListNode(yyvsp[0].decl); ;
+    break;}
+case 133:
+#line 424 "grammar.y"
+{ yyval.vlist = new VarDeclListNode(yyvsp[-2].vlist, yyvsp[0].decl); ;
+    break;}
+case 134:
+#line 428 "grammar.y"
+{ yyval.decl = new VarDeclNode(yyvsp[0].ustr, 0); delete yyvsp[0].ustr; ;
+    break;}
+case 135:
+#line 429 "grammar.y"
+{ yyval.decl = new VarDeclNode(yyvsp[-1].ustr, yyvsp[0].init); delete yyvsp[-1].ustr; ;
+    break;}
+case 136:
+#line 433 "grammar.y"
+{ yyval.init = new AssignExprNode(yyvsp[0].node); ;
+    break;}
+case 137:
+#line 437 "grammar.y"
+{ yyval.stat = new EmptyStatementNode(); ;
+    break;}
+case 138:
+#line 441 "grammar.y"
+{ yyval.stat = new ExprStatementNode(yyvsp[-1].node);
+                                     DBG(yyval.stat, yylsp[-1], yylsp[0]); ;
+    break;}
+case 139:
+#line 443 "grammar.y"
+{ if (automatic()) {
+                                       yyval.stat = new ExprStatementNode(yyvsp[-1].node);
+                                      DBG(yyval.stat, yylsp[-1], yylsp[-1]);
+                                     } else
+                                      YYABORT; ;
+    break;}
+case 140:
+#line 451 "grammar.y"
+{ yyval.stat = new IfNode(yyvsp[-2].node,yyvsp[0].stat,0L);DBG(yyval.stat,yylsp[-4],yylsp[-1]); ;
+    break;}
+case 141:
+#line 453 "grammar.y"
+{ yyval.stat = new IfNode(yyvsp[-4].node,yyvsp[-2].stat,yyvsp[0].stat);DBG(yyval.stat,yylsp[-6],yylsp[-3]); ;
+    break;}
+case 142:
+#line 457 "grammar.y"
+{ yyval.stat=new DoWhileNode(yyvsp[-4].stat,yyvsp[-1].node);DBG(yyval.stat,yylsp[-5],yylsp[-3]);;
+    break;}
+case 143:
+#line 458 "grammar.y"
+{ yyval.stat = new WhileNode(yyvsp[-2].node,yyvsp[0].stat);DBG(yyval.stat,yylsp[-4],yylsp[-1]); ;
+    break;}
+case 144:
+#line 460 "grammar.y"
+{ yyval.stat = new ForNode(yyvsp[-6].node,yyvsp[-4].node,yyvsp[-2].node,yyvsp[0].stat);
+                                    DBG(yyval.stat,yylsp[-8],yylsp[-1]); ;
+    break;}
+case 145:
+#line 463 "grammar.y"
+{ yyval.stat = new ForNode(yyvsp[-6].vlist,yyvsp[-4].node,yyvsp[-2].node,yyvsp[0].stat);
+                                    DBG(yyval.stat,yylsp[-9],yylsp[-1]); ;
+    break;}
+case 146:
+#line 466 "grammar.y"
+{ yyval.stat = new ForInNode(yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].stat);
+                                    DBG(yyval.stat,yylsp[-6],yylsp[-1]); ;
+    break;}
+case 147:
+#line 469 "grammar.y"
+{ yyval.stat = new ForInNode(yyvsp[-4].ustr,0L,yyvsp[-2].node,yyvsp[0].stat);
+                                    DBG(yyval.stat,yylsp[-7],yylsp[-1]);
+                                     delete yyvsp[-4].ustr; ;
+    break;}
+case 148:
+#line 473 "grammar.y"
+{ yyval.stat = new ForInNode(yyvsp[-5].ustr,yyvsp[-4].init,yyvsp[-2].node,yyvsp[0].stat);
+                                    DBG(yyval.stat,yylsp[-8],yylsp[-1]);
+                                     delete yyvsp[-5].ustr; ;
+    break;}
+case 149:
+#line 479 "grammar.y"
+{ yyval.node = 0L; ;
+    break;}
+case 151:
+#line 484 "grammar.y"
+{ yyval.stat = new ContinueNode(); DBG(yyval.stat,yylsp[-1],yylsp[0]); ;
+    break;}
+case 152:
+#line 485 "grammar.y"
+{ if (automatic()) {
+                                       yyval.stat = new ContinueNode(); DBG(yyval.stat,yylsp[-1],yylsp[0]);
+                                     } else
+                                      YYABORT; ;
+    break;}
+case 153:
+#line 489 "grammar.y"
+{ yyval.stat = new ContinueNode(yyvsp[-1].ustr); DBG(yyval.stat,yylsp[-2],yylsp[0]);
+                                     delete yyvsp[-1].ustr; ;
+    break;}
+case 154:
+#line 491 "grammar.y"
+{ if (automatic()) {
+                                       yyval.stat = new ContinueNode(yyvsp[-1].ustr);DBG(yyval.stat,yylsp[-2],yylsp[-1]);
+                                      delete yyvsp[-1].ustr;
+                                     } else
+                                      YYABORT; ;
+    break;}
+case 155:
+#line 499 "grammar.y"
+{ yyval.stat = new BreakNode();DBG(yyval.stat,yylsp[-1],yylsp[0]); ;
+    break;}
+case 156:
+#line 500 "grammar.y"
+{ if (automatic()) {
+                                       yyval.stat = new BreakNode(); DBG(yyval.stat,yylsp[-1],yylsp[-1]);
+                                     } else
+                                      YYABORT; ;
+    break;}
+case 157:
+#line 504 "grammar.y"
+{ yyval.stat = new BreakNode(yyvsp[-1].ustr); DBG(yyval.stat,yylsp[-2],yylsp[0]);
+                                     delete yyvsp[-1].ustr; ;
+    break;}
+case 158:
+#line 506 "grammar.y"
+{ if (automatic()) {
+                                       yyval.stat = new BreakNode(yyvsp[-1].ustr); DBG(yyval.stat,yylsp[-2],yylsp[-1]);
+                                      delete yyvsp[-1].ustr;
+                                     } else
+                                      YYABORT;
+                                   ;
+    break;}
+case 159:
+#line 515 "grammar.y"
+{ yyval.stat = new ReturnNode(0L); DBG(yyval.stat,yylsp[-1],yylsp[0]); ;
+    break;}
+case 160:
+#line 516 "grammar.y"
+{ if (automatic()) {
+                                       yyval.stat = new ReturnNode(0L); DBG(yyval.stat,yylsp[-1],yylsp[-1]);
+                                     } else
+                                      YYABORT; ;
+    break;}
+case 161:
+#line 520 "grammar.y"
+{ yyval.stat = new ReturnNode(yyvsp[-1].node); ;
+    break;}
+case 162:
+#line 521 "grammar.y"
+{ if (automatic())
+                                       yyval.stat = new ReturnNode(yyvsp[-1].node);
+                                     else
+                                      YYABORT; ;
+    break;}
+case 163:
+#line 528 "grammar.y"
+{ yyval.stat = new WithNode(yyvsp[-2].node,yyvsp[0].stat);
+                                     DBG(yyval.stat, yylsp[-4], yylsp[-1]); ;
+    break;}
+case 164:
+#line 533 "grammar.y"
+{ yyval.stat = new SwitchNode(yyvsp[-2].node, yyvsp[0].cblk);
+                                     DBG(yyval.stat, yylsp[-4], yylsp[-1]); ;
+    break;}
+case 165:
+#line 538 "grammar.y"
+{ yyval.cblk = new CaseBlockNode(yyvsp[-1].clist, 0L, 0L); ;
+    break;}
+case 166:
+#line 540 "grammar.y"
+{ yyval.cblk = new CaseBlockNode(yyvsp[-3].clist, yyvsp[-2].ccl, yyvsp[-1].clist); ;
+    break;}
+case 167:
+#line 544 "grammar.y"
+{ yyval.clist = 0L; ;
+    break;}
+case 169:
+#line 549 "grammar.y"
+{ yyval.clist = new ClauseListNode(yyvsp[0].ccl); ;
+    break;}
+case 170:
+#line 550 "grammar.y"
+{ yyval.clist = yyvsp[-1].clist->append(yyvsp[0].ccl); ;
+    break;}
+case 171:
+#line 554 "grammar.y"
+{ yyval.ccl = new CaseClauseNode(yyvsp[-1].node, 0L); ;
+    break;}
+case 172:
+#line 555 "grammar.y"
+{ yyval.ccl = new CaseClauseNode(yyvsp[-2].node, yyvsp[0].slist); ;
+    break;}
+case 173:
+#line 559 "grammar.y"
+{ yyval.ccl = new CaseClauseNode(0L, 0L);; ;
+    break;}
+case 174:
+#line 560 "grammar.y"
+{ yyval.ccl = new CaseClauseNode(0L, yyvsp[0].slist); ;
+    break;}
+case 175:
+#line 564 "grammar.y"
+{ yyvsp[0].stat->pushLabel(yyvsp[-2].ustr);
+                                     yyval.stat = new LabelNode(yyvsp[-2].ustr, yyvsp[0].stat);
+                                     delete yyvsp[-2].ustr; ;
+    break;}
+case 176:
+#line 570 "grammar.y"
+{ yyval.stat = new ThrowNode(yyvsp[-1].node); ;
+    break;}
+case 177:
+#line 574 "grammar.y"
+{ yyval.stat = new TryNode(yyvsp[-1].stat, yyvsp[0].node); ;
+    break;}
+case 178:
+#line 575 "grammar.y"
+{ yyval.stat = new TryNode(yyvsp[-1].stat, 0L, yyvsp[0].node); ;
+    break;}
+case 179:
+#line 576 "grammar.y"
+{ yyval.stat = new TryNode(yyvsp[-2].stat, yyvsp[-1].node, yyvsp[0].node); ;
+    break;}
+case 180:
+#line 580 "grammar.y"
+{ yyval.node = new CatchNode(yyvsp[-2].ustr, yyvsp[0].stat); delete yyvsp[-2].ustr; ;
+    break;}
+case 181:
+#line 584 "grammar.y"
+{ yyval.node = new FinallyNode(yyvsp[0].stat); ;
+    break;}
+case 182:
+#line 588 "grammar.y"
+{ yyval.func = new FuncDeclNode(yyvsp[-3].ustr, 0L, yyvsp[0].body);
+                                             delete yyvsp[-3].ustr; ;
+    break;}
+case 183:
+#line 591 "grammar.y"
+{ yyval.func = new FuncDeclNode(yyvsp[-4].ustr, yyvsp[-2].param, yyvsp[0].body);
+                                     delete yyvsp[-4].ustr; ;
+    break;}
+case 184:
+#line 595 "grammar.y"
+{ yyval.node = new FuncExprNode(0L, yyvsp[0].body); ;
+    break;}
+case 185:
+#line 597 "grammar.y"
+{ yyval.node = new FuncExprNode(yyvsp[-2].param, yyvsp[0].body); ;
+    break;}
+case 186:
+#line 602 "grammar.y"
+{ yyval.param = new ParameterNode(yyvsp[0].ustr); delete yyvsp[0].ustr; ;
+    break;}
+case 187:
+#line 603 "grammar.y"
+{ yyval.param = yyvsp[-2].param->append(yyvsp[0].ustr);
+                                    delete yyvsp[0].ustr; ;
+    break;}
+case 188:
+#line 608 "grammar.y"
+{ yyval.body = new FunctionBodyNode(0L);
+                                    DBG(yyval.body, yylsp[-1], yylsp[0]);;
+    break;}
+case 189:
+#line 610 "grammar.y"
+{ yyval.body = new FunctionBodyNode(yyvsp[-1].srcs);
+                                    DBG(yyval.body, yylsp[-2], yylsp[0]);;
+    break;}
+case 190:
+#line 615 "grammar.y"
+{ yyval.prog = new ProgramNode(0L);
+                                     Parser::progNode = yyval.prog; ;
+    break;}
+case 191:
+#line 617 "grammar.y"
+{ yyval.prog = new ProgramNode(yyvsp[0].srcs);
+                                     Parser::progNode = yyval.prog; ;
+    break;}
+case 192:
+#line 622 "grammar.y"
+{ yyval.srcs = new SourceElementsNode(yyvsp[0].src); ;
+    break;}
+case 193:
+#line 623 "grammar.y"
+{ yyval.srcs = new SourceElementsNode(yyvsp[-1].srcs, yyvsp[0].src); ;
+    break;}
+case 194:
+#line 627 "grammar.y"
+{ yyval.src = new SourceElementNode(yyvsp[0].stat); ;
+    break;}
+case 195:
+#line 628 "grammar.y"
+{ yyval.src = new SourceElementNode(yyvsp[0].func); ;
+    break;}
+}
+   /* the action file gets copied in in place of this dollarsign */
+#line 543 "/usr/share/bison.simple"
+\f
+  yyvsp -= yylen;
+  yyssp -= yylen;
+#ifdef YYLSP_NEEDED
+  yylsp -= yylen;
+#endif
+
+#if YYDEBUG != 0
+  if (yydebug)
+    {
+      short *ssp1 = yyss - 1;
+      fprintf (stderr, "state stack now");
+      while (ssp1 != yyssp)
+       fprintf (stderr, " %d", *++ssp1);
+      fprintf (stderr, "\n");
+    }
+#endif
+
+  *++yyvsp = yyval;
+
+#ifdef YYLSP_NEEDED
+  yylsp++;
+  if (yylen == 0)
+    {
+      yylsp->first_line = yylloc.first_line;
+      yylsp->first_column = yylloc.first_column;
+      yylsp->last_line = (yylsp-1)->last_line;
+      yylsp->last_column = (yylsp-1)->last_column;
+      yylsp->text = 0;
+    }
+  else
+    {
+      yylsp->last_line = (yylsp+yylen-1)->last_line;
+      yylsp->last_column = (yylsp+yylen-1)->last_column;
+    }
+#endif
+
+  /* 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.  */
+
+  yyn = yyr1[yyn];
+
+  yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
+  if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+    yystate = yytable[yystate];
+  else
+    yystate = yydefgoto[yyn - YYNTBASE];
+
+  goto yynewstate;
+
+yyerrlab:   /* here on detecting error */
+
+  if (! yyerrstatus)
+    /* If not already recovering from an error, report this error.  */
+    {
+      ++yynerrs;
+
+#ifdef YYERROR_VERBOSE
+      yyn = yypact[yystate];
+
+      if (yyn > YYFLAG && yyn < YYLAST)
+       {
+         int size = 0;
+         char *msg;
+         int x, count;
+
+         count = 0;
+         /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
+         for (x = (yyn < 0 ? -yyn : 0);
+              x < (sizeof(yytname) / sizeof(char *)); x++)
+           if (yycheck[x + yyn] == x)
+             size += strlen(yytname[x]) + 15, count++;
+         msg = (char *) malloc(size + 15);
+         if (msg != 0)
+           {
+             strcpy(msg, "parse error");
+
+             if (count < 5)
+               {
+                 count = 0;
+                 for (x = (yyn < 0 ? -yyn : 0);
+                      x < (sizeof(yytname) / sizeof(char *)); x++)
+                   if (yycheck[x + yyn] == x)
+                     {
+                       strcat(msg, count == 0 ? ", expecting `" : " or `");
+                       strcat(msg, yytname[x]);
+                       strcat(msg, "'");
+                       count++;
+                     }
+               }
+             yyerror(msg);
+             free(msg);
+           }
+         else
+           yyerror ("parse error; also virtual memory exceeded");
+       }
+      else
+#endif /* YYERROR_VERBOSE */
+       yyerror("parse error");
+    }
+
+  goto yyerrlab1;
+yyerrlab1:   /* here on error raised explicitly by an action */
+
+  if (yyerrstatus == 3)
+    {
+      /* if just tried and failed to reuse lookahead token after an error, discard it.  */
+
+      /* return failure if at end of input */
+      if (yychar == YYEOF)
+       YYABORT;
+
+#if YYDEBUG != 0
+      if (yydebug)
+       fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
+#endif
+
+      yychar = YYEMPTY;
+    }
+
+  /* Else will try to reuse lookahead token
+     after shifting the error token.  */
+
+  yyerrstatus = 3;             /* Each real token shifted decrements this */
+
+  goto yyerrhandle;
+
+yyerrdefault:  /* current state does not do anything special for the error token. */
+
+#if 0
+  /* This is wrong; only states that explicitly want error tokens
+     should shift them.  */
+  yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
+  if (yyn) goto yydefault;
+#endif
+
+yyerrpop:   /* pop the current state because it cannot handle the error token */
+
+  if (yyssp == yyss) YYABORT;
+  yyvsp--;
+  yystate = *--yyssp;
+#ifdef YYLSP_NEEDED
+  yylsp--;
+#endif
+
+#if YYDEBUG != 0
+  if (yydebug)
+    {
+      short *ssp1 = yyss - 1;
+      fprintf (stderr, "Error: state stack now");
+      while (ssp1 != yyssp)
+       fprintf (stderr, " %d", *++ssp1);
+      fprintf (stderr, "\n");
+    }
+#endif
+
+yyerrhandle:
+
+  yyn = yypact[yystate];
+  if (yyn == YYFLAG)
+    goto yyerrdefault;
+
+  yyn += YYTERROR;
+  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
+    goto yyerrdefault;
+
+  yyn = yytable[yyn];
+  if (yyn < 0)
+    {
+      if (yyn == YYFLAG)
+       goto yyerrpop;
+      yyn = -yyn;
+      goto yyreduce;
+    }
+  else if (yyn == 0)
+    goto yyerrpop;
+
+  if (yyn == YYFINAL)
+    YYACCEPT;
+
+#if YYDEBUG != 0
+  if (yydebug)
+    fprintf(stderr, "Shifting error token, ");
+#endif
+
+  *++yyvsp = yylval;
+#ifdef YYLSP_NEEDED
+  *++yylsp = yylloc;
+#endif
+
+  yystate = yyn;
+  goto yynewstate;
+
+ yyacceptlab:
+  /* YYACCEPT comes here.  */
+  if (yyfree_stacks)
+    {
+      free (yyss);
+      free (yyvs);
+#ifdef YYLSP_NEEDED
+      free (yyls);
+#endif
+    }
+  return 0;
+
+ yyabortlab:
+  /* YYABORT comes here.  */
+  if (yyfree_stacks)
+    {
+      free (yyss);
+      free (yyvs);
+#ifdef YYLSP_NEEDED
+      free (yyls);
+#endif
+    }
+  return 1;
+}
+#line 631 "grammar.y"
+
+
+int yyerror (const char *)  /* Called by yyparse on error */
+{
+//  fprintf(stderr, "ERROR: %s at line %d\n",
+//       s, KJScript::lexer()->lineNo());
+  return 1;
+}
+
+/* may we automatically insert a semicolon ? */
+bool automatic()
+{
+  if (yychar == '}' || yychar == 0)
+    return true;
+  else if (Lexer::curr()->prevTerminator())
+    return true;
+
+  return false;
+}
diff --git a/JavaScriptCore/kjs/grammar.cpp.h b/JavaScriptCore/kjs/grammar.cpp.h
new file mode 100644 (file)
index 0000000..ff02a0b
--- /dev/null
@@ -0,0 +1,103 @@
+typedef union {
+  int                 ival;
+  double              dval;
+  UString             *ustr;
+  Node                *node;
+  StatementNode       *stat;
+  ParameterNode       *param;
+  FunctionBodyNode    *body;
+  FuncDeclNode        *func;
+  ProgramNode         *prog;
+  AssignExprNode      *init;
+  SourceElementNode   *src;
+  SourceElementsNode  *srcs;
+  StatListNode        *slist;
+  ArgumentsNode       *args;
+  ArgumentListNode    *alist;
+  VarDeclNode         *decl;
+  VarDeclListNode     *vlist;
+  CaseBlockNode       *cblk;
+  ClauseListNode      *clist;
+  CaseClauseNode      *ccl;
+  ElementNode         *elm;
+  ElisionNode         *eli;
+  Operator            op;
+} YYSTYPE;
+
+#ifndef YYLTYPE
+typedef
+  struct yyltype
+    {
+      int timestamp;
+      int first_line;
+      int first_column;
+      int last_line;
+      int last_column;
+      char *text;
+   }
+  yyltype;
+
+#define YYLTYPE yyltype
+#endif
+
+#define        NULLTOKEN       257
+#define        TRUETOKEN       258
+#define        FALSETOKEN      259
+#define        STRING  260
+#define        NUMBER  261
+#define        BREAK   262
+#define        CASE    263
+#define        DEFAULT 264
+#define        FOR     265
+#define        NEW     266
+#define        VAR     267
+#define        CONTINUE        268
+#define        FUNCTION        269
+#define        RETURN  270
+#define        VOID    271
+#define        DELETE  272
+#define        IF      273
+#define        THIS    274
+#define        DO      275
+#define        WHILE   276
+#define        ELSE    277
+#define        IN      278
+#define        INSTANCEOF      279
+#define        TYPEOF  280
+#define        SWITCH  281
+#define        WITH    282
+#define        RESERVED        283
+#define        THROW   284
+#define        TRY     285
+#define        CATCH   286
+#define        FINALLY 287
+#define        EQEQ    288
+#define        NE      289
+#define        STREQ   290
+#define        STRNEQ  291
+#define        LE      292
+#define        GE      293
+#define        OR      294
+#define        AND     295
+#define        PLUSPLUS        296
+#define        MINUSMINUS      297
+#define        LSHIFT  298
+#define        RSHIFT  299
+#define        URSHIFT 300
+#define        PLUSEQUAL       301
+#define        MINUSEQUAL      302
+#define        MULTEQUAL       303
+#define        DIVEQUAL        304
+#define        LSHIFTEQUAL     305
+#define        RSHIFTEQUAL     306
+#define        URSHIFTEQUAL    307
+#define        ANDEQUAL        308
+#define        MODEQUAL        309
+#define        XOREQUAL        310
+#define        OREQUAL 311
+#define        IDENT   312
+#define        AUTOPLUSPLUS    313
+#define        AUTOMINUSMINUS  314
+
+
+extern YYSTYPE kjsyylval;
diff --git a/JavaScriptCore/kjs/grammar.h b/JavaScriptCore/kjs/grammar.h
new file mode 100644 (file)
index 0000000..ff02a0b
--- /dev/null
@@ -0,0 +1,103 @@
+typedef union {
+  int                 ival;
+  double              dval;
+  UString             *ustr;
+  Node                *node;
+  StatementNode       *stat;
+  ParameterNode       *param;
+  FunctionBodyNode    *body;
+  FuncDeclNode        *func;
+  ProgramNode         *prog;
+  AssignExprNode      *init;
+  SourceElementNode   *src;
+  SourceElementsNode  *srcs;
+  StatListNode        *slist;
+  ArgumentsNode       *args;
+  ArgumentListNode    *alist;
+  VarDeclNode         *decl;
+  VarDeclListNode     *vlist;
+  CaseBlockNode       *cblk;
+  ClauseListNode      *clist;
+  CaseClauseNode      *ccl;
+  ElementNode         *elm;
+  ElisionNode         *eli;
+  Operator            op;
+} YYSTYPE;
+
+#ifndef YYLTYPE
+typedef
+  struct yyltype
+    {
+      int timestamp;
+      int first_line;
+      int first_column;
+      int last_line;
+      int last_column;
+      char *text;
+   }
+  yyltype;
+
+#define YYLTYPE yyltype
+#endif
+
+#define        NULLTOKEN       257
+#define        TRUETOKEN       258
+#define        FALSETOKEN      259
+#define        STRING  260
+#define        NUMBER  261
+#define        BREAK   262
+#define        CASE    263
+#define        DEFAULT 264
+#define        FOR     265
+#define        NEW     266
+#define        VAR     267
+#define        CONTINUE        268
+#define        FUNCTION        269
+#define        RETURN  270
+#define        VOID    271
+#define        DELETE  272
+#define        IF      273
+#define        THIS    274
+#define        DO      275
+#define        WHILE   276
+#define        ELSE    277
+#define        IN      278
+#define        INSTANCEOF      279
+#define        TYPEOF  280
+#define        SWITCH  281
+#define        WITH    282
+#define        RESERVED        283
+#define        THROW   284
+#define        TRY     285
+#define        CATCH   286
+#define        FINALLY 287
+#define        EQEQ    288
+#define        NE      289
+#define        STREQ   290
+#define        STRNEQ  291
+#define        LE      292
+#define        GE      293
+#define        OR      294
+#define        AND     295
+#define        PLUSPLUS        296
+#define        MINUSMINUS      297
+#define        LSHIFT  298
+#define        RSHIFT  299
+#define        URSHIFT 300
+#define        PLUSEQUAL       301
+#define        MINUSEQUAL      302
+#define        MULTEQUAL       303
+#define        DIVEQUAL        304
+#define        LSHIFTEQUAL     305
+#define        RSHIFTEQUAL     306
+#define        URSHIFTEQUAL    307
+#define        ANDEQUAL        308
+#define        MODEQUAL        309
+#define        XOREQUAL        310
+#define        OREQUAL 311
+#define        IDENT   312
+#define        AUTOPLUSPLUS    313
+#define        AUTOMINUSMINUS  314
+
+
+extern YYSTYPE kjsyylval;
diff --git a/JavaScriptCore/kjs/lexer.lut.h b/JavaScriptCore/kjs/lexer.lut.h
new file mode 100644 (file)
index 0000000..25195ee
--- /dev/null
@@ -0,0 +1,79 @@
+/* Automatically generated from keywords.table using ./create_hash_table. DO NOT EDIT ! */
+
+#include "lookup.h"
+
+namespace KJS {
+
+const struct HashEntry mainTableEntries[] = {
+   { "instanceof", INSTANCEOF, 0, 0, &mainTableEntries[63] },
+   { "var", VAR, 0, 0, &mainTableEntries[47] },
+   { "case", CASE, 0, 0, &mainTableEntries[41] },
+   { "default", DEFAULT, 0, 0, &mainTableEntries[54] },
+   { "while", WHILE, 0, 0, &mainTableEntries[46] },
+   { 0, 0, 0, 0, 0 },
+   { "do", DO, 0, 0, 0 },
+   { "typeof", TYPEOF, 0, 0, 0 },
+   { "continue", CONTINUE, 0, 0, 0 },
+   { "function", FUNCTION, 0, 0, 0 },
+   { "in", IN, 0, 0, 0 },
+   { "import", RESERVED, 0, 0, 0 },
+   { "delete", DELETE, 0, 0, 0 },
+   { "finally", FINALLY, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "else", ELSE, 0, 0, 0 },
+   { "return", RETURN, 0, 0, 0 },
+   { "debugger", RESERVED, 0, 0, 0 },
+   { "const", RESERVED, 0, 0, &mainTableEntries[48] },
+   { "package", RESERVED, 0, 0, 0 },
+   { "double", RESERVED, 0, 0, &mainTableEntries[53] },
+   { 0, 0, 0, 0, 0 },
+   { "long", RESERVED, 0, 0, 0 },
+   { "catch", CATCH, 0, 0, &mainTableEntries[45] },
+   { "void", VOID, 0, 0, &mainTableEntries[59] },
+   { "break", BREAK, 0, 0, &mainTableEntries[49] },
+   { "byte", RESERVED, 0, 0, &mainTableEntries[62] },
+   { "enum", RESERVED, 0, 0, &mainTableEntries[58] },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "this", THIS, 0, 0, &mainTableEntries[50] },
+   { "false", FALSETOKEN, 0, 0, &mainTableEntries[44] },
+   { "abstract", RESERVED, 0, 0, &mainTableEntries[56] },
+   { "null", NULLTOKEN, 0, 0, &mainTableEntries[61] },
+   { "with", WITH, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "true", TRUETOKEN, 0, 0, 0 },
+   { "boolean", RESERVED, 0, 0, 0 },
+   { "for", FOR, 0, 0, 0 },
+   { "new", NEW, 0, 0, &mainTableEntries[42] },
+   { "if", IF, 0, 0, &mainTableEntries[43] },
+   { "switch", SWITCH, 0, 0, &mainTableEntries[55] },
+   { "throw", THROW, 0, 0, &mainTableEntries[52] },
+   { "try", TRY, 0, 0, &mainTableEntries[64] },
+   { "char", RESERVED, 0, 0, 0 },
+   { "class", RESERVED, 0, 0, &mainTableEntries[51] },
+   { "export", RESERVED, 0, 0, 0 },
+   { "extends", RESERVED, 0, 0, &mainTableEntries[57] },
+   { "final", RESERVED, 0, 0, 0 },
+   { "float", RESERVED, 0, 0, 0 },
+   { "goto", RESERVED, 0, 0, 0 },
+   { "implements", RESERVED, 0, 0, 0 },
+   { "int", RESERVED, 0, 0, &mainTableEntries[66] },
+   { "interface", RESERVED, 0, 0, 0 },
+   { "native", RESERVED, 0, 0, 0 },
+   { "private", RESERVED, 0, 0, 0 },
+   { "protected", RESERVED, 0, 0, &mainTableEntries[60] },
+   { "public", RESERVED, 0, 0, 0 },
+   { "short", RESERVED, 0, 0, 0 },
+   { "static", RESERVED, 0, 0, 0 },
+   { "super", RESERVED, 0, 0, 0 },
+   { "synchronized", RESERVED, 0, 0, &mainTableEntries[65] },
+   { "throws", RESERVED, 0, 0, 0 },
+   { "transient", RESERVED, 0, 0, 0 },
+   { "volatile", RESERVED, 0, 0, 0 }
+};
+
+const struct HashTable mainTable = { 2, 67, mainTableEntries, 41 };
+
+}; // namespace
diff --git a/JavaScriptCore/kjs/math_object.lut.h b/JavaScriptCore/kjs/math_object.lut.h
new file mode 100644 (file)
index 0000000..01b8019
--- /dev/null
@@ -0,0 +1,45 @@
+/* Automatically generated from math_object.cpp using ./create_hash_table. DO NOT EDIT ! */
+
+#include "lookup.h"
+
+namespace KJS {
+
+const struct HashEntry mathTableEntries[] = {
+   { "atan", MathObjectImp::ATan, DontEnum|Function, 1, &mathTableEntries[25] },
+   { 0, 0, 0, 0, 0 },
+   { "SQRT2", MathObjectImp::Sqrt2, DontEnum, 0, &mathTableEntries[23] },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "E", MathObjectImp::Euler, DontEnum, 0, &mathTableEntries[21] },
+   { "asin", MathObjectImp::ASin, DontEnum|Function, 1, &mathTableEntries[26] },
+   { "atan2", MathObjectImp::ATan2, DontEnum|Function, 2, &mathTableEntries[32] },
+   { "LOG2E", MathObjectImp::Log2E, DontEnum, 0, &mathTableEntries[27] },
+   { "cos", MathObjectImp::Cos, DontEnum|Function, 1, 0 },
+   { "max", MathObjectImp::Max, DontEnum|Function, 2, &mathTableEntries[29] },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "LOG10E", MathObjectImp::Log10E, DontEnum, 0, &mathTableEntries[24] },
+   { "LN2", MathObjectImp::Ln2, DontEnum, 0, &mathTableEntries[31] },
+   { "abs", MathObjectImp::Abs, DontEnum|Function, 1, 0 },
+   { "sqrt", MathObjectImp::Sqrt, DontEnum|Function, 1, 0 },
+   { "exp", MathObjectImp::Exp, DontEnum|Function, 1, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "LN10", MathObjectImp::Ln10, DontEnum, 0, &mathTableEntries[22] },
+   { "PI", MathObjectImp::Pi, DontEnum, 0, &mathTableEntries[28] },
+   { "SQRT1_2", MathObjectImp::Sqrt1_2, DontEnum, 0, 0 },
+   { "acos", MathObjectImp::ACos, DontEnum|Function, 1, 0 },
+   { "ceil", MathObjectImp::Ceil, DontEnum|Function, 1, 0 },
+   { "floor", MathObjectImp::Floor, DontEnum|Function, 1, 0 },
+   { "log", MathObjectImp::Log, DontEnum|Function, 1, 0 },
+   { "min", MathObjectImp::Min, DontEnum|Function, 2, 0 },
+   { "pow", MathObjectImp::Pow, DontEnum|Function, 2, &mathTableEntries[30] },
+   { "random", MathObjectImp::Random, DontEnum|Function, 0, 0 },
+   { "round", MathObjectImp::Round, DontEnum|Function, 1, 0 },
+   { "sin", MathObjectImp::Sin, DontEnum|Function, 1, 0 },
+   { "tan", MathObjectImp::Tan, DontEnum|Function, 1, 0 }
+};
+
+const struct HashTable mathTable = { 2, 33, mathTableEntries, 21 };
+
+}; // namespace
diff --git a/JavaScriptCore/kjs/number_object.lut.h b/JavaScriptCore/kjs/number_object.lut.h
new file mode 100644 (file)
index 0000000..188bf48
--- /dev/null
@@ -0,0 +1,18 @@
+/* Automatically generated from number_object.cpp using ./create_hash_table. DO NOT EDIT ! */
+
+#include "lookup.h"
+
+namespace KJS {
+
+const struct HashEntry numberTableEntries[] = {
+   { "POSITIVE_INFINITY", NumberObjectImp::PosInfinity, DontEnum, 0, 0 },
+   { "MAX_VALUE", NumberObjectImp::MaxValue, DontEnum, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "NaN", NumberObjectImp::NaNValue, DontEnum, 0, &numberTableEntries[5] },
+   { "MIN_VALUE", NumberObjectImp::MinValue, DontEnum, 0, 0 },
+   { "NEGATIVE_INFINITY", NumberObjectImp::NegInfinity, DontEnum, 0, 0 }
+};
+
+const struct HashTable numberTable = { 2, 6, numberTableEntries, 5 };
+
+}; // namespace
diff --git a/JavaScriptCore/kjs/string_object.lut.h b/JavaScriptCore/kjs/string_object.lut.h
new file mode 100644 (file)
index 0000000..ff1790e
--- /dev/null
@@ -0,0 +1,48 @@
+/* Automatically generated from string_object.cpp using ./create_hash_table. DO NOT EDIT ! */
+
+#include "lookup.h"
+
+namespace KJS {
+
+const struct HashEntry stringTableEntries[] = {
+   { "toString", StringProtoFuncImp::ToString, DontEnum|Function, 0, 0 },
+   { "bold", StringProtoFuncImp::Bold, DontEnum|Function, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "lastIndexOf", StringProtoFuncImp::LastIndexOf, DontEnum|Function, 2, 0 },
+   { "replace", StringProtoFuncImp::Replace, DontEnum|Function, 2, 0 },
+   { "match", StringProtoFuncImp::Match, DontEnum|Function, 1, &stringTableEntries[27] },
+   { "search", StringProtoFuncImp::Search, DontEnum|Function, 1, &stringTableEntries[34] },
+   { 0, 0, 0, 0, 0 },
+   { "concat", StringProtoFuncImp::Concat, DontEnum|Function, 1, &stringTableEntries[26] },
+   { 0, 0, 0, 0, 0 },
+   { "split", StringProtoFuncImp::Split, DontEnum|Function, 1, &stringTableEntries[28] },
+   { "anchor", StringProtoFuncImp::Anchor, DontEnum|Function, 1, 0 },
+   { "charCodeAt", StringProtoFuncImp::CharCodeAt, DontEnum|Function, 1, 0 },
+   { "toUpperCase", StringProtoFuncImp::ToUpperCase, DontEnum|Function, 0, 0 },
+   { "link", StringProtoFuncImp::Link, DontEnum|Function, 1, 0 },
+   { "indexOf", StringProtoFuncImp::IndexOf, DontEnum|Function, 2, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "small", StringProtoFuncImp::Small, DontEnum|Function, 0, &stringTableEntries[32] },
+   { "sub", StringProtoFuncImp::Sub, DontEnum|Function, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "valueOf", StringProtoFuncImp::ValueOf, DontEnum|Function, 0, &stringTableEntries[29] },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "charAt", StringProtoFuncImp::CharAt, DontEnum|Function, 1, 0 },
+   { "fontsize", StringProtoFuncImp::Fontsize, DontEnum|Function, 1, 0 },
+   { "substr", StringProtoFuncImp::Substr, DontEnum|Function, 2, 0 },
+   { "slice", StringProtoFuncImp::Slice, DontEnum|Function, 0, &stringTableEntries[30] },
+   { "substring", StringProtoFuncImp::Substring, DontEnum|Function, 2, 0 },
+   { "toLowerCase", StringProtoFuncImp::ToLowerCase, DontEnum|Function, 0, 0 },
+   { "big", StringProtoFuncImp::Big, DontEnum|Function, 0, &stringTableEntries[35] },
+   { "blink", StringProtoFuncImp::Blink, DontEnum|Function, 0, &stringTableEntries[31] },
+   { "fixed", StringProtoFuncImp::Fixed, DontEnum|Function, 0, &stringTableEntries[33] },
+   { "italics", StringProtoFuncImp::Italics, DontEnum|Function, 0, 0 },
+   { "strike", StringProtoFuncImp::Strike, DontEnum|Function, 0, 0 },
+   { "sup", StringProtoFuncImp::Sup, DontEnum|Function, 0, 0 },
+   { "fontcolor", StringProtoFuncImp::Fontcolor, DontEnum|Function, 1, 0 }
+};
+
+const struct HashTable stringTable = { 2, 36, stringTableEntries, 26 };
+
+}; // namespace
index 02f91af..96fbabb 100644 (file)
@@ -1,3 +1,8 @@
+2002-03-30  Maciej Stachowiak  <mjs@apple.com>
+
+       * src/Makefile.am: Link against JavaScriptCore.framework instead
+       of the defunct libJavaScriptCore.dylib.
+
 2002-03-29  Darin Adler  <darin@apple.com>
 
        * src/kdelibs/khtml/rendering/render_image.cpp: (RenderImage::updateFromElement):
index 02f91af..96fbabb 100644 (file)
@@ -1,3 +1,8 @@
+2002-03-30  Maciej Stachowiak  <mjs@apple.com>
+
+       * src/Makefile.am: Link against JavaScriptCore.framework instead
+       of the defunct libJavaScriptCore.dylib.
+
 2002-03-29  Darin Adler  <darin@apple.com>
 
        * src/kdelibs/khtml/rendering/render_image.cpp: (RenderImage::updateFromElement):
index 02f91af..96fbabb 100644 (file)
@@ -1,3 +1,8 @@
+2002-03-30  Maciej Stachowiak  <mjs@apple.com>
+
+       * src/Makefile.am: Link against JavaScriptCore.framework instead
+       of the defunct libJavaScriptCore.dylib.
+
 2002-03-29  Darin Adler  <darin@apple.com>
 
        * src/kdelibs/khtml/rendering/render_image.cpp: (RenderImage::updateFromElement):
index bbcac83..ebb6779 100644 (file)
@@ -18,7 +18,6 @@ libwebcore_dylib_LIBADD = \
        ./kdelibs/khtml/libkhtml.o \
        ./kwq/libkwq.o \
        -ljpeg \
-       -L$(symrootsdir) -lJavaScriptCore \
        $(NULL)
 
 LIBWEBCORE_INSTALL_PATH = @executable_path/../Frameworks
@@ -50,7 +49,9 @@ embed:
 LDFLAGS = \
        -framework Cocoa \
        -framework CoreFoundation \
-       -F$(symrootsdir) -framework WebFoundation \
+       -F$(symrootsdir) \
+       -framework WebFoundation \
+       -framework JavaScriptCore \
         -dynamiclib \
        -twolevel_namespace \
        -prebind \
index 47981c7..09ecf1b 100644 (file)
@@ -1,3 +1,9 @@
+2002-03-30  Maciej Stachowiak  <mjs@apple.com>
+
+       * WebKit.pbproj/project.pbxproj: Link against
+       JavaScriptCore.framework instead of the defunct
+       libJavaScriptCore.dylib.
+
 2002-03-29  Richard Williamson  <rjw@apple.com>
 
         Fixes for cancelling.  Still need to think about a better
index 47981c7..09ecf1b 100644 (file)
@@ -1,3 +1,9 @@
+2002-03-30  Maciej Stachowiak  <mjs@apple.com>
+
+       * WebKit.pbproj/project.pbxproj: Link against
+       JavaScriptCore.framework instead of the defunct
+       libJavaScriptCore.dylib.
+
 2002-03-29  Richard Williamson  <rjw@apple.com>
 
         Fixes for cancelling.  Still need to think about a better
index 9b6577f..f84fb9b 100644 (file)
                                INSTALL_PATH = "";
                                LIBRARY_SEARCH_PATHS = "";
                                OTHER_CFLAGS = "-Werror -Wall -Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wcast-align -Wsign-compare -DHAVE_CONFIG_H -DQT_NO_DATASTREAM -D_KWQ_  -I.. -I../WebCore/src/kdelibs/khtml -I../WebCore/src/kwq -I../WebCore/src/kwq/kparts -I../WebCore/include -I../WebCore/include/private -F/System/Library/Frameworks/ApplicationServices.framework/Frameworks/ -F/System/Library/Frameworks/CoreServices.framework/Frameworks/ -F/System/Library/Frameworks/Carbon.framework/Frameworks/";
-                               OTHER_LDFLAGS = "-lwebcore  -lJavaScriptCore -framework WebFoundation -seg1addr 0x4000000";
+                               OTHER_LDFLAGS = "-lwebcore -framework JavaScriptCore -framework WebFoundation -seg1addr 0x4000000";
                                PRODUCT_NAME = WebKit;
                                SECTORDER_FLAGS = "";
                                WARNING_CFLAGS = "-Wmost -Wno-four-char-constants -Wno-unknown-pragmas";