Here is a slightly longer example of a script declaration block.
# A machine from the good old days (?) decl { ! The original IBM PC XT from 1983, complete with ! a <em>full-height</em> 10 MB fixed disk and a 5 1/4" floppy drive. # Note that comments (like this one) are distinct from doc strings. param ram_size : int = 256 ! RAM size in KiB. Max is 640, which should be enough for anyone. param cpu_freq : float = 4.77 ! CPU frequency in MHz. param video : {mda, cga, hercules} = cga ! Type of video card. mda & hercules look best. group "networking" param mac_addr : string or nil = NIL ! Ethernet MAC address, or NIL if no Ethernet adapter present. param rom_file : file("*.bin") = "%script%/pc_xt_rom.bin" ! File containing the ROM image. Must be exactly 40 KiB. param rtc_time : string = "2015-02-01 13:37:00" ! Initial time and date of the real-time clock, on the form ! <tt>"YYYY-MM-DD HH:MM:SS"</tt>. # Include parameters declared in another file. params from "ms-dos.simics" # Override the default value of a parameter from that file default dos_ver = "2.11" result system : string ! Name of generated system component object. } # Here the actual script starts with commands to execute.