misc parser changes
authorkhartlage <khartlage>
Fri, 5 Mar 2004 17:14:44 +0000 (17:14 +0000)
committerkhartlage <khartlage>
Fri, 5 Mar 2004 17:14:44 +0000 (17:14 +0000)
net.sourceforge.phpeclipse.tests/plugin.xml
net.sourceforge.phpeclipse.tests/src/net/sourceforge/phpeclipse/phpeditor/php/test/DualParseSyntaxErrorTest.java
net.sourceforge.phpeclipse.tests/src/net/sourceforge/phpeclipse/tests/parser/PHPManualTestCase.java
net.sourceforge.phpeclipse.tests/src/net/sourceforge/phpeclipse/tests/parser/PHPParserTestCase.java

index 7cbb00e..1a70b25 100644 (file)
@@ -1,4 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
 <plugin
    id="net.sourceforge.phpeclipse.tests"
    name="Core Tests"
@@ -9,6 +10,11 @@
       <library name="coretests.jar"/>
    </runtime>
    <requires>
+      <import plugin="org.eclipse.core.runtime.compatibility"/>
+      <import plugin="org.eclipse.ui.ide"/>
+      <import plugin="org.eclipse.ui.views"/>
+      <import plugin="org.eclipse.ui.workbench.texteditor"/>
+      <import plugin="org.eclipse.ui.editors"/>
       <import plugin="org.eclipse.ui"/>
       <import plugin="org.junit"/>
       <import plugin="net.sourceforge.phpeclipse"/>
index 088c75a..09830f3 100644 (file)
@@ -95,7 +95,16 @@ public class DualParseSyntaxErrorTest extends AbstractCompilerTest {
        }
        public void test01() {
                String s = 
-                       " ";    
+                       "final class test {\n" + 
+                       "\n" + 
+                       "private function f1() {\n" + 
+                       "\n" + 
+                       "}\n" + 
+                       "public function f2() {\n" + 
+                       "\n" +
+                       "  \n" + 
+                       "}  \n" + 
+                       "}";    
 
                String expectedSyntaxErrorDiagnosis =
                        "";
@@ -126,24 +135,14 @@ public class DualParseSyntaxErrorTest extends AbstractCompilerTest {
        
        public void test97() {
                String s = 
-                       "class class {                                                      \n"+
+                       "class momo {                                                       \n"+
                        "       function &fetchRow($result, $fetchmode = DB_FETCHMODE_DEFAULT, $rownum=null) \n"+
                        "       {                                                               \n"+
                        "       }                                                                               \n"+
                        "}                                                                                      \n";    
 
                String expectedSyntaxErrorDiagnosis =
-                       "----------\n" + 
-                       "1. ERROR in <test1> (at line 1)\n" + 
-                       "       class class {                                                       \n" + 
-                       "             ^^^^^\n" + 
-                       "Parse error \"Don\'t use keyword for class declaration [class].\"\n" + 
-                       "----------\n" + 
-                       "2. ERROR in <test1> (at line 1)\n" + 
-                       "       class class {                                                       \n" + 
-                       "                   ^\n" + 
-                       "Parse error \"Class name expected after keyword \'class\'.\"\n" + 
-                       "----------\n";
+                       "";
 
                checkParse(
                        s.toCharArray(),
index 6ab02e7..56d3697 100644 (file)
 package net.sourceforge.phpeclipse.tests.parser;
-/**********************************************************************
-Copyright (c) 2002 Klaus Hartlage - www.eclipseproject.de
-All rights reserved. This program and the accompanying materials
-are made available under the terms of the Common Public License v1.0
-which accompanies this distribution, and is available at
-http://www.eclipse.org/legal/cpl-v10.html
-**********************************************************************/
-
+/*******************************************************************************
+ * Copyright (c) 2002 Klaus Hartlage - www.eclipseproject.de All rights
+ * reserved. This program and the accompanying materials are made available
+ * under the terms of the Common Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/cpl-v10.html
+ ******************************************************************************/
+import junit.framework.TestCase;
 import net.sourceforge.phpdt.internal.compiler.parser.Parser;
 import net.sourceforge.phpdt.internal.compiler.parser.Scanner;
-
-import org.eclipse.core.runtime.CoreException;
-import junit.framework.TestCase;
-
 /**
- *  Tests the php parser
+ * Tests the php parser
  */
 public class PHPManualTestCase extends TestCase {
-
   Parser parser;
-
   public PHPManualTestCase(String name) {
     super(name);
   }
-
   /**
-   *  Test the PHP Parser with different PHP snippets
+   * Test the PHP Parser with different PHP snippets
    */
   public void testPHPParser() {
-    checkPHP("function foo()" +\r       "{" +\r          "    echo \"In foo()<br>\\n\";" +\r      "}" +\r          "" +\r           "function bar($arg = '')" +\r            "{" +\r          "    echo \"In bar(); argument was '$arg'.<br>\\n\";" +\r        "}" +\r          "" +\r           "// This is a wrapper function around echo" +\r          "function echoit($string)" +\r           "{" +\r          "    echo $string;" +\r          "}" +\r          "" +\r           "$func = 'foo';" +\r     "$func();        // This calls foo()" +\r        "" +\r           "$func = 'bar';" +\r     "$func('test');  // This calls bar()" +\r        "" +\r           "$func = 'echoit';" +\r          "$func('test');  // This calls echoit()" +\r     "");
-    checkPHP("class Foo" +\r            "{" +\r          "    function Vari()" +\r        "    {" +\r      "        $name = 'Bar';" +\r     "        $this->$name(); // This calls the Bar() method\n" +\r           "    }" +\r      "    " +\r       "    function Bar()" +\r         "    {" +\r      "        echo \"This is Bar\";" +\r      "    }" +\r      "}" +\r          "" +\r           "$foo = new Foo();" +\r          "$funcname = \"Var\";" +\r       "$foo->$varname();   // This calls $foo->Var()\n" +\r            "");
-    checkPHP("function square ($num)" +\r       "{" +\r          "    return $num * $num;" +\r            "}" +\r          "echo square (4);   // outputs '16'." +\r        "");
-    checkPHP("function small_numbers()" +\r     "{" +\r          "    return array (0, 1, 2);" +\r        "}" +\r          "list ($zero, $one, $two) = small_numbers();" +\r        "");
-    checkPHP("function &returns_reference()" +\r        "{" +\r          "    return $someref;" +\r       "}" +\r          "" +\r           "$newref =& returns_reference();" +\r            " " +\r          "");
-    checkPHP("function add_some_extra(&$string)" +\r            "{" +\r          "    $string .= 'and something extra.';" +\r     "}" +\r          "$str = 'This is a string, ';" +\r       "add_some_extra($str);" +\r      "echo $str;    ");
-    checkPHP("function makecoffee ($type = \"cappuccino\")\n" +\r       "{\n" +\r        "    return \"Making a cup of $type.\\n\";\n" +\r        "}" +\r          "echo makecoffee ();" +\r        "echo makecoffee (\"espresso\");" +\r            "");
-    checkPHP("$makefoo = true;" +\r     "" +\r           "/* We can't call foo() from here " +\r          "   since it doesn't exist yet," +\r     "   but we can call bar() */" +\r        "" +\r           "bar();" +\r     "" +\r           "if ($makefoo) {" +\r            "  function foo ()" +\r          "  {" +\r        "    echo \"I don't exist until program execution reaches me.\\n\";" +\r         "  }" +\r        "}" +\r          "" +\r           "/* Now we can safely call foo()" +\r            "   since $makefoo evaluated to true */" +\r     "" +\r           "if ($makefoo) foo();" +\r       "" +\r           "function bar() " +\r            "{" +\r          "  echo \"I exist immediately upon program start.\\n\";" +\r     "}" +\r          "" +\r           "");
-    checkPHP(
-    "function foo() " +\r    "{" +\r    "  function bar() " +\r    "  {" +\r    "    echo \"I don't exist until foo() is called.\\n\";" +\r    "  }" +\r    "}" +\r    "" +\r    "/* We can't call bar() yet" +\r    "   since it doesn't exist. */" +\r    "" +\r    "foo();\n" +\r    "" +\r    "/* Now we can call bar()," +\r    "   foo()'s processesing has" +\r    "   made it accessable. */" +\r    "" +\r    "bar();" +\r    "");
+    checkPHP("function foo()" + "{" + "    echo \"In foo()<br>\\n\";" + "}"
+        + "" + "function bar($arg = '')" + "{"
+        + "    echo \"In bar(); argument was '$arg'.<br>\\n\";" + "}" + ""
+        + "// This is a wrapper function around echo"
+        + "function echoit($string)" + "{" + "    echo $string;" + "}" + ""
+        + "$func = 'foo';" + "$func();        // This calls foo()" + ""
+        + "$func = 'bar';" + "$func('test');  // This calls bar()" + ""
+        + "$func = 'echoit';" + "$func('test');  // This calls echoit()" + "");
+    checkPHP("class Foo" + "{" + "    function Vari()" + "    {"
+        + "        $name = 'Bar';"
+        + "        $this->$name(); // This calls the Bar() method\n" + "    }"
+        + "    " + "    function Bar()" + "    {"
+        + "        echo \"This is Bar\";" + "    }" + "}" + ""
+        + "$foo = new Foo();" + "$funcname = \"Var\";"
+        + "$foo->$varname();   // This calls $foo->Var()\n" + "");
+    checkPHP("function square ($num)" + "{" + "    return $num * $num;" + "}"
+        + "echo square (4);   // outputs '16'." + "");
+    checkPHP("function small_numbers()" + "{" + "    return array (0, 1, 2);"
+        + "}" + "list ($zero, $one, $two) = small_numbers();" + "");
+    checkPHP("function &returns_reference()" + "{" + "    return $someref;"
+        + "}" + "" + "$newref =& returns_reference();" + " " + "");
+    checkPHP("function add_some_extra(&$string)" + "{"
+        + "    $string .= 'and something extra.';" + "}"
+        + "$str = 'This is a string, ';" + "add_some_extra($str);"
+        + "echo $str;    ");
+    checkPHP("function makecoffee ($type = \"cappuccino\")\n" + "{\n"
+        + "    return \"Making a cup of $type.\\n\";\n" + "}"
+        + "echo makecoffee ();" + "echo makecoffee (\"espresso\");" + "");
+    checkPHP("$makefoo = true;" + "" + "/* We can't call foo() from here "
+        + "   since it doesn't exist yet," + "   but we can call bar() */" + ""
+        + "bar();" + "" + "if ($makefoo) {" + "  function foo ()" + "  {"
+        + "    echo \"I don't exist until program execution reaches me.\\n\";"
+        + "  }" + "}" + "" + "/* Now we can safely call foo()"
+        + "   since $makefoo evaluated to true */" + ""
+        + "if ($makefoo) foo();" + "" + "function bar() " + "{"
+        + "  echo \"I exist immediately upon program start.\\n\";" + "}" + ""
+        + "");
+    checkPHP("function foo() " + "{" + "  function bar() " + "  {"
+        + "    echo \"I don't exist until foo() is called.\\n\";" + "  }" + "}"
+        + "" + "/* We can't call bar() yet" + "   since it doesn't exist. */"
+        + "" + "foo();\n" + "" + "/* Now we can call bar(),"
+        + "   foo()'s processesing has" + "   made it accessable. */" + ""
+        + "bar();" + "");
     // Bugs item #690938
-    checkPHP(
-      "    echo \"This is a test\"; // This is a one-line c++ style comment\n"
+    checkPHP("    echo \"This is a test\"; // This is a one-line c++ style comment\n"
         + "    /* This is a multi line comment\n"
         + "       yet another line of comment */\n"
         + "    echo \"This is yet another test\";\n"
         + "    echo \"One Final Test\"; # This is shell-style style comment \n");
-    checkPHP(
-      "$bool = TRUE;   // a boolean\n"
-        + "$str  = \"foo\";  // a string\n"
-        + "$int  = 12;     // an integer\n"
-        + "\n"
-        + "echo gettype($bool); // prints out \"boolean\"\n"
-        + "echo gettype($str);  // prints out \"string\"\n"
-        + ""
+    checkPHP("$bool = TRUE;   // a boolean\n"
+        + "$str  = \"foo\";  // a string\n" + "$int  = 12;     // an integer\n"
+        + "\n" + "echo gettype($bool); // prints out \"boolean\"\n"
+        + "echo gettype($str);  // prints out \"string\"\n" + ""
         + "// If this is an integer, increment it by four\n"
-        + "if (is_int($int)) {\n"
-        + "    $int += 4;\n"
-        + "}\n"
-        + "\n"
+        + "if (is_int($int)) {\n" + "    $int += 4;\n" + "}\n" + "\n"
         + "// If $bool is a string, print it out\n"
-        + "// (does not print out anything)\n"
-        + "if (is_string($bool)) {\n"
-        + "    echo \"String: $bool\";\n"
-        + "}\n");
-
+        + "// (does not print out anything)\n" + "if (is_string($bool)) {\n"
+        + "    echo \"String: $bool\";\n" + "}\n");
     checkPHP("$foo = True; // assign the value TRUE to $foo");
-
-    checkPHP(
-      "// == is an operator which test\n"
+    checkPHP("// == is an operator which test\n"
         + "// equality and returns a boolean\n"
         + "if ($action == \"show_version\") {\n"
-        + "    echo \"The version is 1.23\";\n"
-        + "}\n"
-        + "\n"
-        + "// this is not necessary...\n"
-        + "if ($show_separators == TRUE) {\n"
-        + "    echo \"<hr>\\n\";\n"
-        + "}\n"
-        + "\n"
-        + "// ...because you can simply type\n"
-        + "if ($show_separators) {\n"
-        + "    echo \"<hr>\\n\";\n"
-        + "}");
-
-    checkPHP(
-      "echo gettype((bool) \"\");        // bool(false)\n"
+        + "    echo \"The version is 1.23\";\n" + "}\n" + "\n"
+        + "// this is not necessary...\n" + "if ($show_separators == TRUE) {\n"
+        + "    echo \"<hr>\\n\";\n" + "}\n" + "\n"
+        + "// ...because you can simply type\n" + "if ($show_separators) {\n"
+        + "    echo \"<hr>\\n\";\n" + "}");
+    checkPHP("echo gettype((bool) \"\");        // bool(false)\n"
         + "echo gettype((bool) 1);         // bool(true)\n"
         + "echo gettype((bool) -2);        // bool(true)\n"
         + "echo gettype((bool) \"foo\");     // bool(true)\n"
         + "echo gettype((bool) 2.3e5);     // bool(true)\n"
         + "echo gettype((bool) array(12)); // bool(true)\n"
         + "echo gettype((bool) array());   // bool(false)\n");
-
-    checkPHP(
-      "$a = 1234; # decimal number\n"
+    checkPHP("$a = 1234; # decimal number\n"
         + "$a = -123; # a negative number\n"
         + "$a = 0123; # octal number (equivalent to 83 decimal)\n"
         + "$a = 0x1A; # hexadecimal number (equivalent to 26 decimal)\n");
-
-    checkPHP(
-      "$large_number =  2147483647;\n"
-        + "var_dump($large_number);\n"
-        + "// output: int(2147483647)\n"
-        + "\n"
-        + "$large_number =  2147483648;\n"
-        + "var_dump($large_number);\n"
-        + "// output: float(2147483648)\n"
-        + ""
+    checkPHP("$large_number =  2147483647;\n" + "var_dump($large_number);\n"
+        + "// output: int(2147483647)\n" + "\n"
+        + "$large_number =  2147483648;\n" + "var_dump($large_number);\n"
+        + "// output: float(2147483648)\n" + ""
         + "// this goes also for hexadecimal specified integers:\n"
-        + "var_dump( 0x80000000 );\n"
-        + "// output: float(2147483648)\n"
-        + "\n"
-        + "$million = 1000000;\n"
-        + "$large_number =  50000 * $million;\n"
-        + "var_dump($large_number);\n"
-        + "// output: float(50000000000)\n");
-
-    checkPHP(
-      "var_dump(25/7);         // float(3.5714285714286)\n"
+        + "var_dump( 0x80000000 );\n" + "// output: float(2147483648)\n" + "\n"
+        + "$million = 1000000;\n" + "$large_number =  50000 * $million;\n"
+        + "var_dump($large_number);\n" + "// output: float(50000000000)\n");
+    checkPHP("var_dump(25/7);         // float(3.5714285714286)\n"
         + "var_dump((int) (25/7)); // int(3)\n"
         + "var_dump(round(25/7));  // float(4)");
-
     checkPHP("echo (int) ( (0.1+0.7) * 10 ); // echoes 7!");
-
     checkPHP("$a = 1.234; " + "$b = 1.2e3; " + "$c = 7E-10;");
-
-    checkPHP(
-      "echo 'this is a simple string';\n"
-        + "\n"
+    checkPHP("echo 'this is a simple string';\n" + "\n"
         + "echo 'You can also have embedded newlines in \n"
-        + "strings this way as it is\n"
-        + "okay to do';\n"
-        + "\n"
+        + "strings this way as it is\n" + "okay to do';\n" + "\n"
         + "// Outputs: \"I'll be back\"\n"
-        + "echo 'Arnold once said: \"I\\'ll be back\"';\n"
-        + "\n"
+        + "echo 'Arnold once said: \"I\\'ll be back\"';\n" + "\n"
         + "// Outputs: You deleted C:\\*.*?\n"
-        + "echo 'You deleted C:\\\\*.*?';\n"
-        + "\n"
+        + "echo 'You deleted C:\\\\*.*?';\n" + "\n"
         + "// Outputs: You deleted C:\\*.*?\n"
-        + "echo 'You deleted C:\\\\*.*?';\n"
-        + "\n"
+        + "echo 'You deleted C:\\\\*.*?';\n" + "\n"
         + "// Outputs: This will not expand: \\n a newline\n"
-        + "echo 'This will not expand: \\n a newline';\n"
-        + "\n"
+        + "echo 'This will not expand: \\n a newline';\n" + "\n"
         + "// Outputs: Variables do not $expand $either\n"
         + "echo 'Variables do not $expand $either';\n");
-
-    checkPHP(
-      "$str = <<<EOD\n"
-        + "Example of string\n"
-        + "spanning multiple lines\n"
-        + "using heredoc syntax.\n"
-        + "EOD;\n"
-        + "\n"
-        + "/* More complex example, with variables. */\n"
-        + "class foo\n"
-        + "{\n"
-        + "    var $foo;\n"
-        + "    var $bar;\n"
-        + "\n"
-        + "    function foo()\n"
-        + "    {\n"
-        + "        $this->foo = 'Foo';\n"
-        + "        $this->bar = array('Bar1', 'Bar2', 'Bar3');\n"
-        + "    }\n"
-        + "}\n"
-        + "\n"
-        + "$foo = new foo();\n"
-        + "$name = 'MyName';\n"
-        + "\n"
+    checkPHP("$str = <<<EOD\n" + "Example of string\n"
+        + "spanning multiple lines\n" + "using heredoc syntax.\n" + "EOD;\n"
+        + "\n" + "/* More complex example, with variables. */\n"
+        + "class foo\n" + "{\n" + "    var $foo;\n" + "    var $bar;\n" + "\n"
+        + "    function foo()\n" + "    {\n" + "        $this->foo = 'Foo';\n"
+        + "        $this->bar = array('Bar1', 'Bar2', 'Bar3');\n" + "    }\n"
+        + "}\n" + "\n" + "$foo = new foo();\n" + "$name = 'MyName';\n" + "\n"
         + "echo <<<EOT\n"
         + "My name is \"$name\". I am printing some $foo->foo.\n"
         + "Now, I am printing some {$foo->bar[1]}.\n"
-        + "This should print a capital 'A': \\x41\n"
-        + "EOT;\n");
-
+        + "This should print a capital 'A': \\x41\n" + "EOT;\n");
     checkPHP("echo \"This works: \" . $arr['foo'][3];");
-
     checkPHP("echo \"\\$foo==$foo; type is \" . gettype ($foo) . \"<br />\\n\";");
-
-    checkPHP(
-      "$arr = array(\"foo\" => \"bar\", 12 => true);\n"
-        + "\n"
-        + "echo $arr[\"foo\"]; // bar\n"
-        + "echo $arr[12];    // 1\n");
-
-    checkPHP(
-      "// This array is the same as ...\n"
-        + "array(5 => 43, 32, 56, \"b\" => 12);\n"
-        + "\n"
+    checkPHP("$arr = array(\"foo\" => \"bar\", 12 => true);\n" + "\n"
+        + "echo $arr[\"foo\"]; // bar\n" + "echo $arr[12];    // 1\n");
+    checkPHP("// This array is the same as ...\n"
+        + "array(5 => 43, 32, 56, \"b\" => 12);\n" + "\n"
         + "// ...this array\n"
         + "array(5 => 43, 6 => 32, 7 => 56, \"b\" => 12);\n");
-
-    checkPHP(
-      "$arr = array(5 => 1, 12 => 2);\n"
-        + "\n"
+    checkPHP("$arr = array(5 => 1, 12 => 2);\n" + "\n"
         + "$arr[] = 56;    // This is the same as $arr[13] = 56;\n"
-        + "                // at this point of the script\n"
-        + "\n"
+        + "                // at this point of the script\n" + "\n"
         + "$arr[\"x\"] = 42; // This adds a new element to\n"
         + "                // the array with key \"x\"\n"
         + "                \n"
-        + "unset($arr[5]); // This removes the element from the array\n"
-        + "\n"
+        + "unset($arr[5]); // This removes the element from the array\n" + "\n"
         + "unset($arr);    // This deletes the whole array\n");
-
     checkPHP("$foo[bar] = 'enemy';\n" + "echo $foo[bar];");
-
-    checkPHP(
-      "$a = array( 'color' => 'red',\n"
+    checkPHP("$a = array( 'color' => 'red',\n"
         + "            'taste' => 'sweet',\n"
         + "            'shape' => 'round',\n"
         + "            'name'  => 'apple',\n"
@@ -228,19 +171,11 @@ public class PHPManualTestCase extends TestCase {
         + "$b[] = 'c';\n"
         + "// will result in the array array(0 => 'a' , 1 => 'b' , 2 => 'c'),\n"
         + "// or simply array('a', 'b', 'c')\n");
-
-    checkPHP(
-      "foreach ($colors as $key => $color) {\n"
-        + "    // won't work:\n"
-        + "    //$color = strtoupper($color);\n"
-        + "    \n"
-        + "    // works:\n"
-        + "    $colors[$key] = strtoupper($color);\n"
-        + "}\n"
+    checkPHP("foreach ($colors as $key => $color) {\n" + "    // won't work:\n"
+        + "    //$color = strtoupper($color);\n" + "    \n" + "    // works:\n"
+        + "    $colors[$key] = strtoupper($color);\n" + "}\n"
         + "print_r($colors);\n");
-
-    checkPHP(
-      "$fruits = array ( \"fruits\"  => array ( \"a\" => \"orange\",\n"
+    checkPHP("$fruits = array ( \"fruits\"  => array ( \"a\" => \"orange\",\n"
         + "                                       \"b\" => \"banana\",\n"
         + "                                       \"c\" => \"apple\"\n"
         + "                                     ),\n"
@@ -254,79 +189,47 @@ public class PHPManualTestCase extends TestCase {
         + "                  \"holes\"   => array (      \"first\",\n"
         + "                                       5 => \"second\",\n"
         + "                                            \"third\"\n"
-        + "                                     )\n"
-        + "                );\n"
-        + "\n"
-        + "// Some examples to address values in the array above \n"
+        + "                                     )\n" + "                );\n"
+        + "\n" + "// Some examples to address values in the array above \n"
         + "echo $fruits[\"holes\"][5];    // prints \"second\"\n"
         + "echo $fruits[\"fruits\"][\"a\"]; // prints \"orange\"\n"
-        + "unset($fruits[\"holes\"][0]);  // remove \"first\"\n"
-        + "\n"
+        + "unset($fruits[\"holes\"][0]);  // remove \"first\"\n" + "\n"
         + "// Create a new multi-dimensional array\n"
         + "$juices[\"apple\"][\"green\"] = \"good\"; \n");
-
     checkPHP("$arr3 = &$arr1;");
-
-    checkPHP(
-      "class foo\n"
-        + "{\n"
-        + "    function do_foo()\n"
-        + "    {\n"
-        + "        echo \"Doing foo.\"; \n"
-        + "    }\n"
-        + "}\n"
-        + "\n"
-        + "$bar = new foo;\n"
-        + "$bar->do_foo();\n");
-
-    checkPHP(
-      "$obj = (object) 'ciao';\n" + 
-      "echo $obj->scalar;  // outputs 'ciao'");
-
+    checkPHP("class foo\n" + "{\n" + "    function do_foo()\n" + "    {\n"
+        + "        echo \"Doing foo.\"; \n" + "    }\n" + "}\n" + "\n"
+        + "$bar = new foo;\n" + "$bar->do_foo();\n");
+    checkPHP("$obj = (object) 'ciao';\n"
+        + "echo $obj->scalar;  // outputs 'ciao'");
     checkPHP("$var = NULL;");
-
-    checkPHP("$var = \"Bob\";\n" +
-       "$Var = \"Joe\";\n" +
-       "echo \"$var, $Var\";      // outputs \"Bob, Joe\"\n" +
-       "\n" +
-   //  "$4site = 'not yet';     // invalid; starts with a number\n" +
-       "$_4site = 'not yet';    // valid; starts with an underscore\n" +
-       "$täyte = 'mansikka';  \n");
-
+    checkPHP("$var = \"Bob\";\n" + "$Var = \"Joe\";\n"
+        + "echo \"$var, $Var\";      // outputs \"Bob, Joe\"\n" + "\n" + 
+        //     "$4site = 'not yet'; // invalid; starts with a number\n" +
+        "$_4site = 'not yet';    // valid; starts with an underscore\n"
+        + "$täyte = 'mansikka';  \n");
     checkPHP("");
-
     checkPHP("");
-
     checkPHP("");
   }
-
   private void checkPHP(String strEval) {
-    try {
-      if (Scanner.DEBUG) {
-        System.out.println("\n------------------------------------");
-        System.out.println(strEval);
-      }
-      parser.phpParserTester(strEval, 1);
-    } catch (CoreException e) {
+    if (Scanner.DEBUG) {
+      System.out.println("\n------------------------------------");
+      System.out.println(strEval);
     }
+    parser.phpParserTester(strEval, 1);
   }
-
   private void checkHTML(String strEval) {
-    try {
-      if (Scanner.DEBUG) {
-        System.out.println("\n------------------------------------");
-        System.out.println(strEval);
-      }
-      parser.parse(strEval);
-    } catch (CoreException e) {
+    if (Scanner.DEBUG) {
+      System.out.println("\n------------------------------------");
+      System.out.println(strEval);
     }
+    parser.parse(strEval);
   }
-
   /**
-   *  The JUnit setup method
+   * The JUnit setup method
    */
   protected void setUp() {
     parser = new Parser(null);
   }
-
 }
index 1122579..f0c034a 100644 (file)
@@ -1,47 +1,34 @@
 package net.sourceforge.phpeclipse.tests.parser;
-/**********************************************************************
-Copyright (c) 2002 Klaus Hartlage - www.eclipseproject.de
-All rights reserved. This program and the accompanying materials
-are made available under the terms of the Common Public License v1.0
-which accompanies this distribution, and is available at
-http://www.eclipse.org/legal/cpl-v10.html
-**********************************************************************/
-
-import junit.framework.*;
-import net.sourceforge.phpdt.internal.compiler.parser.*;
-
-import org.eclipse.core.runtime.*;
-
+/*******************************************************************************
+ * Copyright (c) 2002 Klaus Hartlage - www.eclipseproject.de All rights
+ * reserved. This program and the accompanying materials are made available
+ * under the terms of the Common Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/cpl-v10.html
+ ******************************************************************************/
+import junit.framework.TestCase;
+import net.sourceforge.phpdt.internal.compiler.parser.Parser;
+import net.sourceforge.phpdt.internal.compiler.parser.Scanner;
 /**
- *  Tests the php parser
+ * Tests the php parser
  */
 public class PHPParserTestCase extends TestCase {
-
   Parser parser;
-
   public PHPParserTestCase(String name) {
     super(name);
   }
-
   /**
-   *  Test the PHP Parser with different PHP snippets
+   * Test the PHP Parser with different PHP snippets
    */
   public void testPHPParser() {
-        //  checkPHP("if(!$result = mysql_query($sql)) return(array());");
+    //  checkPHP("if(!$result = mysql_query($sql)) return(array());");
     checkPHP("class test { function &fetchRow($result, $fetchmode = DB_FETCHMODE_DEFAULT, $rownum=null) \n{ \n } \n }");
-
     // Bugs item #690938
-    checkPHP(
-      "$ebus_sql['sel_url_list'] = <<<EOS\n"
-        + "select rtrim(URL_NAME) as url_name\n"
-        + "    , rtrim(URL) as url\n"
-        + "    , rtrim(URL_DESC) as url_desc\n"
-        + "from appl_url\n"
+    checkPHP("$ebus_sql['sel_url_list'] = <<<EOS\n"
+        + "select rtrim(URL_NAME) as url_name\n" + "   , rtrim(URL) as url\n"
+        + "    , rtrim(URL_DESC) as url_desc\n" + "from appl_url\n"
         + "where appl_instnc_sk = <<INSTNC>>\n"
-        + "and appl_sect_deftn_sk = <<SECT>>\n"
-        + "order by url_ord\n"
+        + "and appl_sect_deftn_sk = <<SECT>>\n" + "order by url_ord\n"
         + "EOS;\n");
-
     checkPHP("foreach ($HTTP_GET_VARS as $secvalue) { }");
     checkPHP("\"\\\"\";");
     checkPHP("\"\\[addsig]\"");
@@ -79,21 +66,12 @@ public class PHPParserTestCase extends TestCase {
     checkPHP("class Cmd extends PEAR { var $arrSetting     = array(), $i=10; }");
     checkPHP("if (isset($test)) { } elseif (isset($lang)) { }");
     checkPHP("require_once(\"mainfile.php\");  ");
-    checkPHP(
-      "if (eregi(\"footer.php\",$PHP_SELF)) {\n"
-        + "Header(\"Location: index.php\");\n"
-        + "die();\n"
-        + "}\n");
-    checkPHP(
-      "while (eregi(\"footer.php\",$PHP_SELF)) {\n"
-        + "Header(\"Location: index.php\");\n"
-        + "die();\n"
-        + "}\n");
-    checkPHP(
-      "while (eregi(\"footer.php\",$PHP_SELF)) :\n"
-        + "Header(\"Location: index.php\");\n"
-        + "die();\n"
-        + "endwhile;\n");
+    checkPHP("if (eregi(\"footer.php\",$PHP_SELF)) {\n"
+        + "Header(\"Location: index.php\");\n" + "die();\n" + "}\n");
+    checkPHP("while (eregi(\"footer.php\",$PHP_SELF)) {\n"
+        + "Header(\"Location: index.php\");\n" + "die();\n" + "}\n");
+    checkPHP("while (eregi(\"footer.php\",$PHP_SELF)) :\n"
+        + "Header(\"Location: index.php\");\n" + "die();\n" + "endwhile;\n");
     checkPHP("$tipath = \"images/topics/\";");
     checkPHP("$reasons = array(\"1\", \"2\",\"test\");");
     checkPHP("if ($home == 1) { message_box(); blocks(Center);}");
@@ -107,16 +85,14 @@ public class PHPParserTestCase extends TestCase {
     checkPHP("if (!empty($pass) AND $pass==$passwd) { }");
     checkPHP("$AllowableHTML = array(\"b\"=>1,\n \"i\"=>1);");
     checkPHP("if ($term{0}!=$firstChar) {}");
-    checkPHP(
-      "echo \"<center><b>\"._NOADMINYET.\"</b></center><br><br>\"\n"
+    checkPHP("echo \"<center><b>\"._NOADMINYET.\"</b></center><br><br>\"\n"
         + ".\"<form action=\\\"admin.php\\\" method=\\\"post\\\">\"\n"
         + ".\"<tr><td><b>\"._NICKNAME.\":</b></td><td><input type=\\\"text\\\" name=\\\"name\\\" size=\\\"30\\\" maxlength=\\\"25\\\"></td></tr>\"\n"
         + ";");
     checkPHP("/* \n overLib is from Eric Bosrup (http://www.bosrup.com/web/overlib/) \n */");
     checkPHP("if ($arrAtchCookie[1]==0 && $IdAtchPostId!=null){  } ");
     checkPHP("$arrAtchCookie[1] -= filesize(realpath($AtchTempDir).\"/\".$xattachlist)/ 1024; ");
-    checkPHP(
-      "if (!isset($message)){ \n"
+    checkPHP("if (!isset($message)){ \n"
         + "$message = $myrow[post_text];\n"
         + "$message = eregi_replace(\"\\[addsig]\", \"\\n-----------------\\n\" .    $myrow[user_sig], $message); \n"
         + "$message = str_replace(\"<BR>\", \"\\n\", $message); \n"
@@ -124,7 +100,6 @@ public class PHPParserTestCase extends TestCase {
     checkPHP("do {$array[] = array(\"$myrow[uid]\" => \"$myrow[uname]\"); } while($myrow = mysql_fetch_array($result));");
     checkPHP("$ol = new Overlib();");
     checkPHP("$risultato = mysql_query($sql) or\n    die(mysql_error());");
-
     checkHTML("\n\n\n\n  <?php print \"Hello world\" ?>");
     checkHTML("<?php phpinfo(); ?>");
     checkHTML("<?php phpinfo()?>");
@@ -132,34 +107,24 @@ public class PHPParserTestCase extends TestCase {
     checkHTML(" <?php //this is a line comment ?>");
     checkHTML("<?php echo $module_name ?>");
   }
-
   private void checkPHP(String strEval) {
-    try {
-      if (Scanner.DEBUG) {
-        System.out.println("\n------------------------------------");
-        System.out.println(strEval);
-      }
-      parser.phpParserTester(strEval, 1);
-    } catch (CoreException e) {
+    if (Scanner.DEBUG) {
+      System.out.println("\n------------------------------------");
+      System.out.println(strEval);
     }
+    parser.phpParserTester(strEval, 1);
   }
-
   private void checkHTML(String strEval) {
-    try {
-      if (Scanner.DEBUG) {
-        System.out.println("\n------------------------------------");
-        System.out.println(strEval);
-      }
-      parser.parse(strEval);
-    } catch (CoreException e) {
+    if (Scanner.DEBUG) {
+      System.out.println("\n------------------------------------");
+      System.out.println(strEval);
     }
+    parser.parse(strEval);
   }
-
   /**
-   *  The JUnit setup method
+   * The JUnit setup method
    */
   protected void setUp() {
     parser = new Parser(null);
   }
-
 }