--- parser3/tests/129.html 2003/04/11 10:57:24 1.1.2.1 +++ parser3/tests/129.html 2008/05/29 10:02:35 1.4 @@ -1,3 +1,4 @@ +@main[] $table[^table::create{group name first a first b @@ -5,11 +6,108 @@ 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 + + +^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[hData][sKey;value] +^hData.foreach[sKey;value]{ + $sKey ^if($value is "table"){^value.menu{$value.name}[,]}{^if($value is "string"){$value}{^if($value is "hash"){
^print[$value]
}}}
+}