diff options
-rw-r--r-- | ds9/doc/ref/command.html | 102 | ||||
-rw-r--r-- | ds9/doc/ref/samp.html | 109 | ||||
-rw-r--r-- | ds9/doc/ref/xpa.html | 121 | ||||
-rw-r--r-- | ds9/library/movie.tcl | 167 | ||||
-rw-r--r-- | ds9/library/saveimage.tcl | 2 | ||||
-rw-r--r-- | ds9/parsers/movielex.fcl | 2 | ||||
-rw-r--r-- | ds9/parsers/movielex.tcl | 122 | ||||
-rw-r--r-- | ds9/parsers/movieparser.tab.tcl | 14 | ||||
-rw-r--r-- | ds9/parsers/movieparser.tac | 24 | ||||
-rw-r--r-- | ds9/parsers/movieparser.tcl | 1158 | ||||
-rw-r--r-- | make.include | 2 |
11 files changed, 1169 insertions, 654 deletions
diff --git a/ds9/doc/ref/command.html b/ds9/doc/ref/command.html index 2b6f8d9..96653a7 100644 --- a/ds9/doc/ref/command.html +++ b/ds9/doc/ref/command.html @@ -9,9 +9,9 @@ 2.4.7-10 i686) [Netscape]"> <title>Command Line Options</title> </head> - <body vlink="#551A8B" link="#0000FF" alink="#FF0000"> - <h3><img alt="" src="../sun.gif" width="100" height="98" - align="middle"> Command Line Options</h3> + <body link="#0000FF" alink="#FF0000" vlink="#551A8B"> + <h3><img alt="" src="../sun.gif" height="98" align="middle" + width="100"> Command Line Options</h3> <blockquote> <p>DS9 will process each command line option, one at a time, as the last step in the initialization process. Therefore, it is @@ -452,6 +452,8 @@ + + [<ref>] [filter <string>]</tt><tt><br> </tt><tt> [<ref>] [filter load <filename>]</tt><tt><br> @@ -468,6 +470,8 @@ + + [<ref>] [match]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt> </tt><tt>[<ref>] [match error <value> @@ -488,6 +492,8 @@ + + [<ref>] [panto yes|no]</tt><tt><br> </tt><tt> </tt><tt> [<ref>] [plot <xcol> <ycol> <xerrcol> @@ -516,6 +522,8 @@ + + [<ref>] [save <filename>]</tt><tt><br> </tt><tt> </tt><tt> [<ref>] [server</tt><tt> </tt><tt>cds|adac|cadc|cambridge|sao|ukirt|iucaa|bejing|saao]</tt><tt><br> @@ -544,6 +552,8 @@ + + [symbol shape</tt><tt> </tt><tt>circle point|box point|diamond point|</tt><tt>cross point|x point|arrow point|boxcircle point]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt> @@ -552,6 +562,8 @@ + + [<ref>] [symbol add| [#] remove]</tt><tt><br> </tt><tt> [<ref>] [symbol save|load <filename>]</tt><tt><br> @@ -602,6 +614,8 @@ + + '\$Hmag' '\$e_Jmag' '\$e_Hmag'</tt><tt><br> </tt><tt> </tt><tt> </tt><tt>$ds9 -catalog print</tt><tt><br> </tt><tt> </tt><tt>$ds9 -catalog psky fk5</tt><tt><br> @@ -698,6 +712,8 @@ + + [match]<br> [lock [yes|no]]</tt><br> @@ -833,6 +849,8 @@ + + <coordsys>]<br> [lock <coordsys>|none]</tt><br> @@ -997,6 +1015,8 @@ + + -envi foo.hdr foo.bsq</tt></tt><tt><tt><tt><tt><tt><tt><br> </tt></tt></tt></tt></tt></tt> <p><b><a name="exit" id="exit"></a>exit<br> @@ -1031,6 +1051,8 @@ + + [1-100]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt>-export <filename></tt><tt>.tiff @@ -1038,6 +1060,8 @@ + + [none|jpeg|packbits|deflate]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt><br> </tt><tt> Example:</tt><tt><br> @@ -1505,12 +1529,16 @@ + + <coordsys>]</tt><tt> </tt><tt><br> </tt><tt> </tt><tt> </tt><tt> + + [crop <coordsys>]</tt><tt><br> </tt><tt> </tt><tt> [slice <coordsys>]</tt><tt><br> @@ -1526,6 +1554,8 @@ + + [3d]</tt><tt><br> </tt><tt> </tt><tt><br> </tt><tt> Example:</tt><tt><br> @@ -1596,25 +1626,26 @@ <tt><tt>$cat foo.fits | ds9 -mosaiimage wcs</tt></tt><tt><br> </tt> <p><b><a name="movie" id="movie"></a>movie<br> - savempeg<br> </b></p> - <p>Create mpeg1 movie from snap shots of the DS9 window. A <tt>slice</tt> + <p>Create a movie from snap shots of the DS9 window. A <tt>slice</tt> movie cycles though all slices of a cube. A <tt>frame</tt> movie cycles through all active frames. A <tt>3d</tt> movie - cycles through specified viewing angles. The default is <tt>frame</tt>. - Optional parameters for <tt>3d</tt>: number of frames, azimuth - from/to, elevation from/to, slice from/to, oscillate/repeat - times.<br> - </p> - <tt>Syntax:<br> - -movie [slice|frame|3d] <filename><br> - -movie 3d <filename> + cycles through specified viewing angles. The default action is <tt>slice</tt>. + Movie types are either <tt>MPEG</tt> or <tt>Animated GIF</tt>, + with default <tt>MPEG</tt>. Optional parameters for <tt>3d</tt>: + number of frames, azimuth from/to, elevation from/to, slice + from/to, oscillate/repeat times. </p> + <tt>Syntax:<br> + -movie [slice|frame|3d] [mpeg|gif] <filename><br> + -movie 3d [mpeg|gif] <filename> [number|azfrom|azto|elfrom|elto|slfrom|slto|oscillate|repeat <#>]<br> <br> Example:<br> - $ds9 -movie slice ds9.mpg<br> - $ds9 -movie 3d ds9.mpg number 10 azfrom -60 azto 60 oscillate 1</tt><br> + </tt><tt><tt>$ds9 -movie slice mpeg ds9.mpg<br> + </tt> $ds9 -movie frame gif ds9.gif<br> + </tt><tt>$ds9 -movie 3d mpeg ds9.mpg number 10 azfrom -60 azto 60 + oscillate 1</tt><br> <p><b><a name="msg" id="msg"></a>msg</b></p> <p>Specify a directory of translation tables to be loaded.</p> <tt>Syntax:<br> @@ -1647,6 +1678,8 @@ + + [pan]<br> @@ -1655,6 +1688,8 @@ + + [crosshair]<br> @@ -1663,6 +1698,8 @@ + + [open|close]<br> <br> Example:<br> @@ -1775,6 +1812,8 @@ + + [yes|open]<br> [no|close]<br> @@ -1808,6 +1847,8 @@ + + load <filename> xy|xyex|xyey|xyexey]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt> [[<plotname>] save <filename>]</tt><tt><br> @@ -1825,6 +1866,8 @@ + + loadconfig <filename>]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt> [[<plotname>] saveconfig <filename>]</tt><tt><br> @@ -1849,12 +1892,16 @@ + + close</tt><tt>]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt> </tt><tt> </tt><tt>[[<plotname>] + + mode pointer|zoom]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt><br> </tt><tt> </tt><tt> </tt><tt># configure graph</tt><tt><br> @@ -1878,6 +1925,8 @@ + + legend yes|no]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt> [[<plotname>] legend position right|left|top|bottom]</tt><tt><br> @@ -1903,6 +1952,8 @@ + + barmode normal|stacked|aligned|overlap]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt><br> </tt><tt> </tt><tt> </tt><tt># configure current dataset</tt><tt><br> @@ -2088,10 +2139,11 @@ + + [color rgb|cmyk|gray]</tt><tt><br> </tt><tt> [level 1|2|3]</tt><tt><br> - </tt><tt> [resolution - </tt><tt><tt>72|screen|96|144|150|225|300|600|1200]</tt></tt><tt><br> + </tt><tt> [resolution </tt><tt><tt>72|screen|96|144|150|225|300|600|1200]</tt></tt><tt><br> </tt><tt> </tt><tt><br> </tt><tt> Example:</tt><tt><br> </tt><tt> $ds9 -print</tt><tt><br> @@ -2372,6 +2424,8 @@ + + [image|table|slice]</tt><br> <tt> <br> Example:<br> @@ -2492,6 +2546,8 @@ + + [crosshair]</tt><tt><br> </tt><tt> </tt><tt> [<ref>] [export sb|tsv <filename>]</tt><tt><br> @@ -2517,6 +2573,8 @@ + + [update]</tt><tt><br> </tt><tt> </tt><tt><br> </tt><tt> Example:</tt><tt><br> @@ -2629,6 +2687,8 @@ + + [sigma <value>]<br> </tt></tt></tt></tt></tt></tt> <tt><tt><tt><tt><tt><tt> @@ -2637,6 +2697,8 @@ + + [sigmaminor <value>]<br> </tt></tt></tt></tt></tt></tt> <tt><tt><tt><tt><tt><tt><tt><tt> [angle @@ -2646,6 +2708,8 @@ + + <value>]<br> </tt></tt></tt></tt></tt></tt></tt> [match]<br> @@ -2668,6 +2732,8 @@ + + sigmaminor 2.0<br> </tt></tt></tt></tt></tt></tt> <tt><tt><tt><tt><tt><tt><tt><tt>$ds9 @@ -2675,6 +2741,8 @@ + + -smooth angle 45<br> </tt></tt></tt></tt></tt></tt></tt> $ds9 -smooth match<br> diff --git a/ds9/doc/ref/samp.html b/ds9/doc/ref/samp.html index db5c239..f638dc8 100644 --- a/ds9/doc/ref/samp.html +++ b/ds9/doc/ref/samp.html @@ -9,9 +9,9 @@ 2.4.7-10 i686) [Netscape]"> <title>SAMP</title> </head> - <body vlink="#551A8B" link="#0000FF" alink="#FF0000"> - <h3><img alt="" src="../sun.gif" width="100" height="98" - align="middle"> SAMP</h3> + <body link="#0000FF" alink="#FF0000" vlink="#551A8B"> + <h3><img alt="" src="../sun.gif" height="98" align="middle" + width="100"> SAMP</h3> <blockquote> <p>SAMP is a messaging protocol that enables astronomy software tools to interoperate and communicate. Broadly speaking, SAMP is @@ -467,6 +467,8 @@ + + [2mass|iras]</tt><tt><br> </tt><tt> [csc|xmm|rosat]</tt><tt><br> @@ -510,6 +512,8 @@ + + [<ref>] [filter <string>]</tt><tt><br> </tt><tt> [<ref>] [filter load <filename>]</tt><tt><br> @@ -526,6 +530,8 @@ + + [<ref>] [match <ref> <ref>]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt> </tt><tt>[<ref>] [match error <value> @@ -546,6 +552,8 @@ + + [<ref>] [panto yes|no]</tt><tt><br> </tt><tt> </tt><tt> [<ref>] [plot <xcol> <ycol> <xerrcol> @@ -574,6 +582,8 @@ + + [<ref>] [save <filename>]</tt><tt><br> </tt><tt> </tt><tt> [<ref>] [server</tt><tt> </tt><tt>cds|adac|cadc|cambridge|sao|ukirt|iucaa|bejing|saao]</tt><tt><br> @@ -603,6 +613,8 @@ + + [symbol shape</tt><tt> </tt><tt>circle point|box point|diamond point|</tt><tt>cross point|x point|arrow point|boxcircle point]</tt><tt><br> </tt><tt> </tt><tt> @@ -661,6 +673,8 @@ + + {$Hmag} {$e_Jmag} {$e_Hmag}</tt><tt><br> </tt><tt> </tt><tt> </tt><tt>catalog print</tt><tt><br> </tt><tt> </tt><tt>catalog psky fk5</tt><tt><br> @@ -680,6 +694,8 @@ + + point}</tt><tt><br> </tt><tt> </tt><tt>catalog symbol color red</tt><tt><br> </tt><tt> catalog symbol font times</tt><tt><br> @@ -825,6 +841,8 @@ + + [save levels <filename>]<br> </tt></tt> [copy]<br> [paste @@ -910,6 +928,8 @@ + + zmax <coordsys>]</tt><tt><br> </tt><tt> [open|close]</tt><tt><br> </tt><tt> </tt><tt><br> @@ -1648,6 +1668,8 @@ + + Macros</a> for more information.</p> <tt>Syntax:<br> iexam []<br> @@ -1923,24 +1945,27 @@ mosaicimage wcs new</tt><tt><br> </tt> mosaicimage wcs mask</tt> <p><b><a name="movie" id="movie"></a>movie</b></p> - <p>Create mpeg1 movie from snap shots of the DS9 window. A <tt>slice</tt> + <p>Create a movie from snap shots of the DS9 window. A <tt>slice</tt> movie cycles though all slices of a cube. A <tt>frame</tt> movie cycles through all active frames. A <tt>3d</tt> movie - cycles through specified viewing angles. The default is <tt>frame</tt>. - Optional parameters for <tt>3d</tt>: number of frames, azimuth - from/to, elevation from/to, slice from/to, oscillate/repeat - times.</p> - <tt>Syntax:<br> - movie</tt> <tt>[slice|frame|3d]</tt> <tt><filename><br> - </tt> <tt>movie 3d <filename> + cycles through specified viewing angles. The default action is <tt>slice</tt>. + Movie types are either <tt>MPEG</tt> or <tt>Animated GIF</tt>, + with default <tt>MPEG</tt>. Optional parameters for <tt>3d</tt>: + number of frames, azimuth from/to, elevation from/to, slice + from/to, oscillate/repeat times.</p> + <tt>Syntax:<br> + movie</tt> <tt>[slice|frame|3d]</tt> <tt>[mpeg|gif] + <filename><br> + </tt> <tt>movie 3d [mpeg|gif] <filename> [number|azfrom|azto|elfrom|elto|slfrom|slto|oscillate|repeat <#>]</tt><br> <tt> <br> Example:<br> ds9.set(string cmd)<br> - movie slice ds9.mpg<br> - </tt> <tt>movie 3d ds9.mpg number 10 azfrom -60 azto 60 oscillate - 1</tt><br> + </tt><tt><tt><tt>movie slice mpeg ds9.mpg<br> + </tt> movie frame gif ds9.gif<br> + </tt></tt><tt>movie 3d mpeg ds9.mpg number 10 azfrom -60 azto 60 + oscillate 1</tt><br> <p><b><a name="multiframe" id="multiframe"></a>multiframe</b></p> <p>Load FITS multiple extension file as multiple images.<br> </p> @@ -2157,6 +2182,8 @@ + + load <filename> xy|xyex|xyey|xyexey]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt> [[<plotname>] save <filename>]</tt><tt><br> @@ -2168,6 +2195,8 @@ + + duplicate [#]]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt> </tt><tt> </tt><tt>[[<plotname>] @@ -2175,6 +2204,8 @@ + + stats yes|no]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt> </tt><tt> </tt><tt>[[<plotname>] @@ -2182,6 +2213,8 @@ + + list yes|no]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt> </tt><tt> </tt><tt>[[<plotname>] @@ -2189,6 +2222,8 @@ + + loadconfig <filename>]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt> [[<plotname>] saveconfig <filename>]</tt><tt><br> @@ -2213,6 +2248,8 @@ + + close</tt><tt>]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt> </tt><tt> </tt><tt>[[<plotname>] @@ -2220,6 +2257,8 @@ + + mode pointer|zoom]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt><br> </tt><tt> </tt><tt> </tt><tt># configure graph</tt><tt><br> @@ -2243,6 +2282,8 @@ + + legend yes|no]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt> [[<plotname>] legend position right|left|top|bottom]</tt><tt><br> @@ -2268,6 +2309,8 @@ + + barmode normal|stacked|aligned|overlap]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt><br> </tt><tt> </tt><tt> </tt><tt># configure current dataset</tt><tt><br> @@ -2278,6 +2321,8 @@ + + shape circle|square|diamond|plus|splus|scross|triangle|arrow]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt> </tt><tt> </tt><tt>[[<plotname>] @@ -2285,6 +2330,8 @@ + + shape fill yes|no]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt> </tt><tt> </tt><tt>[[<plotname>] @@ -2292,6 +2339,8 @@ + + shape color <value>]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt> </tt><tt> </tt><tt>[[<plotname>] @@ -2299,6 +2348,8 @@ + + smooth step|linear|cubic|quadratic|catrom]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt> </tt><tt> </tt><tt>[[<plotname>] @@ -2306,6 +2357,8 @@ + + color <value>]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt> </tt><tt> </tt><tt>[[<plotname>] @@ -2313,6 +2366,8 @@ + + width <value>]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt> </tt><tt> </tt><tt>[[<plotname>] @@ -2320,6 +2375,8 @@ + + dash yes|no]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt> </tt><tt> </tt><tt>[[<plotname>] @@ -2327,6 +2384,8 @@ + + error yes|no]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt> </tt><tt> </tt><tt>[[<plotname>] @@ -2334,6 +2393,8 @@ + + error color <value>]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt> [[<plotname>] color <value>]</tt><tt><br> @@ -2343,6 +2404,8 @@ + + error width <value>]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt> </tt><tt> </tt><tt>[[<plotname>] @@ -2350,6 +2413,8 @@ + + name <string>]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt><br> </tt><tt> </tt><tt> </tt><tt># select current dataset</tt><tt><br> @@ -3054,6 +3119,8 @@ + + [<ref>] [save <filename>]</tt><tt><br> </tt><tt> </tt><tt> [<ref>] [radius <value> degrees|arcmin|arcsec]</tt><tt><br> @@ -3177,6 +3244,8 @@ + + [sigma <value>]<br> </tt></tt></tt></tt></tt></tt> <tt><tt><tt><tt><tt><tt> @@ -3185,6 +3254,8 @@ + + [sigmaminor <value>]<br> </tt></tt></tt></tt></tt></tt> <tt><tt><tt><tt><tt><tt><tt><tt> [angle @@ -3194,6 +3265,8 @@ + + <value>]<br> </tt></tt></tt></tt></tt></tt></tt></tt> <tt> @@ -3201,6 +3274,8 @@ + + [match]<br> [lock [yes|no]]</tt><br> <tt><tt> [open|close]<br> @@ -3227,6 +3302,8 @@ + + sigma 2.0<br> </tt></tt></tt></tt></tt></tt></tt></tt></tt> <tt><tt><tt><tt><tt><tt><tt><tt><tt>smooth @@ -3234,6 +3311,8 @@ + + sigmaminor 2.0<br> </tt></tt></tt></tt></tt></tt></tt></tt></tt> <tt><tt><tt><tt><tt><tt><tt><tt><tt><tt><tt><tt>smooth @@ -3241,6 +3320,8 @@ + + angle 45<br> </tt></tt></tt></tt></tt></tt></tt></tt></tt></tt></tt> smooth open<br> diff --git a/ds9/doc/ref/xpa.html b/ds9/doc/ref/xpa.html index c509dd9..28f10c6 100644 --- a/ds9/doc/ref/xpa.html +++ b/ds9/doc/ref/xpa.html @@ -9,9 +9,9 @@ 2.4.7-10 i686) [Netscape]"> <title>XPA Access Points</title> </head> - <body vlink="#551A8B" link="#0000FF" alink="#FF0000"> - <h3><img alt="" src="../sun.gif" width="100" height="98" - align="middle"> XPA Access Points</h3> + <body link="#0000FF" alink="#FF0000" vlink="#551A8B"> + <h3><img alt="" src="../sun.gif" height="98" align="middle" + width="100"> XPA Access Points</h3> <blockquote> <p>The <a href="http://hea-www.harvard.edu/RD/xpa/index.html">XPA</a> messaging system provides seamless communication between DS9 and @@ -212,6 +212,8 @@ + + -p ds9 3d match</tt></tt></tt></tt></tt></tt></tt></tt><br> <tt><tt><tt><tt><tt><tt><tt><tt><tt><tt><tt>$xpaset -p ds9 3d lock yes</tt><br> @@ -455,6 +457,8 @@ + + [crosshair]</tt><br> <tt> [<ref>] [dec <col>]</tt><br> @@ -479,6 +483,8 @@ + + [<ref>] [match <ref> <ref>]<br> </tt></tt> </tt> <tt>[<ref>] [match @@ -488,6 +494,8 @@ + + error <value> degrees|arcmin|arcsec]</tt><br> <tt> </tt> <tt>[<ref>] @@ -495,6 +503,8 @@ + + [match function 1and2|1not2|2not1]<br> </tt> <tt> </tt> <tt>[<ref>] @@ -502,6 +512,8 @@ + + [match return 1and2|1only|2only]</tt><br> <tt> </tt> <tt>[<ref>] @@ -509,6 +521,8 @@ + + [match unique yes|no]</tt><br> <tt> [<ref>] [maxrows <number>]</tt><br> @@ -562,12 +576,16 @@ + + shape</tt></tt> <tt><tt>circle point|box point|diamond point|</tt>cross + + point|x point|arrow point|boxcircle point]<br> [<ref>] [symbol add| [#] remove]<br> @@ -581,6 +599,8 @@ + + [update]</tt><br> <tt> [<ref>] [x <col>]</tt><br> @@ -1112,6 +1132,8 @@ + + -p ds9 export envi foo.hdr foo.bsq little</tt></tt><br> </tt></tt></tt></tt> $xpaset -p ds9 export tiff foo.tiff jpeg</tt></tt></tt><br> @@ -1782,24 +1804,26 @@ $cat foo.fits | xpaset ds9 mosaicimage wcs new</tt><tt><br> </tt> $cat foo.fits | xpaset ds9 mosaicimage wcs mask</tt><br> <p><b><a name="movie" id="movie"></a>movie<br> - savempeg<br> </b></p> - <p>Create mpeg1 movie from snap shots of the DS9 window. A <tt>slice</tt> + <p>Create a movie from snap shots of the DS9 window. A <tt>slice</tt> movie cycles though all slices of a cube. A <tt>frame</tt> movie cycles through all active frames. A <tt>3d</tt> movie - cycles through specified viewing angles. The default is <tt>frame</tt>. - Optional parameters for <tt>3d</tt>: number of frames, azimuth - from/to, elevation from/to, slice from/to, oscillate/repeat - times.</p> - <tt>Syntax:<br> - movie</tt> <tt>[slice|frame|3d]</tt> <tt><filename><br> - </tt> <tt>movie 3d <filename> + cycles through specified viewing angles. The default action is <tt>slice</tt>. + Movie types are either <tt>MPEG</tt> or <tt>Animated GIF</tt>, + with default <tt>MPEG</tt>. Optional parameters for <tt>3d</tt>: + number of frames, azimuth from/to, elevation from/to, slice + from/to, oscillate/repeat times.</p> + <tt>Syntax:<br> + movie</tt> <tt>[slice|frame|3d]</tt> <tt>[mpeg|gif] + <filename><br> + </tt> <tt>movie 3d [mpeg|gif] <filename> [number|azfrom|azto|elfrom|elto|slfrom|slto|oscillate|repeat <#>]</tt><br> <tt> <br> Example:<br> - $xpaset -p ds9 movie slice ds9.mpg<br> - </tt> <tt>$xpaset -p ds9 movie 3d ds9.mpg number 10 azfrom -60 + </tt><tt><tt>$xpaset -p ds9 movie slice mpeg ds9.mpg<br> + </tt> $xpaset -p ds9 movie frame gif ds9.gif<br> + </tt><tt>$xpaset -p ds9 movie 3d mpeg ds9.mpg number 10 azfrom -60 azto 60 oscillate 1</tt><br> <p><b><a name="multiframe" id="multiframe"></a>multiframe</b></p> <p>Load FITS multiple extension file as multiple images.<br> @@ -2002,6 +2026,8 @@ + + [line|bar|scatter] <title> <xaxis label> <yaxis label></tt><tt> </tt><tt>xy|xyex|xyey|xyexey</tt><tt>]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt> </tt><tt> </tt><tt>[new</tt><tt> @@ -2021,12 +2047,16 @@ + + name <plotname> stdin</tt><tt>]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt> </tt><tt> </tt><tt>[new + + name <plotname></tt><tt> </tt><tt>line|bar|scatter</tt><tt> </tt><tt>stdin</tt><tt>]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt><br> @@ -2041,6 +2071,8 @@ + + load <filename> xy|xyex|xyey|xyexey]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt> [[<plotname>] save <filename>]</tt><tt><br> @@ -2052,6 +2084,8 @@ + + duplicate [#]]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt> </tt><tt> </tt><tt>[[<plotname>] @@ -2059,6 +2093,8 @@ + + stats yes|no]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt> </tt><tt> </tt><tt>[[<plotname>] @@ -2066,6 +2102,8 @@ + + list yes|no]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt> </tt><tt> </tt><tt>[[<plotname>] @@ -2073,6 +2111,8 @@ + + loadconfig <filename>]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt> [[<plotname>] saveconfig <filename>]</tt><tt><br> @@ -2097,6 +2137,8 @@ + + close</tt><tt>]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt> </tt><tt> </tt><tt>[[<plotname>] @@ -2104,6 +2146,8 @@ + + mode pointer|zoom]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt><br> </tt><tt> </tt><tt> </tt><tt># configure graph</tt><tt><br> @@ -2127,6 +2171,8 @@ + + legend yes|no]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt> [[<plotname>] legend position right|left|top|bottom]</tt><tt><br> @@ -2152,6 +2198,8 @@ + + barmode normal|stacked|aligned|overlap]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt><br> </tt><tt> </tt><tt> </tt><tt># configure current dataset</tt><tt><br> @@ -2162,6 +2210,8 @@ + + shape circle|square|diamond|plus|splus|scross|triangle|arrow]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt> </tt><tt> </tt><tt>[[<plotname>] @@ -2169,6 +2219,8 @@ + + shape fill yes|no]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt> </tt><tt> </tt><tt>[[<plotname>] @@ -2176,6 +2228,8 @@ + + shape color <value>]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt> </tt><tt> </tt><tt>[[<plotname>] @@ -2183,6 +2237,8 @@ + + smooth step|linear|cubic|quadratic|catrom]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt> </tt><tt> </tt><tt>[[<plotname>] @@ -2190,6 +2246,8 @@ + + color <value>]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt> </tt><tt> </tt><tt>[[<plotname>] @@ -2197,6 +2255,8 @@ + + width <value>]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt> </tt><tt> </tt><tt>[[<plotname>] @@ -2204,6 +2264,8 @@ + + dash yes|no]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt> </tt><tt> </tt><tt>[[<plotname>] @@ -2211,6 +2273,8 @@ + + error yes|no]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt> </tt><tt> </tt><tt>[[<plotname>] @@ -2218,6 +2282,8 @@ + + error color <value>]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt> [[<plotname>] color <value>]</tt><tt><br> @@ -2227,6 +2293,8 @@ + + error width <value>]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt> </tt><tt> </tt><tt>[[<plotname>] @@ -2234,6 +2302,8 @@ + + name <string>]</tt><tt><br> </tt><tt> </tt><tt> </tt><tt><br> </tt><tt> </tt><tt> </tt><tt># select current dataset</tt><tt><br> @@ -2456,7 +2526,8 @@ [filename <filename>]<br> [color rgb|cmyk|gray]<br> [level 1|2|3]<br> - [resolution 72|screen|96|144|150|225|300|600|1200]<br> + [resolution + 72|screen|96|144|150|225|300|600|1200]<br> <br> Example:<br> $xpaget ds9 print destination<br> @@ -2920,6 +2991,8 @@ + + [crosshair]</tt><tt><br> </tt><tt> </tt><tt> [<ref>] [export sb|tsv <filename>]</tt><tt><br> @@ -2943,6 +3016,8 @@ + + [update]</tt><br> <tt><br> Example:<br> @@ -3050,6 +3125,8 @@ + + [sigma <value>]<br> </tt></tt></tt></tt></tt></tt> <tt><tt><tt><tt><tt><tt> @@ -3058,6 +3135,8 @@ + + [sigmaminor <value>]<br> </tt></tt></tt></tt></tt></tt> <tt><tt><tt><tt><tt><tt><tt><tt> [angle @@ -3067,6 +3146,8 @@ + + <value>]<br> </tt></tt></tt></tt></tt></tt></tt></tt> <tt> @@ -3074,6 +3155,8 @@ + + [match]<br> [lock [yes|no]]</tt><br> <tt><tt> [open|close]<br> @@ -3090,6 +3173,8 @@ + + ds9 smooth sigmaminor<br> </tt></tt></tt></tt></tt></tt></tt></tt> $xpaget ds9 smooth lock<br> @@ -3105,6 +3190,8 @@ + + -p ds9 smooth sigma 2.0<br> </tt></tt></tt></tt></tt></tt></tt></tt></tt> <tt><tt><tt><tt><tt><tt><tt><tt><tt>$xpaset @@ -3112,6 +3199,8 @@ + + -p ds9 smooth sigmaminor 2.0<br> </tt></tt></tt></tt></tt></tt></tt></tt></tt> <tt><tt><tt><tt><tt><tt><tt><tt><tt><tt><tt><tt>$xpaset @@ -3119,6 +3208,8 @@ + + -p ds9 smooth angle 45<br> </tt></tt></tt></tt></tt></tt></tt></tt></tt></tt></tt> $xpaset -p ds9 smooth match<br> diff --git a/ds9/library/movie.tcl b/ds9/library/movie.tcl index de63422..f06ed42 100644 --- a/ds9/library/movie.tcl +++ b/ds9/library/movie.tcl @@ -13,9 +13,8 @@ proc MovieDef {} { set imovie(top) .moviestatus set imovie(mb) .moviestatusmb + set movie(type) mpeg set movie(action) slice - # must be >=5, or sometimes will generate bad data - set movie(quality) 5 set movie(num) 24 set movie(az,from) 45 set movie(az,to) -45 @@ -35,6 +34,7 @@ proc MovieDef {} { proc MovieDialog {} { global movie global mpegfbox + global giffbox global ed global current @@ -42,16 +42,30 @@ proc MovieDialog {} { set ed(ok) 0 set ed(action) $movie(action) + set ed(type) $movie(type) DialogCreate $w [msgcat::mc {Create Movie}] ed(ok) + # Type of Movie + set f [ttk::labelframe $w.type -text [msgcat::mc {Type}]] + + ttk::label $f.title -text [msgcat::mc {Type}] + ttk::radiobutton $f.mpeg -text {MPEG} \ + -variable ed(type) -value mpeg + ttk::radiobutton $f.gif -text {Animated Gif} \ + -variable ed(type) -value gif + + grid $f.mpeg -padx 2 -pady 2 -sticky w + grid $f.gif -padx 2 -pady 2 -sticky w + # Param - set f [ttk::frame $w.param] + set f [ttk::labelframe $w.param -text [msgcat::mc {Format}]] + ttk::label $f.title -text [msgcat::mc {Format}] - ttk::radiobutton $f.slice -text {Slice Movie} \ - -variable ed(action) -value slice ttk::radiobutton $f.frame -text {Frames Movie} \ -variable ed(action) -value frame + ttk::radiobutton $f.slice -text {Slice Movie} \ + -variable ed(action) -value slice ttk::radiobutton $f.3d -text {3D Movie} \ -variable ed(action) -value 3d @@ -75,9 +89,12 @@ proc MovieDialog {} { bind $w <Return> {set ed(ok) 1} # Fini - ttk::separator $w.sep -orient horizontal - pack $w.buttons $w.sep -side bottom -fill x - pack $w.param -side top -fill both -expand true + grid $w.type -sticky news + grid $w.param -sticky news + grid $w.buttons -sticky ew + grid rowconfigure $w 0 -weight 1 + grid rowconfigure $w 1 -weight 1 + grid columnconfigure $w 0 -weight 1 DialogCenter $w DialogWait $w ed(ok) @@ -85,7 +102,12 @@ proc MovieDialog {} { if {$ed(ok)} { set movie(action) $ed(action) - set fn [SaveFileDialog mpegfbox] + set movie(type) $ed(type) + + switch $movie(type) { + mpeg {set fn [SaveFileDialog mpegfbox]} + gif {set fn [SaveFileDialog giffbox]} + } if {$fn != {}} { set ok 1 @@ -96,7 +118,7 @@ proc MovieDialog {} { } if {$ok} { - Movie $fn + MovieCreate $fn } } } @@ -106,7 +128,7 @@ proc MovieDialog {} { return $rr } -proc Movie {fn} { +proc MovieCreate {fn} { global ds9 global movie global current @@ -126,10 +148,11 @@ proc Movie {fn} { DisplayMode } + set movie(fn) $fn switch $movie(action) { - slice {MovieSlice $fn} - frame {MovieFrame $fn} - 3d {Movie3d $fn} + frame {MovieFrame} + slice {MovieSlice} + 3d {Movie3d} } if {[info exists modesav]} { @@ -138,7 +161,29 @@ proc Movie {fn} { } } -proc MovieSlice {fn} { +proc MovieFrame {} { + global ds9 + global current + global movie + + # loop thru all active frames + set movie(first) 1 + set framesav $current(frame) + + foreach ff $ds9(active) { + set ds9(next) $ff + GotoFrame + if {[MoviePhoto]} { + break + } + } + MovieClose + + set ds9(next) $framesav + GotoFrame +} + +proc MovieSlice {} { global current global movie @@ -153,39 +198,17 @@ proc MovieSlice {fn} { set movie(first) 1 for {set ii $from} {$ii <= $to} {incr ii} { $current(frame) update fits slice $ii - if {[MoviePhoto $fn]} { + if {[MoviePhoto]} { break } } - mpeg close + MovieClose # reset current slice $current(frame) update fits slice $slice } -proc MovieFrame {fn} { - global ds9 - global current - global movie - - # loop thru all active frames - set movie(first) 1 - set framesav $current(frame) - - foreach ff $ds9(active) { - set ds9(next) $ff - GotoFrame - if {[MoviePhoto $fn]} { - break - } - } - mpeg close - - set ds9(next) $framesav - GotoFrame -} - -proc Movie3d {fn} { +proc Movie3d {} { global movie global current @@ -217,7 +240,7 @@ proc Movie3d {fn} { $current(frame) 3d view $az $el $current(frame) update fits slice [expr int($sl)] - if {[MoviePhoto $fn]} { + if {[MoviePhoto]} { break } set az [expr $az+$azincr] @@ -237,7 +260,7 @@ proc Movie3d {fn} { } } } - mpeg close + MovieClose MovieStatusDestroyDialog @@ -250,7 +273,26 @@ proc Movie3d {fn} { # Support -proc MoviePhoto {fn} { +proc MoviePhoto {} { + global movie + + switch $movie(type) { + mpeg {return [MoviePhotoMPEG]} + gif {return [MoviePhotoGIF]} + } + return 1 +} + +proc MovieClose {} { + global movie + + switch $movie(type) { + mpeg {mpeg close} + gif {MoviePhotoGIFClose} + } +} + +proc MoviePhotoMPEG {} { global ds9 global movie global current @@ -268,7 +310,8 @@ proc MoviePhoto {fn} { if {$movie(first)} { set w [image width $ph] set h [image height $ph] - mpeg create "$fn" $w $h 25 1 $movie(quality) + # quality must be >=5, or sometimes will generate bad data + mpeg create "$movie(fn)" $w $h 25 1 5 set movie(first) 0 } mpeg add $ph @@ -277,6 +320,42 @@ proc MoviePhoto {fn} { return 0 } +proc MoviePhotoGIF {} { + global ds9 + global movie + global current + + # yes, we need this + UpdateDS9 + RealizeDS9 1 + + set rr [catch {image create photo -format window -data $ds9(canvas)} ph] + if {$rr} { + Error $movie(error) + return $rr + } + + if {$movie(first)} { + set movie(gif) {} + set movie(first) 0 + } + + lappend movie(gif) $ph + return 0 +} + +proc MoviePhotoGIFClose {} { + global movie + + set ch [open $movie(fn) w] + fconfigure $ch -encoding binary -translation binary + + close $ch + foreach ph $movie(gif) { + image delete $ph + } +} + proc Movie3dDialog {} { global movie global ed2 diff --git a/ds9/library/saveimage.tcl b/ds9/library/saveimage.tcl index 04cf59c..cffd3cb 100644 --- a/ds9/library/saveimage.tcl +++ b/ds9/library/saveimage.tcl @@ -143,5 +143,5 @@ proc SaveImageCmdMPEG {fn na} { global movie set movie(action) slice - Movie $fn + MovieCreate $fn } diff --git a/ds9/parsers/movielex.fcl b/ds9/parsers/movielex.fcl index 04de0d5..fd8f224 100644 --- a/ds9/parsers/movielex.fcl +++ b/ds9/parsers/movielex.fcl @@ -13,6 +13,8 @@ azto {return $AZTO_} elfrom {return $ELFROM_} elto {return $ELTO_} frame {return $FRAME_} +gif {return $GIF_} +mpeg {return $MPEG_} number {return $NUMBER_} oscillate {return $OSCILLATE_} repeat {return $REPEAT_} diff --git a/ds9/parsers/movielex.tcl b/ds9/parsers/movielex.tcl index 5de2f45..6989940 100644 --- a/ds9/parsers/movielex.tcl +++ b/ds9/parsers/movielex.tcl @@ -188,12 +188,14 @@ set AZTO_ 262 set ELFROM_ 263 set ELTO_ 264 set FRAME_ 265 -set NUMBER_ 266 -set OSCILLATE_ 267 -set REPEAT_ 268 -set SLICE_ 269 -set SLFROM_ 270 -set SLTO_ 271 +set GIF_ 266 +set MPEG_ 267 +set NUMBER_ 268 +set OSCILLATE_ 269 +set REPEAT_ 270 +set SLICE_ 271 +set SLFROM_ 272 +set SLTO_ 273 while {1} { if {[string length $yy_current_buffer] - $index_ < 1024} { @@ -257,111 +259,125 @@ set SLTO_ 271 set yyleng [string length $yytext] set matched_rule 5 } - # rule 6: number - if {[regexp -start $index_ -indices -line -nocase -- {\A(number)} $yy_current_buffer match] > 0 && \ + # rule 6: gif + if {[regexp -start $index_ -indices -line -nocase -- {\A(gif)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 6 } - # rule 7: oscillate - if {[regexp -start $index_ -indices -line -nocase -- {\A(oscillate)} $yy_current_buffer match] > 0 && \ + # rule 7: mpeg + if {[regexp -start $index_ -indices -line -nocase -- {\A(mpeg)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 7 } - # rule 8: repeat - if {[regexp -start $index_ -indices -line -nocase -- {\A(repeat)} $yy_current_buffer match] > 0 && \ + # rule 8: number + if {[regexp -start $index_ -indices -line -nocase -- {\A(number)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 8 } - # rule 9: slice - if {[regexp -start $index_ -indices -line -nocase -- {\A(slice)} $yy_current_buffer match] > 0 && \ + # rule 9: oscillate + if {[regexp -start $index_ -indices -line -nocase -- {\A(oscillate)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 9 } - # rule 10: slfrom - if {[regexp -start $index_ -indices -line -nocase -- {\A(slfrom)} $yy_current_buffer match] > 0 && \ + # rule 10: repeat + if {[regexp -start $index_ -indices -line -nocase -- {\A(repeat)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 10 } - # rule 11: slto - if {[regexp -start $index_ -indices -line -nocase -- {\A(slto)} $yy_current_buffer match] > 0 && \ + # rule 11: slice + if {[regexp -start $index_ -indices -line -nocase -- {\A(slice)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 11 } - # rule 12: [+-]?{D}+ - if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])+)} $yy_current_buffer match] > 0 && \ + # rule 12: slfrom + if {[regexp -start $index_ -indices -line -nocase -- {\A(slfrom)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 12 } - # rule 13: [+-]?{D}+\.?({E})? - if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])+\.?(([Ee][+-]?([0-9])+))?)} $yy_current_buffer match] > 0 && \ + # rule 13: slto + if {[regexp -start $index_ -indices -line -nocase -- {\A(slto)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 13 } - # rule 14: [+-]?{D}*\.{D}+({E})? - if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])*\.([0-9])+(([Ee][+-]?([0-9])+))?)} $yy_current_buffer match] > 0 && \ + # rule 14: [+-]?{D}+ + if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])+)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 14 } - # rule 15: \"[^\"]*\" - if {[regexp -start $index_ -indices -line -nocase -- {\A(\"[^\"]*\")} $yy_current_buffer match] > 0 && \ + # rule 15: [+-]?{D}+\.?({E})? + if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])+\.?(([Ee][+-]?([0-9])+))?)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 15 } - # rule 16: \'[^\']*\' - if {[regexp -start $index_ -indices -line -nocase -- {\A(\'[^\']*\')} $yy_current_buffer match] > 0 && \ + # rule 16: [+-]?{D}*\.{D}+({E})? + if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])*\.([0-9])+(([Ee][+-]?([0-9])+))?)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 16 } - # rule 17: \{[^\}]*\} - if {[regexp -start $index_ -indices -line -nocase -- {\A(\{[^\}]*\})} $yy_current_buffer match] > 0 && \ + # rule 17: \"[^\"]*\" + if {[regexp -start $index_ -indices -line -nocase -- {\A(\"[^\"]*\")} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 17 } - # rule 18: \S+\S+ - if {[regexp -start $index_ -indices -line -nocase -- {\A(\S+\S+)} $yy_current_buffer match] > 0 && \ + # rule 18: \'[^\']*\' + if {[regexp -start $index_ -indices -line -nocase -- {\A(\'[^\']*\')} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 18 } - # rule 19: \s - if {[regexp -start $index_ -indices -line -nocase -- {\A(\s)} $yy_current_buffer match] > 0 && \ + # rule 19: \{[^\}]*\} + if {[regexp -start $index_ -indices -line -nocase -- {\A(\{[^\}]*\})} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 19 } - # rule 20: . - if {[regexp -start $index_ -indices -line -nocase -- {\A(.)} $yy_current_buffer match] > 0 && \ + # rule 20: \S+\S+ + if {[regexp -start $index_ -indices -line -nocase -- {\A(\S+\S+)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 20 } + # rule 21: \s + if {[regexp -start $index_ -indices -line -nocase -- {\A(\s)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 21 + } + # rule 22: . + if {[regexp -start $index_ -indices -line -nocase -- {\A(.)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 22 + } if {$matched_rule == -1} { set yytext [string index $yy_current_buffer $index_] set yyleng 1 @@ -393,46 +409,52 @@ return $ELTO_ return $FRAME_ } 6 { -return $NUMBER_ +return $GIF_ } 7 { -return $OSCILLATE_ +return $MPEG_ } 8 { -return $REPEAT_ +return $NUMBER_ } 9 { -return $SLICE_ +return $OSCILLATE_ } 10 { -return $SLFROM_ +return $REPEAT_ } 11 { -return $SLTO_ +return $SLICE_ } 12 { -set yylval $yytext; return $INT_ +return $SLFROM_ + } + 13 { +return $SLTO_ } - 13 - 14 { +set yylval $yytext; return $INT_ + } + 15 - + 16 { set yylval $yytext; return $REAL_ } - 15 { + 17 { set yylval [string range $yytext 1 end-1]; return $STRING_ } - 16 { + 18 { set yylval [string range $yytext 1 end-1]; return $STRING_ } - 17 { + 19 { set yylval [string range $yytext 1 end-1]; return $STRING_ } - 18 { + 20 { set yylval $yytext; return $STRING_ } - 19 { + 21 { # ignore whitespace } - 20 { + 22 { set yylval $yytext; return $yylval } default diff --git a/ds9/parsers/movieparser.tab.tcl b/ds9/parsers/movieparser.tab.tcl index f81690c..b9fa714 100644 --- a/ds9/parsers/movieparser.tab.tcl +++ b/ds9/parsers/movieparser.tab.tcl @@ -7,9 +7,11 @@ set AZTO_ 262 set ELFROM_ 263 set ELTO_ 264 set FRAME_ 265 -set NUMBER_ 266 -set OSCILLATE_ 267 -set REPEAT_ 268 -set SLICE_ 269 -set SLFROM_ 270 -set SLTO_ 271 +set GIF_ 266 +set MPEG_ 267 +set NUMBER_ 268 +set OSCILLATE_ 269 +set REPEAT_ 270 +set SLICE_ 271 +set SLFROM_ 272 +set SLTO_ 273 diff --git a/ds9/parsers/movieparser.tac b/ds9/parsers/movieparser.tac index e48f9f0..3b28de8 100644 --- a/ds9/parsers/movieparser.tac +++ b/ds9/parsers/movieparser.tac @@ -13,6 +13,8 @@ %token ELFROM_ %token ELTO_ %token FRAME_ +%token GIF_ +%token MPEG_ %token NUMBER_ %token OSCILLATE_ %token REPEAT_ @@ -28,11 +30,23 @@ command : movie | movie {global ds9; if {!$ds9(init)} {YYERROR} else {yyclearin; YYACCEPT}} STRING_ ; -movie : STRING_ {ProcessCmdSet movie action frame; Movie $1} - | FRAME_ STRING_ {ProcessCmdSet movie action frame; Movie $2} - | SLICE_ STRING_ {ProcessCmdSet movie action slice; Movie $2} - | 3D_ STRING_ {ProcessCmdSet movie action 3d; Movie $2} - | 3D_ STRING_ opts {ProcessCmdSet movie action 3d; Movie $2} +movie : STRING_ {ProcessCmdSet2 movie action slice type mpeg; MovieCreate $1} + | action STRING_ {ProcessCmdSet2 movie action $1 type mpeg; MovieCreate $2} + | type STRING_ {ProcessCmdSet2 movie action slice type $1; MovieCreate $2} + | action type STRING_ {ProcessCmdSet2 movie action $1 type $2; MovieCreate $3} + + | 3D_ STRING_ {ProcessCmdSet2 movie action 3d type mpeg; MovieCreate $2} + | 3D_ type STRING_ {ProcessCmdSet2 movie action 3d type $2; MovieCreate $3} + | 3D_ STRING_ opts {ProcessCmdSet2 movie action 3d type mpeg; MovieCreate $2} + | 3D_ type STRING_ opts {ProcessCmdSet2 movie action 3d type $1; MovieCreate $2} + ; + +action : FRAME_ {set _ frame} + | SLICE_ {set _ slice} + ; + +type : MPEG_ {set _ mpeg} + | GIF_ {set _ gif} ; opts : opts opt diff --git a/ds9/parsers/movieparser.tcl b/ds9/parsers/movieparser.tcl index 4151b37..0d3eac5 100644 --- a/ds9/parsers/movieparser.tcl +++ b/ds9/parsers/movieparser.tcl @@ -61,580 +61,715 @@ proc movie::unsetupvalues {numsyms} { } array set movie::table { - 27:262,target 16 - 7:264,target 14 + 38:272 reduce 17:257 shift + 27:262,target 19 + 38:273 reduce + 17:258 shift + 41:268,target 26 + 11:263,target 19 + 6:259,target 15 27:0 reduce - 6:259,target 4 - 33:261,target 19 - 24:270,target 2 - 30:268,target 20 - 29:268,target 13 + 33:261,target 21 + 40:264,target 25 + 39:264,target 28 + 31:273,target 1 + 3:267,target 14 + 38:259,target 27 6:259 reduce - 15:257,target 29 + 36:272,target 24 26:259 reduce - 28:264,target 17 - 26:261 reduce - 6:0,target 3 - 0:275,target 6 - 26:262 reduce - 26:263 reduce - 27:259,target 16 - 26:264 reduce - 7:262,target 12 - 34:263,target 11 - 26:266 reduce - 24:0 reduce - 26:267 reduce - 26:268 reduce - 24:267,target 2 - 33:0,target 19 - 31:271,target 21 - 26:270 reduce - 26:271 reduce - 25:0,target 14 - 6:274 goto - 14:272,target 28 - 23:263,target 1 - 30:266,target 20 - 29:266,target 13 - 28:262,target 17 - 0:273,target 5 - 20:271,target 19 - 7:259,target 9 - 34:261,target 11 - 25:270,target 14 - 14:257 shift - 21:0 reduce - 11:258,target 24 - 14:258 shift - 31:268,target 21 - 16:257,target 30 - 23:261,target 1 - 30:264,target 20 - 29:264,target 13 - 3:259 shift - 28:259,target 17 - 20:268,target 17 - 23:259 reduce - 6:274,target 10 - 23:261 reduce - 23:262 reduce - 14:272 goto - 23:263 reduce - 25:267,target 14 - 23:264 reduce - 32:271,target 18 - 23:266 reduce - 23:267 reduce - 24:263,target 2 + 28:264,target 20 + 0:275,target 7 + 26:261 shift + 26:262 shift + 26:263 shift + 6:266 reduce + 26:264 shift + 27:259,target 19 + 34:263,target 22 + 6:267 reduce + 17:274 goto + 11:261,target 17 + 41:0,target 26 + 35:259 reduce + 26:268 shift + 40:262,target 25 + 39:262,target 28 + 35:261 reduce + 33:0,target 21 + 26:269 shift + 26:270 shift + 35:262 reduce + 16:259,target 8 + 35:263 reduce + 26:272 shift + 35:264 reduce + 26:273 shift + 36:270,target 24 + 36:269,target 24 + 43:273,target 25 + 28:262,target 18 + 11:280,target 26 + 35:268 reduce + 42:268,target 18 + 35:270 reduce + 35:269 reduce + 35:272 reduce + 34:261,target 22 + 26:281 goto + 41:264,target 26 + 35:273 reduce + 32:273,target 2 + 14:259 reduce + 42:0 reduce + 40:259,target 25 + 39:259,target 28 + 31:268,target 1 + 2:279,target 12 + 37:272,target 20 + 28:281,target 27 + 9:266,target 4 + 3:259 reduce + 23:257 shift + 0:271,target 6 + 28:259,target 11 + 35:263,target 23 + 26:272,target 24 + 3:266 reduce + 41:262,target 26 + 3:267 reduce + 38:0 reduce 32:259 reduce - 31:266,target 21 - 23:268 reduce + 37:270,target 20 + 37:269,target 20 32:261 reduce - 23:270 reduce 32:262 reduce - 23:271 reduce 32:263 reduce - 30:262,target 20 - 29:262,target 13 - 21:271,target 12 32:264 reduce - 7:276,target 20 - 32:266 reduce - 8:259,target 7 - 20:266,target 15 - 32:267 reduce - 26:270,target 15 + 43:268,target 21 + 8:259,target 4 + 35:261,target 23 + 26:269,target 22 + 26:270,target 23 + 42:264,target 18 + 41:259 reduce + 37:0,target 20 + 33:273,target 21 32:268 reduce - 12:258,target 24 + 14:0 reduce + 41:261 reduce 32:270 reduce - 30:0,target 20 - 29:0,target 13 - 32:271 reduce - 22:0,target 5 - 32:268,target 18 - 11:257 shift - 11:258 shift + 32:269 reduce + 30:0,target 9 + 29:0,target 5 + 41:262 reduce + 41:263 reduce + 41:259,target 26 + 35:0 reduce + 32:272 reduce + 32:268,target 2 + 14:0,target 7 + 41:264 reduce + 38:272,target 27 + 32:273 reduce 17:257,target 31 - 24:261,target 2 - 31:264,target 21 - 30:259,target 20 - 29:259,target 13 - 21:268,target 12 + 11:259 reduce + 31:264,target 1 + 11:261 shift + 11:262 shift + 41:268 reduce + 11:263 shift + 41:270 reduce + 41:269 reduce + 30:259,target 9 + 11:264 shift + 36:263,target 24 + 27:272,target 19 + 41:272 reduce 0:259 shift 0:260 shift 19:257 shift - 9:0 reduce - 20:264,target 14 - 26:267,target 15 - 20:259 reduce - 33:271,target 19 - 20:261 shift - 20:262 shift + 20:257 shift + 41:273 reduce + 0:266,target 4 + 11:273,target 25 + 19:258 shift + 20:258 shift + 11:0 reduce + 11:268 shift + 42:262,target 18 + 11:269 shift + 11:270 shift 32:0 reduce - 25:263,target 14 0:265 shift - 11:272 goto - 20:263 shift - 32:266,target 18 - 20:264 shift + 11:272 shift + 0:266 shift + 11:273 shift + 38:270,target 27 + 38:269,target 27 + 0:267 shift 8:259 reduce - 20:266 shift - 31:262,target 21 - 0:269 shift - 20:267 shift + 31:262,target 1 + 0:271 shift + 8:276,target 13 28:259 reduce - 20:268 shift - 28:261 reduce - 20:270 shift - 28:262 reduce - 0:273 goto - 9:259,target 8 - 20:271 shift - 21:266,target 12 - 28:263 reduce - 27:270,target 16 - 28:264 reduce - 6:0 reduce + 28:261 shift + 28:262 shift + 9:259,target 14 + 11:280 goto + 36:261,target 24 + 28:263 shift + 11:281 goto + 27:269,target 19 + 27:270,target 19 + 43:264,target 20 + 34:273,target 22 + 28:264 shift 0:275 goto - 13:258,target 24 - 20:262,target 12 - 28:266 reduce - 33:268,target 19 - 28:267 reduce - 28:268 reduce + 19:274 goto + 20:274 goto + 0:277 goto + 6:267,target 15 + 17:274,target 33 + 42:259,target 18 + 33:268,target 21 + 0:278 goto + 40:272,target 25 + 39:272,target 28 + 37:259 reduce + 28:268 shift + 0:279 goto + 7:0,target 0 + 18:257,target 31 28:0 reduce - 7:0,target 9 - 18:257,target 32 - 20:277 goto - 28:270 reduce - 25:261,target 14 - 32:264,target 18 - 28:271 reduce - 31:259,target 21 - 34:0,target 11 - 21:264,target 12 - 27:267,target 16 - 26:0,target 15 - 7:270,target 18 - 34:271,target 11 - 16:257 shift - 20:259,target 10 - 26:263,target 15 - 33:266,target 19 - 25:0 reduce - 32:262,target 18 - 23:271,target 1 - 28:270,target 17 - 25:259 reduce - 14:258,target 24 - 25:261 reduce - 21:262,target 12 - 25:262 reduce - 7:267,target 16 - 34:268,target 11 - 25:263 reduce - 25:264 reduce + 37:261 reduce + 28:270 shift + 28:269 shift + 37:262 reduce + 32:264,target 2 + 37:263 reduce + 28:272 shift + 37:264 reduce + 28:273 shift + 31:259,target 1 + 8:276 goto + 37:263,target 20 + 28:272,target 24 + 42:0,target 18 + 37:268 reduce + 34:0,target 22 + 37:270 reduce + 37:269 reduce + 26:0,target 12 + 43:262,target 18 + 28:280 goto + 37:272 reduce + 28:281 goto + 11:0,target 10 + 11:268,target 21 + 37:273 reduce + 26:263,target 19 + 16:259 reduce + 40:270,target 25 + 40:269,target 25 + 39:270,target 28 + 39:269,target 28 + 32:262,target 2 + 43:281,target 42 + 5:259 reduce + 25:257 shift + 37:261,target 20 + 28:270,target 23 + 28:269,target 22 + 35:273,target 23 + 18:274,target 34 + 43:259,target 13 + 34:268,target 22 + 41:272,target 26 0:260,target 2 0:259,target 1 - 19:257,target 33 - 26:261,target 15 - 22:0 reduce - 33:264,target 19 - 25:266 reduce - 25:267 reduce + 19:257,target 31 + 20:257,target 31 + 26:261,target 17 + 33:264,target 21 + 43:0 reduce 34:259 reduce - 25:268 reduce 34:261 reduce - 32:259,target 18 - 25:270 reduce - 23:268,target 1 + 32:259,target 2 + 38:263,target 27 34:262 reduce - 25:271 reduce 34:263 reduce 34:264 reduce - 28:267,target 17 - 34:266 reduce - 34:267 reduce - 21:259,target 12 + 2:266,target 4 + 0:278,target 9 + 43:259 reduce 34:268 reduce - 27:263,target 16 + 27:263,target 19 + 43:261 shift 34:270 reduce - 34:266,target 11 - 34:271 reduce - 13:257 shift - 33:262,target 19 - 24:271,target 2 - 13:258 shift - 10:259,target 22 - 23:266,target 1 - 31:0,target 21 - 30:270,target 20 - 29:270,target 13 - 23:0,target 1 + 34:269 reduce + 43:262 shift + 41:270,target 26 + 41:269,target 26 + 11:264,target 20 + 43:263 shift + 34:272 reduce + 43:264 shift + 34:273 reduce + 33:262,target 21 + 40:0 reduce + 39:0 reduce + 10:259,target 16 + 13:259 shift + 38:0,target 27 + 43:268 shift + 38:261,target 27 + 31:0,target 1 + 43:270 shift + 43:269 shift + 36:273,target 24 + 43:272 shift 2:259 shift + 19:274,target 35 + 20:274,target 36 + 22:257 shift + 43:273 shift + 35:268,target 23 + 42:272,target 18 1:259,target 6 - 27:261,target 16 - 7:263,target 13 - 34:264,target 11 - 13:272 goto - 33:259,target 19 - 24:268,target 2 + 21:257,target 37 + 27:261,target 19 + 34:264,target 22 + 11:262,target 18 + 2:266 shift + 36:0 reduce + 33:259,target 21 + 2:267 shift + 43:281 goto + 40:263,target 25 + 39:263,target 28 + 31:272,target 1 31:259 reduce - 23:264,target 1 + 3:266,target 14 31:261 reduce - 30:267,target 20 - 29:267,target 13 31:262 reduce 31:263 reduce 31:264 reduce - 28:263,target 17 - 31:266 reduce - 31:267 reduce - 7:261,target 11 - 34:262,target 11 + 28:263,target 19 + 11:281,target 27 + 42:270,target 18 + 42:269,target 18 + 40:259 reduce + 39:259 reduce + 34:262,target 22 31:268 reduce - 25:271,target 14 + 2:279 goto + 40:261 reduce + 39:261 reduce 31:270 reduce + 31:269 reduce + 11:259,target 10 + 40:262 reduce + 39:262 reduce 33:0 reduce - 31:271 reduce - 24:266,target 2 - 31:270,target 21 + 40:263 reduce + 39:263 reduce + 31:272 reduce + 40:264 reduce + 40:261,target 25 + 39:264 reduce + 39:261,target 28 + 31:273 reduce + 31:270,target 1 + 31:269,target 1 + 37:273,target 20 10:259 shift - 23:262,target 1 - 8:0,target 7 + 8:0,target 3 + 9:267,target 5 + 40:268 reduce + 39:268 reduce + 36:268,target 24 1:0,target 6 - 2:259,target 7 + 43:272,target 24 + 40:270 reduce + 40:269 reduce + 39:270 reduce + 39:269 reduce + 2:259,target 11 + 22:257,target 38 28:261,target 17 - 20:270,target 18 - 7:0 reduce + 40:272 reduce + 39:272 reduce + 35:264,target 23 + 7:0 accept 18:257 shift - 34:259,target 11 - 25:268,target 14 + 26:273,target 25 + 40:273 reduce + 39:273 reduce + 18:258 shift + 43:0,target 13 + 34:259,target 22 + 41:263,target 26 + 35:0,target 23 + 32:272,target 2 30:0 reduce 29:0 reduce - 11:257,target 23 - 27:0,target 16 - 20:0,target 10 - 24:264,target 2 - 31:267,target 21 - 7:259 reduce - 7:261 shift - 23:259,target 1 - 30:263,target 20 - 29:263,target 13 + 27:0,target 19 + 28:280,target 43 27:259 reduce - 7:262 shift 27:261 reduce - 7:263 shift - 7:277,target 21 + 43:270,target 23 + 43:269,target 22 27:262 reduce - 7:264 shift 27:263 reduce - 0:269,target 4 - 20:267,target 16 + 35:262,target 23 27:264 reduce - 26:271,target 15 - 7:266 shift - 7:267 shift - 27:266 reduce - 7:268 shift - 27:267 reduce + 12:259,target 28 + 18:274 goto 26:0 reduce - 25:266,target 14 - 7:270 shift - 32:270,target 18 + 41:261,target 26 + 36:259 reduce + 32:270,target 2 + 32:269,target 2 27:268 reduce - 7:271 shift + 38:273,target 27 + 36:261 reduce + 17:258,target 32 + 27:269 reduce 27:270 reduce - 27:271 reduce - 24:262,target 2 - 7:276 goto - 3:259,target 8 - 30:261,target 20 - 29:261,target 13 - 7:277 goto - 21:270,target 12 + 36:262 reduce + 36:263 reduce + 27:272 reduce + 37:268,target 20 + 36:264 reduce + 27:273 reduce + 3:259,target 14 + 23:257,target 39 + 36:264,target 24 + 27:273,target 19 + 36:268 reduce 1:0 reduce - 26:268,target 15 - 12:257,target 23 - 15:257 shift - 23:0 reduce - 25:264,target 14 - 32:267,target 18 - 5:0,target 0 - 24:259,target 2 - 31:263,target 21 - 4:259 shift - 21:267,target 12 - 27:271,target 16 - 24:259 reduce - 24:261 reduce - 32:0,target 18 + 36:270 reduce + 36:269 reduce + 0:267,target 5 + 35:259,target 23 + 26:268,target 21 + 42:263,target 18 + 36:272 reduce + 33:272,target 21 + 36:273 reduce + 15:259 shift + 31:263,target 1 + 4:259 reduce + 24:257 shift + 36:262,target 24 + 40:0,target 25 + 39:0,target 28 + 13:259,target 29 + 32:0,target 2 0:265,target 3 - 11:272,target 25 - 20:263,target 13 - 24:262 reduce - 26:266,target 15 - 24:0,target 2 - 24:263 reduce - 33:270,target 19 - 20:0 reduce - 24:264 reduce - 25:262,target 14 - 24:266 reduce - 24:267 reduce + 11:272,target 24 + 42:261,target 18 + 33:270,target 21 + 33:269,target 21 + 16:0,target 8 + 40:273,target 25 + 39:273,target 28 + 18:258,target 32 + 41:0 reduce + 38:268,target 27 33:259 reduce - 24:268 reduce + 9:279,target 15 33:261 reduce - 4:259,target 9 - 24:270 reduce + 4:259,target 17 + 24:257,target 40 33:262 reduce - 31:261,target 21 - 24:271 reduce + 31:261,target 1 + 37:264,target 20 33:263 reduce + 28:273,target 25 33:264 reduce - 33:266 reduce - 27:268,target 16 - 7:271,target 19 - 33:267 reduce - 13:257,target 23 + 36:259,target 24 + 27:268,target 19 + 43:263,target 19 + 34:272,target 22 + 42:259 reduce 33:268 reduce - 20:261,target 11 + 11:269,target 22 + 11:270,target 23 + 42:261 reduce 33:270 reduce - 26:264,target 15 - 33:271 reduce - 33:267,target 19 - 12:257 shift - 25:259,target 14 - 12:258 shift - 32:263,target 18 - 28:271,target 17 + 33:269 reduce + 6:266,target 15 + 16:0 reduce + 26:264,target 20 + 42:262 reduce + 42:263 reduce + 33:272 reduce + 42:264 reduce + 37:0 reduce + 33:273 reduce + 32:263,target 2 + 12:259 shift + 42:268 reduce + 42:270 reduce + 42:269 reduce + 37:262,target 20 + 14:259,target 7 + 42:272 reduce 1:259 reduce - 12:272,target 26 - 21:263,target 12 - 27:266,target 16 - 7:268,target 17 - 34:270,target 11 - 21:259 reduce - 9:0,target 8 - 21:261 reduce - 26:262,target 15 - 21:262 reduce - 12:272 goto - 21:263 reduce + 21:257 shift + 42:273 reduce + 43:261,target 17 + 34:270,target 22 + 34:269,target 22 + 41:273,target 26 + 19:258,target 32 + 20:258,target 32 + 26:262,target 18 + 40:268,target 25 + 39:268,target 28 34:0 reduce - 21:264 reduce - 32:261,target 18 - 9:259 reduce - 21:266 reduce - 23:270,target 1 - 21:267 reduce + 5:259,target 16 + 25:257,target 41 + 32:261,target 2 + 9:259 shift + 38:264,target 27 30:259 reduce - 29:259 reduce - 21:268 reduce - 30:261 reduce - 29:261 reduce - 21:270 reduce - 30:262 reduce - 29:262 reduce - 28:268,target 17 - 28:0,target 17 - 20:277,target 34 - 21:271 reduce - 30:263 reduce - 29:263 reduce - 14:257,target 23 - 21:0,target 12 - 30:264 reduce - 29:264 reduce - 21:261,target 12 - 27:264,target 16 - 7:266,target 15 + 36:0,target 24 + 2:267,target 5 + 37:259,target 20 + 28:268,target 21 + 0:279,target 10 + 28:0,target 11 + 35:272,target 23 + 26:281,target 42 + 9:266 shift 8:0 reduce - 34:267,target 11 - 30:266 reduce - 29:266 reduce - 30:267 reduce - 29:267 reduce - 30:268 reduce - 29:268 reduce - 26:259,target 15 - 33:263,target 19 + 9:267 shift + 27:264,target 19 + 38:259 reduce + 26:259,target 12 + 38:261 reduce + 33:263,target 21 31:0 reduce - 30:270 reduce - 29:270 reduce - 30:271 reduce - 29:271 reduce - 23:267,target 1 - 30:271,target 20 - 29:271,target 13 - 13:272,target 27 - 28:266,target 17 - 5:0 accept + 38:262 reduce + 38:263 reduce + 38:264 reduce + 38:262,target 27 + 15:259,target 30 + 38:268 reduce + 0:277,target 8 + 9:279 goto + 38:270 reduce + 38:269 reduce + 35:270,target 23 + 35:269,target 23 + 42:273,target 18 } array set movie::rules { - 9,l 275 - 11,l 276 - 15,l 277 - 20,l 277 - 19,l 277 - 2,l 272 - 6,l 275 - 12,l 276 - 16,l 277 - 21,l 277 - 3,l 273 - 7,l 275 + 27,l 281 + 9,l 277 + 11,l 277 + 15,l 278 + 20,l 281 + 19,l 280 + 2,l 274 + 24,l 281 + 6,l 277 + 28,l 281 + 12,l 277 + 16,l 279 + 21,l 281 + 3,l 275 + 25,l 281 + 7,l 277 13,l 277 - 0,l 278 - 17,l 277 - 4,l 274 - 8,l 275 - 10,l 275 - 14,l 277 - 18,l 277 - 1,l 272 - 5,l 273 + 0,l 282 + 17,l 279 + 22,l 281 + 4,l 276 + 26,l 281 + 8,l 277 + 10,l 277 + 14,l 278 + 18,l 280 + 1,l 274 + 23,l 281 + 5,l 275 } array set movie::rules { + 23,dc 2 5,dc 3 0,dc 1 - 17,dc 2 - 12,dc 1 + 17,dc 1 + 12,dc 3 + 26,dc 2 8,dc 2 21,dc 2 3,dc 1 - 15,dc 2 - 10,dc 3 + 15,dc 1 + 10,dc 2 + 24,dc 2 6,dc 1 18,dc 2 1,dc 1 - 13,dc 2 - 9,dc 2 + 13,dc 4 + 27,dc 2 + 9,dc 3 + 22,dc 2 4,dc 0 - 16,dc 2 - 11,dc 2 + 16,dc 1 + 11,dc 3 + 25,dc 2 7,dc 2 20,dc 2 - 19,dc 2 + 19,dc 1 2,dc 1 - 14,dc 2 + 14,dc 1 + 28,dc 2 } array set movie::rules { - 13,line 52 - 7,line 42 - 10,line 45 - 4,line 37 - 18,line 57 - 1,line 33 - 15,line 54 - 9,line 44 - 12,line 49 - 6,line 41 - 21,line 60 - 3,line 37 - 17,line 56 + 13,line 51 + 25,line 71 + 7,line 44 + 10,line 48 + 22,line 68 + 4,line 39 + 18,line 62 + 1,line 35 + 15,line 55 + 27,line 73 + 9,line 47 + 12,line 50 + 24,line 70 + 6,line 43 + 21,line 67 + 3,line 39 + 17,line 59 4,e 1 - 14,line 53 - 8,line 43 - 11,line 48 - 5,line 38 - 20,line 59 - 19,line 58 - 2,line 34 - 16,line 55 + 14,line 54 + 26,line 72 + 8,line 45 + 11,line 49 + 23,line 69 + 5,line 40 + 20,line 66 + 19,line 63 + 2,line 36 + 16,line 58 + 28,line 74 } array set movie::lr1_table { - 14,trans {{257 23} {258 24} {272 28}} + 35 {{23 {0 259 261 262 263 264 268 269 270 272 273} 2}} + 36 {{24 {0 259 261 262 263 264 268 269 270 272 273} 2}} + 14,trans {} 33,trans {} - 18,trans {{257 32}} + 37 {{20 {0 259 261 262 263 264 268 269 270 272 273} 2}} + 38 {{27 {0 259 261 262 263 264 268 269 270 272 273} 2}} + 40 {{25 {0 259 261 262 263 264 268 269 270 272 273} 2}} + 39 {{28 {0 259 261 262 263 264 268 269 270 272 273} 2}} + 41 {{26 {0 259 261 262 263 264 268 269 270 272 273} 2}} + 18,trans {{257 31} {258 32} {274 34}} 1,trans {} - 23,trans {} + 37,trans {} + 42 {{18 {0 259 261 262 263 264 268 269 270 272 273} 2}} + 43 {{13 {0 259} 4} {18 {0 259 261 262 263 264 268 269 270 272 273} 1} {20 {0 259 261 262 263 264 268 269 270 272 273} 0} {21 {0 259 261 262 263 264 268 269 270 272 273} 0} {22 {0 259 261 262 263 264 268 269 270 272 273} 0} {23 {0 259 261 262 263 264 268 269 270 272 273} 0} {24 {0 259 261 262 263 264 268 269 270 272 273} 0} {25 {0 259 261 262 263 264 268 269 270 272 273} 0} {26 {0 259 261 262 263 264 268 269 270 272 273} 0} {27 {0 259 261 262 263 264 268 269 270 272 273} 0} {28 {0 259 261 262 263 264 268 269 270 272 273} 0}} + 23,trans {{257 39}} 5,trans {} + 42,trans {} 27,trans {} - 9,trans {} - 13,trans {{257 23} {258 24} {272 27}} + 9,trans {{259 14} {266 4} {267 5} {279 15}} + 13,trans {{259 29}} 32,trans {} - 17,trans {{257 31}} - 0,trans {{259 1} {260 2} {265 3} {269 4} {273 5} {275 6}} - 22,trans {} - 4,trans {{259 9}} - 26,trans {} - 8,trans {} - 12,trans {{257 23} {258 24} {272 26}} + 17,trans {{257 31} {258 32} {274 33}} + 0,trans {{259 1} {260 2} {265 3} {266 4} {267 5} {271 6} {275 7} {277 8} {278 9} {279 10}} + 36,trans {} + 22,trans {{257 38}} + 4,trans {} + 41,trans {} + 26,trans {{261 17} {262 18} {263 19} {264 20} {268 21} {269 22} {270 23} {272 24} {273 25} {281 42}} + 8,trans {{276 13}} + 12,trans {{259 28}} 31,trans {} - 16,trans {{257 30}} - 21,trans {} - 3,trans {{259 8}} - 10 {{5 0 2}} - 11 {{14 {0 259 261 262 263 264 266 267 268 270 271} 1} {1 {0 259 261 262 263 264 266 267 268 270 271} 0} {2 {0 259 261 262 263 264 266 267 268 270 271} 0}} - 25,trans {} - 12 {{15 {0 259 261 262 263 264 266 267 268 270 271} 1} {1 {0 259 261 262 263 264 266 267 268 270 271} 0} {2 {0 259 261 262 263 264 266 267 268 270 271} 0}} - 7,trans {{261 11} {262 12} {263 13} {264 14} {266 15} {267 16} {268 17} {270 18} {271 19} {276 20} {277 21}} - 13 {{16 {0 259 261 262 263 264 266 267 268 270 271} 1} {1 {0 259 261 262 263 264 266 267 268 270 271} 0} {2 {0 259 261 262 263 264 266 267 268 270 271} 0}} - 14 {{17 {0 259 261 262 263 264 266 267 268 270 271} 1} {1 {0 259 261 262 263 264 266 267 268 270 271} 0} {2 {0 259 261 262 263 264 266 267 268 270 271} 0}} - 15 {{13 {0 259 261 262 263 264 266 267 268 270 271} 1}} - 11,trans {{257 23} {258 24} {272 25}} + 16,trans {} + 35,trans {} + 21,trans {{257 37}} + 3,trans {} + 40,trans {} + 39,trans {} + 10 {{8 {0 259} 1}} + 11 {{10 {0 259} 2} {12 {0 259} 2} {18 {0 259 261 262 263 264 268 269 270 272 273} 0} {19 {0 259 261 262 263 264 268 269 270 272 273} 0} {20 {0 259 261 262 263 264 268 269 270 272 273} 0} {21 {0 259 261 262 263 264 268 269 270 272 273} 0} {22 {0 259 261 262 263 264 268 269 270 272 273} 0} {23 {0 259 261 262 263 264 268 269 270 272 273} 0} {24 {0 259 261 262 263 264 268 269 270 272 273} 0} {25 {0 259 261 262 263 264 268 269 270 272 273} 0} {26 {0 259 261 262 263 264 268 269 270 272 273} 0} {27 {0 259 261 262 263 264 268 269 270 272 273} 0} {28 {0 259 261 262 263 264 268 269 270 272 273} 0}} + 25,trans {{257 41}} + 12 {{11 {0 259} 2} {13 {0 259} 2}} + 7,trans {} + 13 {{5 0 2}} + 14 {{7 {0 259} 2}} + 15 {{9 {0 259} 2}} + 11,trans {{261 17} {262 18} {263 19} {264 20} {268 21} {269 22} {270 23} {272 24} {273 25} {280 26} {281 27}} 30,trans {} 29,trans {} - 16 {{20 {0 259 261 262 263 264 266 267 268 270 271} 1}} - 0 {{0 0 0} {3 0 0} {5 0 0} {6 {0 259} 0} {7 {0 259} 0} {8 {0 259} 0} {9 {0 259} 0} {10 {0 259} 0}} - 17 {{21 {0 259 261 262 263 264 266 267 268 270 271} 1}} + 16 {{8 {0 259} 2}} + 0 {{0 0 0} {3 0 0} {5 0 0} {6 {0 259} 0} {7 {0 259} 0} {8 {0 259} 0} {9 {0 259} 0} {10 {0 259} 0} {11 {0 259} 0} {12 {0 259} 0} {13 {0 259} 0} {14 {259 266 267} 0} {15 {259 266 267} 0} {16 259 0} {17 259 0}} + 17 {{21 {0 259 261 262 263 264 268 269 270 272 273} 1} {1 {0 259 261 262 263 264 268 269 270 272 273} 0} {2 {0 259 261 262 263 264 268 269 270 272 273} 0}} 1 {{6 {0 259} 1}} - 18 {{18 {0 259 261 262 263 264 266 267 268 270 271} 1}} - 2 {{9 {0 259} 1} {10 {0 259} 1}} - 19 {{19 {0 259 261 262 263 264 266 267 268 270 271} 1}} - 20 {{10 {0 259} 3} {11 {0 259 261 262 263 264 266 267 268 270 271} 1} {13 {0 259 261 262 263 264 266 267 268 270 271} 0} {14 {0 259 261 262 263 264 266 267 268 270 271} 0} {15 {0 259 261 262 263 264 266 267 268 270 271} 0} {16 {0 259 261 262 263 264 266 267 268 270 271} 0} {17 {0 259 261 262 263 264 266 267 268 270 271} 0} {18 {0 259 261 262 263 264 266 267 268 270 271} 0} {19 {0 259 261 262 263 264 266 267 268 270 271} 0} {20 {0 259 261 262 263 264 266 267 268 270 271} 0} {21 {0 259 261 262 263 264 266 267 268 270 271} 0}} - 15,trans {{257 29}} + 18 {{22 {0 259 261 262 263 264 268 269 270 272 273} 1} {1 {0 259 261 262 263 264 268 269 270 272 273} 0} {2 {0 259 261 262 263 264 268 269 270 272 273} 0}} + 2 {{10 {0 259} 1} {11 {0 259} 1} {12 {0 259} 1} {13 {0 259} 1} {16 259 0} {17 259 0}} + 19 {{23 {0 259 261 262 263 264 268 269 270 272 273} 1} {1 {0 259 261 262 263 264 268 269 270 272 273} 0} {2 {0 259 261 262 263 264 268 269 270 272 273} 0}} + 20 {{24 {0 259 261 262 263 264 268 269 270 272 273} 1} {1 {0 259 261 262 263 264 268 269 270 272 273} 0} {2 {0 259 261 262 263 264 268 269 270 272 273} 0}} + 15,trans {{259 30}} 34,trans {} - 3 {{7 {0 259} 1}} - 21 {{12 {0 259 261 262 263 264 266 267 268 270 271} 1}} - 4 {{8 {0 259} 1}} - 22 {{5 0 3}} - 5 {{0 0 1}} - 23 {{1 {0 259 261 262 263 264 266 267 268 270 271} 1}} - 20,trans {{261 11} {262 12} {263 13} {264 14} {266 15} {267 16} {268 17} {270 18} {271 19} {277 34}} - 19,trans {{257 33}} - 2,trans {{259 7}} - 6 {{3 0 1} {5 0 1} {4 259 0}} - 24 {{2 {0 259 261 262 263 264 266 267 268 270 271} 1}} - 7 {{9 {0 259} 2} {10 {0 259} 2} {11 {0 259 261 262 263 264 266 267 268 270 271} 0} {12 {0 259 261 262 263 264 266 267 268 270 271} 0} {13 {0 259 261 262 263 264 266 267 268 270 271} 0} {14 {0 259 261 262 263 264 266 267 268 270 271} 0} {15 {0 259 261 262 263 264 266 267 268 270 271} 0} {16 {0 259 261 262 263 264 266 267 268 270 271} 0} {17 {0 259 261 262 263 264 266 267 268 270 271} 0} {18 {0 259 261 262 263 264 266 267 268 270 271} 0} {19 {0 259 261 262 263 264 266 267 268 270 271} 0} {20 {0 259 261 262 263 264 266 267 268 270 271} 0} {21 {0 259 261 262 263 264 266 267 268 270 271} 0}} - 25 {{14 {0 259 261 262 263 264 266 267 268 270 271} 2}} - 8 {{7 {0 259} 2}} - 26 {{15 {0 259 261 262 263 264 266 267 268 270 271} 2}} - 9 {{8 {0 259} 2}} - 27 {{16 {0 259 261 262 263 264 266 267 268 270 271} 2}} - 24,trans {} - 6,trans {{274 10}} - 28 {{17 {0 259 261 262 263 264 266 267 268 270 271} 2}} - 29 {{13 {0 259 261 262 263 264 266 267 268 270 271} 2}} - 30 {{20 {0 259 261 262 263 264 266 267 268 270 271} 2}} - 31 {{21 {0 259 261 262 263 264 266 267 268 270 271} 2}} - 32 {{18 {0 259 261 262 263 264 266 267 268 270 271} 2}} - 10,trans {{259 22}} - 28,trans {} - 33 {{19 {0 259 261 262 263 264 266 267 268 270 271} 2}} - 34 {{11 {0 259 261 262 263 264 266 267 268 270 271} 2}} + 3 {{14 {259 266 267} 1}} + 21 {{20 {0 259 261 262 263 264 268 269 270 272 273} 1}} + 4 {{17 259 1}} + 22 {{27 {0 259 261 262 263 264 268 269 270 272 273} 1}} + 5 {{16 259 1}} + 23 {{28 {0 259 261 262 263 264 268 269 270 272 273} 1}} + 20,trans {{257 31} {258 32} {274 36}} + 19,trans {{257 31} {258 32} {274 35}} + 6 {{15 {259 266 267} 1}} + 2,trans {{259 11} {266 4} {267 5} {279 12}} + 24 {{25 {0 259 261 262 263 264 268 269 270 272 273} 1}} + 38,trans {} + 7 {{0 0 1}} + 25 {{26 {0 259 261 262 263 264 268 269 270 272 273} 1}} + 8 {{3 0 1} {5 0 1} {4 259 0}} + 26 {{12 {0 259} 3} {18 {0 259 261 262 263 264 268 269 270 272 273} 1} {20 {0 259 261 262 263 264 268 269 270 272 273} 0} {21 {0 259 261 262 263 264 268 269 270 272 273} 0} {22 {0 259 261 262 263 264 268 269 270 272 273} 0} {23 {0 259 261 262 263 264 268 269 270 272 273} 0} {24 {0 259 261 262 263 264 268 269 270 272 273} 0} {25 {0 259 261 262 263 264 268 269 270 272 273} 0} {26 {0 259 261 262 263 264 268 269 270 272 273} 0} {27 {0 259 261 262 263 264 268 269 270 272 273} 0} {28 {0 259 261 262 263 264 268 269 270 272 273} 0}} + 9 {{7 {0 259} 1} {9 {0 259} 1} {16 259 0} {17 259 0}} + 27 {{19 {0 259 261 262 263 264 268 269 270 272 273} 1}} + 24,trans {{257 40}} + 6,trans {} + 28 {{11 {0 259} 3} {13 {0 259} 3} {18 {0 259 261 262 263 264 268 269 270 272 273} 0} {19 {0 259 261 262 263 264 268 269 270 272 273} 0} {20 {0 259 261 262 263 264 268 269 270 272 273} 0} {21 {0 259 261 262 263 264 268 269 270 272 273} 0} {22 {0 259 261 262 263 264 268 269 270 272 273} 0} {23 {0 259 261 262 263 264 268 269 270 272 273} 0} {24 {0 259 261 262 263 264 268 269 270 272 273} 0} {25 {0 259 261 262 263 264 268 269 270 272 273} 0} {26 {0 259 261 262 263 264 268 269 270 272 273} 0} {27 {0 259 261 262 263 264 268 269 270 272 273} 0} {28 {0 259 261 262 263 264 268 269 270 272 273} 0}} + 43,trans {{261 17} {262 18} {263 19} {264 20} {268 21} {269 22} {270 23} {272 24} {273 25} {281 42}} + 29 {{5 0 3}} + 30 {{9 {0 259} 3}} + 31 {{1 {0 259 261 262 263 264 268 269 270 272 273} 1}} + 32 {{2 {0 259 261 262 263 264 268 269 270 272 273} 1}} + 10,trans {{259 16}} + 28,trans {{261 17} {262 18} {263 19} {264 20} {268 21} {269 22} {270 23} {272 24} {273 25} {280 43} {281 27}} + 33 {{21 {0 259 261 262 263 264 268 269 270 272 273} 2}} + 34 {{22 {0 259 261 262 263 264 268 269 270 272 273} 2}} } array set movie::token_id_table { + 280,title {} + 279,title {} 264,line 18 270,t 0 269,t 0 - 276,line 47 + 276,line 39 265,title FRAME 274,t 1 261,line 15 257,t 0 - 270,title SLFROM - 269,title SLICE - 273,line 36 + 270,title REPEAT + 269,title OSCILLATE + 273,line 27 278,t 1 257,line 7 262,t 0 @@ -645,78 +780,92 @@ array set movie::token_id_table { 260,title 3D 266,t 0 278,title {} + 282,line 75 error error 271,t 0 264,title ELTO 266,line 20 - 278,line 61 + 278,line 53 275,t 1 - error,line 31 - 268,title REPEAT + error,line 33 + 268,title NUMBER 258,t 0 263,line 17 error,title {} - 275,line 40 - 273,title {} + 280,t 1 + 279,t 1 + 275,line 38 + 273,title SLTO 263,t 0 259,line 10 260,line 14 258,title float 277,title {} - 272,line 32 + 272,line 26 267,t 0 263,title ELFROM - 272,t 1 + 282,title {} + 272,t 0 268,line 22 - 267,title OSCILLATE + 267,title MPEG 257 INT_ + 281,line 65 276,t 1 258 REAL_ 259,t 0 259 STRING_ 260 3D_ 260,t 0 - 272,title {} + 272,title SLFROM 261 AZFROM_ 265,line 19 262 AZTO_ + 281,t 1 263 ELFROM_ - 277,line 51 + 277,line 42 257,title integer 264 ELTO_ 264,t 0 276,title {} 265 FRAME_ 262,line 16 - 266 NUMBER_ - 267 OSCILLATE_ + 266 GIF_ + 267 MPEG_ 0,t 0 0 {$} 262,title AZTO - 268 REPEAT_ + 268 NUMBER_ 268,t 0 - 274,line 37 - 270 SLFROM_ - 269 SLICE_ + 281,title {} + 274,line 34 + 270 REPEAT_ + 269 OSCILLATE_ error,t 0 - 271 SLTO_ - 272 numeric + 271 SLICE_ + 272 SLFROM_ 258,line 8 - 273,t 1 - 273 command - 266,title NUMBER - 274 @PSEUDO1 - 275 movie + 273,t 0 + 273 SLTO_ + 266,title GIF + 274 numeric + 275 command 271,line 25 - 276 opts + 276 @PSEUDO1 277,t 1 - 277 opt - 271,title SLTO - 278 start' + 277 movie + 271,title SLICE + 278 action 261,t 0 + 280 opts + 279 type + 281 opt 267,line 21 + 282,t 1 + 282 start' 275,title {} 265,t 0 + 280,line 61 + 279,line 57 261,title AZFROM } @@ -817,20 +966,27 @@ proc movie::yyparse {} { 1 { set _ $1 } 2 { set _ $1 } 4 { global ds9; if {!$ds9(init)} {YYERROR} else {yyclearin; YYACCEPT} } - 6 { ProcessCmdSet movie action frame; Movie $1 } - 7 { ProcessCmdSet movie action frame; Movie $2 } - 8 { ProcessCmdSet movie action slice; Movie $2 } - 9 { ProcessCmdSet movie action 3d; Movie $2 } - 10 { ProcessCmdSet movie action 3d; Movie $2 } - 13 { ProcessCmdSet movie number $2 } - 14 { ProcessCmdSet movie azfrom $2 } - 15 { ProcessCmdSet movie azto $2 } - 16 { ProcessCmdSet movie elfrom $2 } - 17 { ProcessCmdSet movie elto $2 } - 18 { ProcessCmdSet movie slfrom $2 } - 19 { ProcessCmdSet movie slto $2 } - 20 { ProcessCmdSet movie repeat oscillate; ProcessCmdSet movie repeat,num $2 } - 21 { ProcessCmdSet movie repeat repeat; ProcessCmdSet movie repeat,num $2 } + 6 { ProcessCmdSet2 movie action slice type mpeg; MovieCreate $1 } + 7 { ProcessCmdSet2 movie action $1 type mpeg; MovieCreate $2 } + 8 { ProcessCmdSet2 movie action slice type $1; MovieCreate $2 } + 9 { ProcessCmdSet2 movie action $1 type $2; MovieCreate $3 } + 10 { ProcessCmdSet2 movie action 3d type mpeg; MovieCreate $2 } + 11 { ProcessCmdSet2 movie action 3d type $2; MovieCreate $3 } + 12 { ProcessCmdSet2 movie action 3d type mpeg; MovieCreate $2 } + 13 { ProcessCmdSet2 movie action 3d type $1; MovieCreate $2 } + 14 { set _ frame } + 15 { set _ slice } + 16 { set _ mpeg } + 17 { set _ gif } + 20 { ProcessCmdSet movie number $2 } + 21 { ProcessCmdSet movie azfrom $2 } + 22 { ProcessCmdSet movie azto $2 } + 23 { ProcessCmdSet movie elfrom $2 } + 24 { ProcessCmdSet movie elto $2 } + 25 { ProcessCmdSet movie slfrom $2 } + 26 { ProcessCmdSet movie slto $2 } + 27 { ProcessCmdSet movie repeat oscillate; ProcessCmdSet movie repeat,num $2 } + 28 { ProcessCmdSet movie repeat repeat; ProcessCmdSet movie repeat,num $2 } } unsetupvalues $dc # pop off tokens from the stack if normal rule diff --git a/make.include b/make.include index 7782ac8..275b696 100644 --- a/make.include +++ b/make.include @@ -1,7 +1,7 @@ # tcl 8.6.9 # tk 8.6.9 # tcliis 1.0 -# tcllib 1.18 +# tcllib 1.19 # tclsignal 1.4 # tclxml 3.2 # tclzipfs 1.0 |