--- parser3/tests/129.html 2003/04/11 10:57:24 1.1.2.1 +++ parser3/tests/129.html 2009/07/08 00:08:18 1.5 @@ -1,15 +1,116 @@ -$table[^table::create{group name -first a -first b -second c -third d -third e -}] - -$distinct_tables[^table.hash[group][ - $.distinct[tables] -]] - -^distinct_tables.foreach[key;table]{ - $key ^table.menu{$table.name}[,]
-} \ No newline at end of file +@main[] +$table[^table::create{group name +first a +first b +second c +third d +third e +}] + + +^do[unique key, no value columns, no options]{ + ^table.hash[name] +} + + +^do[non-unique key, no value columns, no options]{ + ^table.hash[group] +}[if key not unique ^$.distinct(1) must be specified] + + +^do[non-unique key, no value columns, options: ^$.distinct[tables] (backward)]{ + ^table.hash[group][ + $.distinct[tables] + ] +} + + +^do[non-unique key, no value columns, options: ^$.distinct[tables], ^$.type[hash] ]{ + ^table.hash[group][ + $.distinct[tables] + $.type[hash] + ] +}[^$.distinct[tables] and ^$.type[...] can't be specified together] + + +^do[non-unique key, no value columns, options: ^$.distinct(1) ^$.type[table]]{ + ^table.hash[group][ + $.distinct(1) + $.type[table] + ] +} + + +^do[non-unique key, no value columns, options: ^$.distinct(1) ^$.type[table]]{ + ^table.hash[group][ + $.type[table] + ] +}[non unique key without distinct option] + + +^do[unique key, no value columns, options: ^$.type[table]]{ + ^table.hash[name][ + $.type[table] + ] +} + + +^do[non-unique key, no value columns, options: ^$.distinct(1) ^$.type[hash]]{ + ^table.hash[group][ + $.distinct(1) + $.type[hash] + ] +} + + +^do[non-unique key, no value columns, options: ^$.distinct(1) (as above because ^$.type[hash] == default)]{ + ^table.hash[group][ + $.distinct(1) + ] +} + + +^do[non-unique key, no value columns, options: ^$.distinct(1) ^$.type[string]]{ + ^table.hash[group][ + $.distinct(1) + $.type[string] + ] +}[with ^$.type[string] only one field must be specified] + + +^do[non-unique key, one value column (name), options: ^$.distinct(1) ^$.type[string]]{ + ^table.hash[group;name][ + $.distinct(1) + $.type[string] + ] +} + + + + +@do[sTitle;jCode;sExceptionComment][h] +

$sTitle

+^try{ + $h[$jCode] + ^print[$h] +}{ + ^if($exception.type eq "parser.runtime"){ + $exception.handled(1) + ^if(def $sExceptionComment){ + failed, that's OK.
+ $sExceptionComment + }{ + something wrong + } + } +} + + + +@print[h][t;v] +$t[^h._keys[]] +^t.sort{$t.key} +^t.menu{ + $v[$h.[$t.key]] + $t.key ^if($v is "table"){^v.menu{$v.name}[,]}{^if($v is "string"){$v}{^if($v is "hash"){
^print[$v]
}}}
+}