
///////////////////// Produire Server Pages Template /////////////////////
/// Version 1.2 (Since2011/5/9)
/// for プロデル Version 1.9.1218
ページとは
	+テンプレートファイル
	+テンプレートフォルダ=「テンプレート/」
	+ページ変数:辞書
	+HTML
	+メインフォーム

	はじめの手順
		「タイトル」としてプログラムのタイトルを設定する
		「見出し」としてプログラムのタイトルを設定する
		「スクリプト」としてプログラムのファイル名を設定する
		HTMLというHTMLフォームを作る
	終わり

	//指定したテンプレートファイルに書かれた内容を評価して、その結果を応答して返します
	//テンプレートファイルの内容は、プロデルの文字列定数を指定するときの表現を
	//書くことができ、テンプレートファイルで[　]で囲まれた部分を式として評価します。
	【自分】を、表示する手順
		評価して【内容】とする
		内容を応答として送る
	終わり

	//指定したテンプレートファイルに書かれた内容を評価して、その結果を保存します
	//テンプレートファイルの内容は、プロデルの文字列定数を指定するときの表現を
	//書くことができ、テンプレートファイルで[　]で囲まれた部分を式として評価します。
	【自分】を【ファイル名】へ、保存する手順
		評価して【内容】とする
		内容をファイル名へ保存する
	終わり

	//指定したテンプレートファイルに書かれた内容を評価して、その結果を返します
	//テンプレートファイルの内容は、プロデルの文字列定数を指定するときの表現を
	//書くことができ、テンプレートファイルで[　]で囲まれた部分を式として評価します。
	【自分】を、評価する手順
		【ソース】は「」
		ページ変数の見出しのすべてのみだしについて
			ソースは、ソース＆「[みだし]は、"ページ変数"([「][みだし][」])[改行]」
		そして
		テンプレートフォルダ&テンプレートファイルから読み込みして【内容】とする
		ソースは、ソース＆「内容は、[「][内容][」][改行]」
		ソースをプロデる
		内容を返す
	終わり

	//【テンプレートファイル名】にあるテンプレートの内容を返します
	//テンプレートファイルの内容は、プロデルの文字列定数を指定するときの表現を
	//使うことができ、[　]で囲まれた式を評価します。
	//この手順は、テンプレートファイル内で使用します。
	//例文: [「header.pspt」を展開したもの]
	【テンプレートファイル名:文字列】を、展開する手順
		【作業前】は、プログラムの作業フォルダ
		プログラムの作業フォルダは（（プログラムのフォルダ）&テンプレートフォルダ&テンプレートファイル）のフォルダだけ
		テンプレートファイル名から読み込みして、【内容】とする
		「内容は、[「][内容][」]」をプロデる
		プログラムの作業フォルダは、作業前
		内容を返す
	終わり

	//指定した【展開配列】のすべての要素に対して
	//【テンプレート】(ブロックパラメータ)に指定した内容を適用した結果を返します。
	//テーブルなどの繰り返し要素を表現するときに使います。
	//例文: [商品一覧のすべての「商品」を、『<tr><td>[商品]</td></tr>』へ展開したもの]
	【展開配列:配列】のすべての、【展開変数名:文字列】を、【テンプレート】へ、展開する手順
		展開配列が無なら「」を返す
		【内容】は「」
		展開配列のすべての要素について
			【ソース】は「」
			ソースは、ソース&「[展開変数名]は、要素[改行]」
			ソースは、ソース&「内容は、内容＆[「][テンプレートの内容][」]」
			ソースをプロデる
		そして
		内容を返す
	終わり

	【値:真偽値】で【テンプレート】を、展開する手順
		値でなければ「」を返す
		【内容】は「」
		【ソース】は「内容は、[「][テンプレートの内容][」]」
		ソースをプロデる
		内容を返す
	終わり

	【値】があれば【テンプレート】を、表示する手順
		値が無なら返す
		【内容】は「」
		【ソース】は「内容は、[「][テンプレートの内容][」]」
		ソースをプロデる
		内容を返す
	終わり
	
	【値】がなければ、【テンプレート】を、表示する手順
		値が無でなければ、返す
		【内容】は「」
		【ソース】は「内容は、[「][テンプレートの内容][」]」
		ソースをプロデる
		内容を返す
	終わり
	
	【値】を、無害化する手順
		値をHTML形式へ変換して返す
	終わり

	【自分】の、【変数名:文字列】として、【値】を、設定する手順
		ページ変数（変数名）は、値
	終わり
	
終わり

HTMLフォームとは
	【属性表】で、【名前】という、入力欄を、書く手順
		属性表から属性タグを生成して【属性タグ】とする
		「<input type="text" name="[名前]"[属性タグ]>」を返す
	終わり

	【属性表】で、【名前】という、パスワード欄を、書く手順
		属性表から属性タグを生成して【属性タグ】とする
		「<input type="password" name="[名前]"[属性タグ]>」を返す
	終わり
	【値】を、【名前】という、隠し要素として、書く手順
		「<input type="hidden" name="[名前]" value="[値]">」を返す
	終わり

	【名前】という、送信ボタンを、【内容】にして、書く手順
		「<input type="submit" name="[名前]" value="[内容]">」を返す
	終わり
	【内容】という、送信ボタンを、書く手順
		「<input type="submit" value="[内容]">」を返す
	終わり
	送信ボタンを、【内容】にして、【属性表】で、書く手順
		属性表から属性タグを生成して【属性タグ】とする
		「<input type="submit" value="[内容]"[属性タグ]>」を返す
	終わり
	【名前】という、送信ボタンを、【内容】にして、【属性表】で、書く手順
		属性表から属性タグを生成して【属性タグ】とする
		「<input type="submit" name="[名前]" value="[内容]"[属性タグ]>」を返す
	終わり
	リセットボタンを、【属性表】で、【内容】にして、書く手順
		属性表から属性タグを生成して【属性タグ】とする
		「<input type="reset" value="[内容]"[属性タグ]>」を返す
	終わり
	【アドレス】への、リンクを、【内容】にして、書く手順
		「<a href="[（要求の要求アドレス）のフォルダだけ][アドレス]">[内容]</a>」を返す
	終わり
	【アドレス】から、画像を、【属性表】で、貼る手順
		属性表から属性タグを生成して【属性タグ】とする
		「<img src="[（要求の要求アドレス）のフォルダだけ][アドレス]"[属性タグ]>」を返す
	終わり

	-【属性表】から、属性タグを、生成する手順
		【属性タグ】は「」
		属性表の見出しのすべてのみだしについて
			属性タグは、属性タグ＆「 [みだし]="[属性表(みだし)]"」
		そして
		属性タグを返す
	終わり
終わり


///////////////////// Produire Server Pages Validator /////////////////////
/// Version 1.0 (2011/5/9)
/// for プロデル Version 1.6.995
フォームとは
	+要求
	+条件一覧
	はじめ（要求）の手順
		自分の要求は、要求
		条件一覧は｛}
	終わり
	【自分】から、【引数名】を、取得する手順
		要求から引数名という引数を取得して返す
	終わり
	【自分】へ、【項目名】として、【HTML名】を、加える手順
		条件というフォーム入力条件（項目名、HTML名）を作る
		条件一覧へ条件を加える
		条件を返す
	終わり
	【自分】を、検証する手順
		エラー一覧は｛｝
		条件一覧のすべての条件について
			条件のHTML名を取得して値とする
			条件の空欄可能が×かつ値が「」なら
				エラー一覧に「[条件の項目名]を入力してください。」を加える
			そして
		そして
		エラー一覧を返す
	終わり
終わり
フォーム入力条件とは
	+空欄可能
	+項目名
	+HTML名
	はじめ（項目名、HTML名）の手順
		この項目名は、項目名
		このHTML名は、HTML名
	終わり
終わり
