summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ds9/doc/ref/command.html102
-rw-r--r--ds9/doc/ref/samp.html109
-rw-r--r--ds9/doc/ref/xpa.html121
-rw-r--r--ds9/library/movie.tcl167
-rw-r--r--ds9/library/saveimage.tcl2
-rw-r--r--ds9/parsers/movielex.fcl2
-rw-r--r--ds9/parsers/movielex.tcl122
-rw-r--r--ds9/parsers/movieparser.tab.tcl14
-rw-r--r--ds9/parsers/movieparser.tac24
-rw-r--r--ds9/parsers/movieparser.tcl1158
-rw-r--r--make.include2
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 @@
+
+
[&lt;ref&gt;] [filter &lt;string&gt;]</tt><tt><br>
</tt><tt> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; [&lt;ref&gt;]
[filter load &lt;filename&gt;]</tt><tt><br>
@@ -468,6 +470,8 @@
+
+
[&lt;ref&gt;] [match]</tt><tt><br>
</tt><tt> </tt><tt> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt>
</tt><tt>[&lt;ref&gt;] [match error &lt;value&gt;
@@ -488,6 +492,8 @@
+
+
[&lt;ref&gt;] [panto yes|no]</tt><tt><br>
</tt><tt> </tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
[&lt;ref&gt;] [plot &lt;xcol&gt; &lt;ycol&gt; &lt;xerrcol&gt;
@@ -516,6 +522,8 @@
+
+
[&lt;ref&gt;] [save &lt;filename&gt;]</tt><tt><br>
</tt><tt> </tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
[&lt;ref&gt;] [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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -552,6 +562,8 @@
+
+
[&lt;ref&gt;] [symbol add| [#] remove]</tt><tt><br>
</tt><tt> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [&lt;ref&gt;]
[symbol save|load &lt;filename&gt;]</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>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [lock
[yes|no]]</tt><br>
@@ -833,6 +849,8 @@
+
+
&lt;coordsys&gt;]<br>
&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [lock
&lt;coordsys&gt;|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 &lt;filename&gt;</tt><tt>.tiff
@@ -1038,6 +1060,8 @@
+
+
[none|jpeg|packbits|deflate]</tt><tt><br>
</tt><tt> </tt><tt>&nbsp;</tt><tt><br>
</tt><tt> Example:</tt><tt><br>
@@ -1505,12 +1529,16 @@
+
+
&lt;coordsys&gt;]</tt><tt> </tt><tt><br>
</tt><tt> </tt><tt> </tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+
[crop &lt;coordsys&gt;]</tt><tt><br>
</tt><tt> </tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [slice
&lt;coordsys&gt;]</tt><tt><br>
@@ -1526,6 +1554,8 @@
+
+
[3d]</tt><tt><br>
</tt><tt> &nbsp;</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] &lt;filename&gt;<br>
- -movie 3d &lt;filename&gt;
+ 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] &lt;filename&gt;<br>
+ -movie 3d [mpeg|gif] &lt;filename&gt;
[number|azfrom|azto|elfrom|elto|slfrom|slto|oscillate|repeat
&lt;#&gt;]<br>
&nbsp;<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>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -1655,6 +1688,8 @@
+
+
[crosshair]<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -1663,6 +1698,8 @@
+
+
[open|close]<br>
&nbsp;<br>
Example:<br>
@@ -1775,6 +1812,8 @@
+
+
[yes|open]<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
[no|close]<br>
@@ -1808,6 +1847,8 @@
+
+
load &lt;filename&gt; xy|xyex|xyey|xyexey]</tt><tt><br>
</tt><tt> </tt><tt> </tt><tt>&nbsp;&nbsp; &nbsp;&nbsp;
[[&lt;plotname&gt;] save &lt;filename&gt;]</tt><tt><br>
@@ -1825,6 +1866,8 @@
+
+
loadconfig &lt;filename&gt;]</tt><tt><br>
</tt><tt> </tt><tt> </tt><tt>&nbsp; &nbsp; &nbsp;
[[&lt;plotname&gt;] saveconfig &lt;filename&gt;]</tt><tt><br>
@@ -1849,12 +1892,16 @@
+
+
close</tt><tt>]</tt><tt><br>
</tt><tt> </tt><tt> </tt><tt>&nbsp; &nbsp; &nbsp;</tt><tt> </tt><tt>[[&lt;plotname&gt;]
+
+
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>&nbsp;&nbsp; &nbsp;&nbsp;
[[&lt;plotname&gt;] 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> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [level 1|2|3]</tt><tt><br>
- </tt><tt> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [resolution
- </tt><tt><tt>72|screen|96|144|150|225|300|600|1200]</tt></tt><tt><br>
+ </tt><tt> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [resolution </tt><tt><tt>72|screen|96|144|150|225|300|600|1200]</tt></tt><tt><br>
</tt><tt> &nbsp;</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>&nbsp;<br>
Example:<br>
@@ -2492,6 +2546,8 @@
+
+
[crosshair]</tt><tt><br>
</tt><tt> </tt><tt>&nbsp;&nbsp;&nbsp;&nbsp; [&lt;ref&gt;] [export
sb|tsv &lt;filename&gt;]</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 &lt;value&gt;]<br>
</tt></tt></tt></tt></tt></tt> <tt><tt><tt><tt><tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -2637,6 +2697,8 @@
+
+
[sigmaminor &lt;value&gt;]<br>
</tt></tt></tt></tt></tt></tt> <tt><tt><tt><tt><tt><tt><tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
[angle
@@ -2646,6 +2708,8 @@
+
+
&lt;value&gt;]<br>
</tt></tt></tt></tt></tt></tt></tt>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [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> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
[csc|xmm|rosat]</tt><tt><br>
@@ -510,6 +512,8 @@
+
+
[&lt;ref&gt;] [filter &lt;string&gt;]</tt><tt><br>
</tt><tt> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; [&lt;ref&gt;]
[filter load &lt;filename&gt;]</tt><tt><br>
@@ -526,6 +530,8 @@
+
+
[&lt;ref&gt;] [match &lt;ref&gt; &lt;ref&gt;]</tt><tt><br>
</tt><tt> </tt><tt> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt>
</tt><tt>[&lt;ref&gt;] [match error &lt;value&gt;
@@ -546,6 +552,8 @@
+
+
[&lt;ref&gt;] [panto yes|no]</tt><tt><br>
</tt><tt> </tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
[&lt;ref&gt;] [plot &lt;xcol&gt; &lt;ycol&gt; &lt;xerrcol&gt;
@@ -574,6 +582,8 @@
+
+
[&lt;ref&gt;] [save &lt;filename&gt;]</tt><tt><br>
</tt><tt> </tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
[&lt;ref&gt;] [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> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -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 &lt;filename&gt;]<br>
</tt></tt> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [copy]<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [paste
@@ -910,6 +928,8 @@
+
+
zmax &lt;coordsys&gt;]</tt><tt><br>
</tt><tt> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [open|close]</tt><tt><br>
</tt><tt> &nbsp;</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>&lt;filename&gt;<br>
- </tt> <tt>movie 3d &lt;filename&gt;
+ 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]
+ &lt;filename&gt;<br>
+ </tt> <tt>movie 3d [mpeg|gif] &lt;filename&gt;
[number|azfrom|azto|elfrom|elto|slfrom|slto|oscillate|repeat
&lt;#&gt;]</tt><br>
<tt>&nbsp;<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 &lt;filename&gt; xy|xyex|xyey|xyexey]</tt><tt><br>
</tt><tt> </tt><tt> </tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;
[[&lt;plotname&gt;] save &lt;filename&gt;]</tt><tt><br>
@@ -2168,6 +2195,8 @@
+
+
duplicate [#]]</tt><tt><br>
</tt><tt> </tt><tt> </tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt> </tt><tt>[[&lt;plotname&gt;]
@@ -2175,6 +2204,8 @@
+
+
stats yes|no]</tt><tt><br>
</tt><tt> </tt><tt> </tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt> </tt><tt>[[&lt;plotname&gt;]
@@ -2182,6 +2213,8 @@
+
+
list yes|no]</tt><tt><br>
</tt><tt> </tt><tt> </tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt> </tt><tt>[[&lt;plotname&gt;]
@@ -2189,6 +2222,8 @@
+
+
loadconfig &lt;filename&gt;]</tt><tt><br>
</tt><tt> </tt><tt> </tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;
[[&lt;plotname&gt;] saveconfig &lt;filename&gt;]</tt><tt><br>
@@ -2213,6 +2248,8 @@
+
+
close</tt><tt>]</tt><tt><br>
</tt><tt> </tt><tt> </tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt> </tt><tt>[[&lt;plotname&gt;]
@@ -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>&nbsp;&nbsp;&nbsp;&nbsp;
[[&lt;plotname&gt;] 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>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt> </tt><tt>[[&lt;plotname&gt;]
@@ -2285,6 +2330,8 @@
+
+
shape fill yes|no]</tt><tt><br>
</tt><tt> </tt><tt> </tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt> </tt><tt>[[&lt;plotname&gt;]
@@ -2292,6 +2339,8 @@
+
+
shape color &lt;value&gt;]</tt><tt><br>
</tt><tt> </tt><tt> </tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt> </tt><tt>[[&lt;plotname&gt;]
@@ -2299,6 +2348,8 @@
+
+
smooth step|linear|cubic|quadratic|catrom]</tt><tt><br>
</tt><tt> </tt><tt> </tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt> </tt><tt>[[&lt;plotname&gt;]
@@ -2306,6 +2357,8 @@
+
+
color &lt;value&gt;]</tt><tt><br>
</tt><tt> </tt><tt> </tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt> </tt><tt>[[&lt;plotname&gt;]
@@ -2313,6 +2366,8 @@
+
+
width &lt;value&gt;]</tt><tt><br>
</tt><tt> </tt><tt> </tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt> </tt><tt>[[&lt;plotname&gt;]
@@ -2320,6 +2375,8 @@
+
+
dash yes|no]</tt><tt><br>
</tt><tt> </tt><tt> </tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt> </tt><tt>[[&lt;plotname&gt;]
@@ -2327,6 +2384,8 @@
+
+
error yes|no]</tt><tt><br>
</tt><tt> </tt><tt> </tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt> </tt><tt>[[&lt;plotname&gt;]
@@ -2334,6 +2393,8 @@
+
+
error color &lt;value&gt;]</tt><tt><br>
</tt><tt> </tt><tt> </tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;
[[&lt;plotname&gt;] color &lt;value&gt;]</tt><tt><br>
@@ -2343,6 +2404,8 @@
+
+
error width &lt;value&gt;]</tt><tt><br>
</tt><tt> </tt><tt> </tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt> </tt><tt>[[&lt;plotname&gt;]
@@ -2350,6 +2413,8 @@
+
+
name &lt;string&gt;]</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 @@
+
+
[&lt;ref&gt;] [save &lt;filename&gt;]</tt><tt><br>
</tt><tt> </tt><tt>&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; [&lt;ref&gt;]
[radius &lt;value&gt; degrees|arcmin|arcsec]</tt><tt><br>
@@ -3177,6 +3244,8 @@
+
+
[sigma &lt;value&gt;]<br>
</tt></tt></tt></tt></tt></tt> <tt><tt><tt><tt><tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -3185,6 +3254,8 @@
+
+
[sigmaminor &lt;value&gt;]<br>
</tt></tt></tt></tt></tt></tt> <tt><tt><tt><tt><tt><tt><tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
[angle
@@ -3194,6 +3265,8 @@
+
+
&lt;value&gt;]<br>
</tt></tt></tt></tt></tt></tt></tt></tt> <tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -3201,6 +3274,8 @@
+
+
[match]<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; [lock [yes|no]]</tt><br>
<tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [&lt;ref&gt;] [dec
&lt;col&gt;]</tt><br>
@@ -479,6 +483,8 @@
+
+
[&lt;ref&gt;] [match &lt;ref&gt; &lt;ref&gt;]<br>
</tt></tt> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt> <tt>[&lt;ref&gt;]
[match
@@ -488,6 +494,8 @@
+
+
error &lt;value&gt; degrees|arcmin|arcsec]</tt><br>
<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt> <tt>[&lt;ref&gt;]
@@ -495,6 +503,8 @@
+
+
[match function 1and2|1not2|2not1]<br>
</tt> <tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt> <tt>[&lt;ref&gt;]
@@ -502,6 +512,8 @@
+
+
[match return 1and2|1only|2only]</tt><br>
<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt> <tt>[&lt;ref&gt;]
@@ -509,6 +521,8 @@
+
+
[match unique yes|no]</tt><br>
<tt>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; [&lt;ref&gt;] [maxrows
&lt;number&gt;]</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>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [&lt;ref&gt;] [symbol
add| [#] remove]<br>
@@ -581,6 +599,8 @@
+
+
[update]</tt><br>
<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [&lt;ref&gt;] [x
&lt;col&gt;]</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>&lt;filename&gt;<br>
- </tt> <tt>movie 3d &lt;filename&gt;
+ 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]
+ &lt;filename&gt;<br>
+ </tt> <tt>movie 3d [mpeg|gif] &lt;filename&gt;
[number|azfrom|azto|elfrom|elto|slfrom|slto|oscillate|repeat
&lt;#&gt;]</tt><br>
<tt>&nbsp;<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] &lt;title&gt; &lt;xaxis label&gt; &lt;yaxis
label&gt;</tt><tt> </tt><tt>xy|xyex|xyey|xyexey</tt><tt>]</tt><tt><br>
</tt><tt> </tt><tt> </tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt> </tt><tt>[new</tt><tt>
@@ -2021,12 +2047,16 @@
+
+
name &lt;plotname&gt; stdin</tt><tt>]</tt><tt><br>
</tt><tt> </tt><tt> </tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt> </tt><tt>[new
+
+
name &lt;plotname&gt;</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 &lt;filename&gt; xy|xyex|xyey|xyexey]</tt><tt><br>
</tt><tt> </tt><tt> </tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;
[[&lt;plotname&gt;] save &lt;filename&gt;]</tt><tt><br>
@@ -2052,6 +2084,8 @@
+
+
duplicate [#]]</tt><tt><br>
</tt><tt> </tt><tt> </tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt> </tt><tt>[[&lt;plotname&gt;]
@@ -2059,6 +2093,8 @@
+
+
stats yes|no]</tt><tt><br>
</tt><tt> </tt><tt> </tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt> </tt><tt>[[&lt;plotname&gt;]
@@ -2066,6 +2102,8 @@
+
+
list yes|no]</tt><tt><br>
</tt><tt> </tt><tt> </tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt> </tt><tt>[[&lt;plotname&gt;]
@@ -2073,6 +2111,8 @@
+
+
loadconfig &lt;filename&gt;]</tt><tt><br>
</tt><tt> </tt><tt> </tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;
[[&lt;plotname&gt;] saveconfig &lt;filename&gt;]</tt><tt><br>
@@ -2097,6 +2137,8 @@
+
+
close</tt><tt>]</tt><tt><br>
</tt><tt> </tt><tt> </tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt> </tt><tt>[[&lt;plotname&gt;]
@@ -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>&nbsp;&nbsp;&nbsp;&nbsp;
[[&lt;plotname&gt;] 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>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt> </tt><tt>[[&lt;plotname&gt;]
@@ -2169,6 +2219,8 @@
+
+
shape fill yes|no]</tt><tt><br>
</tt><tt> </tt><tt> </tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt> </tt><tt>[[&lt;plotname&gt;]
@@ -2176,6 +2228,8 @@
+
+
shape color &lt;value&gt;]</tt><tt><br>
</tt><tt> </tt><tt> </tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt> </tt><tt>[[&lt;plotname&gt;]
@@ -2183,6 +2237,8 @@
+
+
smooth step|linear|cubic|quadratic|catrom]</tt><tt><br>
</tt><tt> </tt><tt> </tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt> </tt><tt>[[&lt;plotname&gt;]
@@ -2190,6 +2246,8 @@
+
+
color &lt;value&gt;]</tt><tt><br>
</tt><tt> </tt><tt> </tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt> </tt><tt>[[&lt;plotname&gt;]
@@ -2197,6 +2255,8 @@
+
+
width &lt;value&gt;]</tt><tt><br>
</tt><tt> </tt><tt> </tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt> </tt><tt>[[&lt;plotname&gt;]
@@ -2204,6 +2264,8 @@
+
+
dash yes|no]</tt><tt><br>
</tt><tt> </tt><tt> </tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt> </tt><tt>[[&lt;plotname&gt;]
@@ -2211,6 +2273,8 @@
+
+
error yes|no]</tt><tt><br>
</tt><tt> </tt><tt> </tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt> </tt><tt>[[&lt;plotname&gt;]
@@ -2218,6 +2282,8 @@
+
+
error color &lt;value&gt;]</tt><tt><br>
</tt><tt> </tt><tt> </tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;
[[&lt;plotname&gt;] color &lt;value&gt;]</tt><tt><br>
@@ -2227,6 +2293,8 @@
+
+
error width &lt;value&gt;]</tt><tt><br>
</tt><tt> </tt><tt> </tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt> </tt><tt>[[&lt;plotname&gt;]
@@ -2234,6 +2302,8 @@
+
+
name &lt;string&gt;]</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 @@
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [filename &lt;filename&gt;]<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [color rgb|cmyk|gray]<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [level 1|2|3]<br>
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [resolution 72|screen|96|144|150|225|300|600|1200]<br>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [resolution
+ 72|screen|96|144|150|225|300|600|1200]<br>
&nbsp;<br>
Example:<br>
$xpaget ds9 print destination<br>
@@ -2920,6 +2991,8 @@
+
+
[crosshair]</tt><tt><br>
</tt><tt> </tt><tt>&nbsp;&nbsp;&nbsp; [&lt;ref&gt;] [export
sb|tsv &lt;filename&gt;]</tt><tt><br>
@@ -2943,6 +3016,8 @@
+
+
[update]</tt><br>
&nbsp; <tt><br>
Example:<br>
@@ -3050,6 +3125,8 @@
+
+
[sigma &lt;value&gt;]<br>
</tt></tt></tt></tt></tt></tt> <tt><tt><tt><tt><tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -3058,6 +3135,8 @@
+
+
[sigmaminor &lt;value&gt;]<br>
</tt></tt></tt></tt></tt></tt> <tt><tt><tt><tt><tt><tt><tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
[angle
@@ -3067,6 +3146,8 @@
+
+
&lt;value&gt;]<br>
</tt></tt></tt></tt></tt></tt></tt></tt> <tt>&nbsp;&nbsp;&nbsp;
@@ -3074,6 +3155,8 @@
+
+
&nbsp;&nbsp; [match]<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; [lock [yes|no]]</tt><br>
<tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [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