view tests/subforms.ur @ 1079:d069b193ed6b

Especialize uses a termination measure based on number of arguments introduced
author Adam Chlipala <adamc@hcoop.net>
date Tue, 15 Dec 2009 19:26:52 -0500
parents 16b34dc2e29c
children
line wrap: on
line source
fun handler' ls =
    case ls of
        Nil => <xml/>
      | Cons (r, ls) => <xml><li>{[r.Nam]}, {[r.A]}, {[r.B]}, {[r.Sub]}</li>{handler' ls}</xml>

fun handler r = return <xml><body>
  {[r.A]}<br/>
  {handler' r.Sub}
  {[r.C]}
</body></xml>

fun main () = return <xml><body>
  <form>
    <textbox{#A}/><br/>
    <subforms{#Sub}>
      <entry>
        <hidden{#Nam} value="Sparky"/>
        <textbox{#A}/><br/>
        <textbox{#B}/><br/>
        <textbox{#Sub}/><br/>
      </entry>

      <entry>
        <hidden{#Nam} value="Snarky"/>
        <textbox{#A}/><br/>
        <textbox{#B}/><br/>
        <textbox{#Sub}/><br/>
      </entry>
    </subforms>
    <textbox{#C}/><br/>
    <submit action={handler}/>
  </form>
</body></xml>