File:  [parser3project] / parser3 / tests / 129.html
Revision 1.5: download - view: text, annotated - select for diffs - revision graph
Wed Jul 8 00:08:18 2009 UTC (17 years ago) by misha
Branches: MAIN
CVS tags: release_3_5_1, release_3_5_0, release_3_4_6, release_3_4_5, release_3_4_4, release_3_4_3, release_3_4_2, release_3_4_1, release_3_4_0, HEAD
- small changes in printing hash

@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]
<h3>$sTitle</h3>
^try{
	$h[$jCode]
	^print[$h]
}{
	^if($exception.type eq "parser.runtime"){
		$exception.handled(1)
		^if(def $sExceptionComment){
			failed, that's OK.<br />
			$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"){<blockquote>^print[$v]</blockquote>}}}<br />
}

E-mail: