summaryrefslogtreecommitdiff
path: root/Build/source
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2015-05-20 17:51:10 +0000
committerKarl Berry <karl@freefriends.org>2015-05-20 17:51:10 +0000
commitaeecf951b2d292ab5afce830bc1b85bf7ea22e0b (patch)
tree950d0bcf124ac371f95d0225337fcf71e3dba991 /Build/source
parent11b7caf0b63d1af64dbff00b40f521432d26adc8 (diff)
asy 2.35 sources
git-svn-id: svn://tug.org/texlive/trunk@37458 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source')
-rw-r--r--Build/source/utils/README2
-rw-r--r--Build/source/utils/asymptote/ChangeLog85
-rw-r--r--Build/source/utils/asymptote/ReleaseNotes16
-rw-r--r--Build/source/utils/asymptote/asy-keywords.el2
-rw-r--r--Build/source/utils/asymptote/asy.list356
-rw-r--r--Build/source/utils/asymptote/asymptote.spec4
-rw-r--r--Build/source/utils/asymptote/base/three_surface.asy3
-rw-r--r--Build/source/utils/asymptote/camp.tab.cc2306
-rw-r--r--Build/source/utils/asymptote/camp.tab.h163
-rwxr-xr-xBuild/source/utils/asymptote/configure18
-rw-r--r--Build/source/utils/asymptote/configure.ac2
-rw-r--r--Build/source/utils/asymptote/doc/CAD.pdfbin67562 -> 66815 bytes
-rw-r--r--Build/source/utils/asymptote/doc/FAQ/asy-faq.info2
-rw-r--r--Build/source/utils/asymptote/doc/TeXShopAndAsymptote.pdfbin31481 -> 32163 bytes
-rw-r--r--Build/source/utils/asymptote/doc/asy-latex.pdfbin194467 -> 194467 bytes
-rw-r--r--Build/source/utils/asymptote/doc/asyRefCard.pdfbin53672 -> 54958 bytes
-rw-r--r--Build/source/utils/asymptote/doc/asymptote.pdfbin1274426 -> 1273183 bytes
-rw-r--r--Build/source/utils/asymptote/doc/asymptote.texi28
-rw-r--r--Build/source/utils/asymptote/doc/colors.asy9
-rw-r--r--Build/source/utils/asymptote/doc/png/asymptote.info458
-rw-r--r--Build/source/utils/asymptote/patches/README2
-rw-r--r--Build/source/utils/asymptote/patches/cygwin_xdr.patch385
-rw-r--r--Build/source/utils/asymptote/runlabel.cc33
-rw-r--r--Build/source/utils/asymptote/runlabel.in21
-rw-r--r--Build/source/utils/asymptote/tests/Makefile3
-rw-r--r--Build/source/utils/asymptote/tests/gs/ghostscript.asy12
26 files changed, 1706 insertions, 2204 deletions
diff --git a/Build/source/utils/README b/Build/source/utils/README
index c285479fd92..1c9fe5df49b 100644
--- a/Build/source/utils/README
+++ b/Build/source/utils/README
@@ -5,7 +5,7 @@ Extra utilities we (optionally) compile for TeX Live.
See comments in ../texk/README.
-asymptote 2.33 - checked 12may15
+asymptote 2.35 - checked 20may15
update to TL from CTAN, to include prebuilt doc.
see http://tug.org/texlive/build.html#asymptote
and tlpkg/bin/tl-update-asy
diff --git a/Build/source/utils/asymptote/ChangeLog b/Build/source/utils/asymptote/ChangeLog
index b374e6954c8..e83a5cef1dc 100644
--- a/Build/source/utils/asymptote/ChangeLog
+++ b/Build/source/utils/asymptote/ChangeLog
@@ -1,4 +1,89 @@
------------------------------------------------------------------------
+r5718 | jcbowman | 2015-05-19 16:19:23 -0600 (Tue, 19 May 2015) | 2 lines
+Changed paths:
+ M /trunk/asymptote/doc/asymptote.texi
+
+Update documentation.
+
+------------------------------------------------------------------------
+r5717 | jcbowman | 2015-05-19 15:43:15 -0600 (Tue, 19 May 2015) | 3 lines
+Changed paths:
+ M /trunk/asymptote/runlabel.in
+
+Work around eps2write bug that forces all postscript to first page,
+breaking multiple 3D xelatex and context labels.
+
+------------------------------------------------------------------------
+r5716 | jcbowman | 2015-05-19 14:31:06 -0600 (Tue, 19 May 2015) | 2 lines
+Changed paths:
+ R /trunk/asymptote/doc/FAQ/install-sh
+ R /trunk/asymptote/doc/install-sh
+
+Replace duplicate files with symbolic links.
+
+------------------------------------------------------------------------
+r5715 | jcbowman | 2015-05-18 13:51:02 -0600 (Mon, 18 May 2015) | 2 lines
+Changed paths:
+ M /trunk/asymptote/runlabel.in
+
+Support rendered 3D context images.
+
+------------------------------------------------------------------------
+r5714 | jcbowman | 2015-05-17 11:04:51 -0600 (Sun, 17 May 2015) | 1 line
+Changed paths:
+ M /trunk/asymptote/asymptote.spec
+ M /trunk/asymptote/configure.ac
+
+Increment version to 2.35svn.
+------------------------------------------------------------------------
+r5713 | jcbowman | 2015-05-16 12:41:33 -0600 (Sat, 16 May 2015) | 2 lines
+Changed paths:
+ M /trunk/asymptote/doc/asymptote.texi
+
+Update ghostscript URL.
+
+------------------------------------------------------------------------
+r5712 | jcbowman | 2015-05-14 00:45:17 -0600 (Thu, 14 May 2015) | 2 lines
+Changed paths:
+ M /trunk/asymptote/doc/colors.asy
+
+Improve readability of named pen colors documentation.
+
+------------------------------------------------------------------------
+r5711 | jcbowman | 2015-05-14 00:39:39 -0600 (Thu, 14 May 2015) | 3 lines
+Changed paths:
+ M /trunk/asymptote/base/three_surface.asy
+
+Add surface cone(path3 base, triple vertex) to construct an approximate
+cone over an arbitrary base, courtesy of Charles Staats.
+
+------------------------------------------------------------------------
+r5710 | jcbowman | 2015-05-14 00:07:11 -0600 (Thu, 14 May 2015) | 2 lines
+Changed paths:
+ M /trunk/asymptote/README
+ M /trunk/asymptote/asymptote.spec
+ M /trunk/asymptote/patches/README
+ D /trunk/asymptote/patches/cygwin_xdr.patch
+
+Update documentation; remove obsolete cygwin patch.
+
+------------------------------------------------------------------------
+r5709 | jcbowman | 2015-05-13 09:00:23 -0600 (Wed, 13 May 2015) | 2 lines
+Changed paths:
+ M /trunk/asymptote/doc/asymptote.texi
+ M /trunk/asymptote/tests/Makefile
+ A /trunk/asymptote/tests/gs
+ A /trunk/asymptote/tests/gs/ghostscript.asy
+
+Add test for Ghostscript 9.14 or later.
+
+------------------------------------------------------------------------
+r5708 | jcbowman | 2015-05-10 23:45:09 -0600 (Sun, 10 May 2015) | 1 line
+Changed paths:
+ M /trunk/asymptote/configure.ac
+
+Increment version to 2.34svn.
+------------------------------------------------------------------------
r5707 | jcbowman | 2015-05-10 22:35:32 -0600 (Sun, 10 May 2015) | 2 lines
Changed paths:
M /trunk/asymptote/base/smoothcontour3.asy
diff --git a/Build/source/utils/asymptote/ReleaseNotes b/Build/source/utils/asymptote/ReleaseNotes
index 7d6d6d97fb5..eb4b60080e2 100644
--- a/Build/source/utils/asymptote/ReleaseNotes
+++ b/Build/source/utils/asymptote/ReleaseNotes
@@ -1,3 +1,17 @@
+Release Notes for Version 2.35
+
+A work around was implemented for a ghostscript eps2write bug that forces
+all postscript to the first page, breaking multiple 3D XeLaTeX and ConTeXt
+labels.
+
+Release Notes for Version 2.34
+
+The readability of named pen colors was improved in the documentation.
+A surface cone(path3 base, triple vertex) routine was added for
+constructing an approximate cone over an arbitrary base. A test for
+Ghostscript 9.14 or later was added to the build process. The documentation
+was updated. A CYGWIN warning message under Windows 8 was fixed.
+
Release Notes for Version 2.33
A work around was implemented for the missing epswrite driver in
@@ -13,7 +27,7 @@ fixed. An intersect(path, surface) function was implemented.
A smoothcontour3 module written by Charles Staats and leminiscate example
were added. The inline asymptote.sty option now works with xelatex.
An obsolete workaround for an Adobe Reader transparency artifact
-was removed. A asylatexdir option was added to support the pdflatex
+was removed. An asylatexdir option was added to support the pdflatex
-output-directory option. An aligndir option for aligning the picture to
an arbitrary point of the page boundary was added. The garbage collector was
updated to gc-7.4.2. The documentation was updated.
diff --git a/Build/source/utils/asymptote/asy-keywords.el b/Build/source/utils/asymptote/asy-keywords.el
index ea6435749f5..60e35207d61 100644
--- a/Build/source/utils/asymptote/asy-keywords.el
+++ b/Build/source/utils/asymptote/asy-keywords.el
@@ -2,7 +2,7 @@
;; This file is automatically generated by asy-list.pl.
;; Changes will be overwritten.
;;
-(defvar asy-keywords-version "2.33")
+(defvar asy-keywords-version "2.35")
(defvar asy-keyword-name '(
and controls tension atleast curl if else while for do return break continue struct typedef new access import unravel from include quote static public private restricted this explicit true false null cycle newframe operator ))
diff --git a/Build/source/utils/asymptote/asy.list b/Build/source/utils/asymptote/asy.list
index e63fac45207..3a01334444c 100644
--- a/Build/source/utils/asymptote/asy.list
+++ b/Build/source/utils/asymptote/asy.list
@@ -253,9 +253,9 @@ int search(void()()[] a, void key()(), bool less(void()(), void()()));
int search(real[] a, real key, bool less(real, real));
int search(guide[] a, guide key, bool less(guide, guide));
int search(coord[] a, coord key, bool less(coord, coord));
-int search(Legend[] a, Legend key, bool less(Legend, Legend));
int search(pair[] a, pair key, bool less(pair, pair));
int search(object[] a, object key, bool less(object, object));
+int search(Legend[] a, Legend key, bool less(Legend, Legend));
int search(frame[] a, frame key, bool less(frame, frame));
int search(coord[] a, coord key, bool less(coord, coord));
int search(Label[] a, Label key, bool less(Label, Label));
@@ -522,7 +522,6 @@ pen[] copy(pen[] a, int depth=<default>);
coord[] copy(coord[] a, int depth=<default>);
coord[] copy(coord[] a, int depth=<default>);
marker[] copy(marker[] a, int depth=<default>);
-Legend[] copy(Legend[] a, int depth=<default>);
Label[] copy(Label[] a, int depth=<default>);
pen[][] copy(pen[][] a, int depth=<default>);
path[] copy(path[] a, int depth=<default>);
@@ -535,6 +534,7 @@ pair[] copy(pair[] a, int depth=<default>);
bool3[] copy(bool3[] a, int depth=<default>);
object[] copy(object[] a, int depth=<default>);
picture[] copy(picture[] a, int depth=<default>);
+Legend[] copy(Legend[] a, int depth=<default>);
pair[][] copy(pair[][] a, int depth=<default>);
real[] abs(pair[] a);
real[] abs(triple[] a);
@@ -575,9 +575,9 @@ pen[][] map(pen[] f(pen[]), pen[][] a);
triple[] map(triple f(triple), triple[] a);
pen[] map(pen f(pen), pen[] a);
object[] map(object f(object), object[] a);
+Legend[] map(Legend f(Legend), Legend[] a);
pair[] map(pair f(pair), pair[] a);
coord[] map(coord f(coord), coord[] a);
-Legend[] map(Legend f(Legend), Legend[] a);
string[] map(string f(string), string[] a);
void()()[] map(void f()()(void()()), void()()[] a);
pair[][] map(pair[] f(pair[]), pair[][] a);
@@ -605,7 +605,6 @@ pen[][] sequence(pen[] f(int), int n);
coord[] sequence(coord f(int), int n);
coord[] sequence(coord f(int), int n);
marker[] sequence(marker f(int), int n);
-Legend[] sequence(Legend f(int), int n);
Label[] sequence(Label f(int), int n);
int[] sequence(int f(int), int n);
string[][] sequence(string[] f(int), int n);
@@ -619,6 +618,7 @@ pair[][] sequence(pair[] f(int), int n);
bool3[] sequence(bool3 f(int), int n);
object[] sequence(object f(int), int n);
picture[] sequence(picture f(int), int n);
+Legend[] sequence(Legend f(int), int n);
real[][] sequence(real[] f(int), int n);
real[] sequence(real f(int), int n);
int[] sequence(int n, int m);
@@ -741,6 +741,7 @@ pair[][] array(int n, pair[] value, int depth=<default>);
bool3[] array(int n, bool3 value, int depth=<default>);
object[] array(int n, object value, int depth=<default>);
picture[] array(int n, picture value, int depth=<default>);
+Legend[] array(int n, Legend value, int depth=<default>);
real[][] array(int n, real[] value, int depth=<default>);
real[] array(int n, real value, int depth=<default>);
triple[] array(int n, triple value, int depth=<default>);
@@ -750,7 +751,6 @@ pen[][] array(int n, pen[] value, int depth=<default>);
coord[] array(int n, coord value, int depth=<default>);
coord[] array(int n, coord value, int depth=<default>);
marker[] array(int n, marker value, int depth=<default>);
-Legend[] array(int n, Legend value, int depth=<default>);
Label[] array(int n, Label value, int depth=<default>);
int[] array(int n, int value, int depth=<default>);
string[][] array(int n, string[] value, int depth=<default>);
@@ -940,9 +940,9 @@ arrowhead HookHead(real dir=<default>, real barb=<default>);
real[] concat(... real[][]);
pair[] concat(... pair[][]);
coord[] concat(... coord[][]);
-Legend[] concat(... Legend[][]);
pen[] concat(... pen[][]);
object[] concat(... object[][]);
+Legend[] concat(... Legend[][]);
path[] concat(... path[][]);
coord[] concat(... coord[][]);
Label[] concat(... Label[][]);
@@ -971,8 +971,8 @@ bool alias(Label[] a, Label[] b);
bool alias(pair[] a, pair[] b);
bool alias(scaling a, scaling b);
bool alias(bounds a, bounds b);
-bool alias(coords3 a, coords3 b);
-bool alias(ScaleT a, ScaleT b);
+bool alias(scaleT a, scaleT b);
+bool alias(Legend a, Legend b);
bool alias(object a, object b);
bool alias(cputime a, cputime b);
bool alias(int[] a, int[] b);
@@ -982,10 +982,10 @@ bool alias(coord[] a, coord[] b);
bool alias(coords2 a, coords2 b);
bool alias(pairOrTriple a, pairOrTriple b);
bool alias(framedTransformStack a, framedTransformStack b);
-bool alias(Legend[] a, Legend[] b);
bool alias(real[][] a, real[][] b);
bool alias(bool3 a, bool3 b);
bool alias(bool3[] a, bool3[] b);
+bool alias(light a, light b);
bool alias(picture a, picture b);
bool alias(position a, position b);
bool alias(picture[] a, picture[] b);
@@ -994,8 +994,7 @@ bool alias(string[] a, string[] b);
bool alias(frame[] a, frame[] b);
bool alias(coords2 a, coords2 b);
bool alias(coord a, coord b);
-bool alias(scaleT a, scaleT b);
-bool alias(Legend a, Legend b);
+bool alias(autoscaleT a, autoscaleT b);
bool alias(bool[] a, bool[] b);
bool alias(void()()[] a, void()()[] b);
bool alias(pen[][] a, pen[][] b);
@@ -1004,10 +1003,11 @@ bool alias(freezableBounds a, freezableBounds b);
bool alias(transformation a, transformation b);
bool alias(align a, align b);
bool alias(object[] a, object[] b);
+bool alias(Legend[] a, Legend[] b);
bool alias(path[] a, path[] b);
bool alias(triple[] a, triple[] b);
bool alias(coord a, coord b);
-bool alias(light a, light b);
+bool alias(coords3 a, coords3 b);
bool alias(Label a, Label b);
bool alias(marker[] a, marker[] b);
bool alias(processtime a, processtime b);
@@ -1015,7 +1015,7 @@ bool alias(real[] a, real[] b);
bool alias(pen[] a, pen[] b);
bool alias(hsv a, hsv b);
bool alias(scaling a, scaling b);
-bool alias(autoscaleT a, autoscaleT b);
+bool alias(ScaleT a, ScaleT b);
bool alias(indexedTransform a, indexedTransform b);
real pi;
int getint(string name=<default>, int default=<default>, string prompt=<default>, bool store=<default>);
@@ -1048,10 +1048,10 @@ void()()[] sort(void()()[] a, bool less(void()(), void()()));
real[] sort(real[] a, bool less(real, real));
bool[] sort(bool[] a, bool less(bool, bool));
coord[] sort(coord[] a, bool less(coord, coord));
-Legend[] sort(Legend[] a, bool less(Legend, Legend));
pen[] sort(pen[] a, bool less(pen, pen));
pen[][] sort(pen[][] a, bool less(pen[], pen[]));
object[] sort(object[] a, bool less(object, object));
+Legend[] sort(Legend[] a, bool less(Legend, Legend));
guide[] sort(guide[] a, bool less(guide, guide));
real[][] sort(real[][] a, bool less(real[], real[]));
triple[] sort(triple[] a, bool less(triple, triple));
@@ -1384,23 +1384,23 @@ pairOrTriple operator init();
framedTransformStack operator init();
hsv operator init();
scaling operator init();
-autoscaleT operator init();
+ScaleT operator init();
indexedTransform operator init();
coords2 operator init();
coord operator init();
-scaleT operator init();
-Legend operator init();
+autoscaleT operator init();
scaling operator init();
bounds operator init();
-coords3 operator init();
-ScaleT operator init();
+scaleT operator init();
+Legend operator init();
object operator init();
cputime operator init();
coord operator init();
-light operator init();
+coords3 operator init();
Label operator init();
processtime operator init();
bool3 operator init();
+light operator init();
picture operator init();
position operator init();
arrowhead operator init();
@@ -1572,24 +1572,24 @@ bool operator ==(file a, file b);
bool operator ==(path a, path b);
bool operator ==(path3 a, path3 b);
bool operator ==(bool3 a, bool3 b);
+bool operator ==(light a, light b);
bool operator ==(picture a, picture b);
bool operator ==(position a, position b);
bool operator ==(arrowhead a, arrowhead b);
bool operator ==(coords2 a, coords2 b);
bool operator ==(coord a, coord b);
-bool operator ==(scaleT a, scaleT b);
-bool operator ==(Legend a, Legend b);
+bool operator ==(autoscaleT a, autoscaleT b);
bool operator ==(filltype a, filltype b);
bool operator ==(freezableBounds a, freezableBounds b);
bool operator ==(transformation a, transformation b);
bool operator ==(align a, align b);
bool operator ==(coord a, coord b);
-bool operator ==(light a, light b);
+bool operator ==(coords3 a, coords3 b);
bool operator ==(Label a, Label b);
bool operator ==(processtime a, processtime b);
bool operator ==(hsv a, hsv b);
bool operator ==(scaling a, scaling b);
-bool operator ==(autoscaleT a, autoscaleT b);
+bool operator ==(ScaleT a, ScaleT b);
bool operator ==(indexedTransform a, indexedTransform b);
bool operator ==(bool3 a, bool b);
bool operator ==(marginT a, marginT b);
@@ -1598,8 +1598,8 @@ bool operator ==(side a, side b);
bool operator ==(marker a, marker b);
bool operator ==(scaling a, scaling b);
bool operator ==(bounds a, bounds b);
-bool operator ==(coords3 a, coords3 b);
-bool operator ==(ScaleT a, ScaleT b);
+bool operator ==(scaleT a, scaleT b);
+bool operator ==(Legend a, Legend b);
bool operator ==(object a, object b);
bool operator ==(cputime a, cputime b);
bool operator ==(bool a, bool3 b);
@@ -1644,24 +1644,24 @@ bool operator !=(file a, file b);
bool operator !=(path a, path b);
bool operator !=(path3 a, path3 b);
bool operator !=(bool3 a, bool3 b);
+bool operator !=(light a, light b);
bool operator !=(picture a, picture b);
bool operator !=(position a, position b);
bool operator !=(arrowhead a, arrowhead b);
bool operator !=(coords2 a, coords2 b);
bool operator !=(coord a, coord b);
-bool operator !=(scaleT a, scaleT b);
-bool operator !=(Legend a, Legend b);
+bool operator !=(autoscaleT a, autoscaleT b);
bool operator !=(filltype a, filltype b);
bool operator !=(freezableBounds a, freezableBounds b);
bool operator !=(transformation a, transformation b);
bool operator !=(align a, align b);
bool operator !=(coord a, coord b);
-bool operator !=(light a, light b);
+bool operator !=(coords3 a, coords3 b);
bool operator !=(Label a, Label b);
bool operator !=(processtime a, processtime b);
bool operator !=(hsv a, hsv b);
bool operator !=(scaling a, scaling b);
-bool operator !=(autoscaleT a, autoscaleT b);
+bool operator !=(ScaleT a, ScaleT b);
bool operator !=(indexedTransform a, indexedTransform b);
bool operator !=(bool3 a, bool b);
bool operator !=(marginT a, marginT b);
@@ -1670,8 +1670,8 @@ bool operator !=(side a, side b);
bool operator !=(marker a, marker b);
bool operator !=(scaling a, scaling b);
bool operator !=(bounds a, bounds b);
-bool operator !=(coords3 a, coords3 b);
-bool operator !=(ScaleT a, ScaleT b);
+bool operator !=(scaleT a, scaleT b);
+bool operator !=(Legend a, Legend b);
bool operator !=(object a, object b);
bool operator !=(cputime a, cputime b);
bool operator !=(bool a, bool3 b);
@@ -1956,6 +1956,7 @@ bool shipped;
pair[] fft(pair[] a, int sign=<default>);
pair SE;
pen nobasealign;
+sCAD operator init();
real animationdelay;
animation operator init();
frame NoBox(frame f);
@@ -2002,16 +2003,6 @@ bsp operator init();
picture operator cast(face f);
face operator cast(path3 p);
void add(picture pic=<default>, face[] faces, projection P=<default>);
-sCAD operator init();
-surface surface(vertex[][] g);
-weighted operator init();
-bucket operator init();
-vertex operator init();
-object operator init();
-vertex[][] contour3(triple[][][] v, real[][][] f, real[][][] midpoint=<default>, projection P=<default>);
-vertex[][] contour3(real[][][] f, real[][][] midpoint=<default>, triple a, triple b, projection P=<default>);
-vertex[][] contour3(real f(real, real, real), triple a, triple b, int nx=<default>, int ny=<default>, int nz=<default>, projection P=<default>);
-real eps;
segment case1(pair p0, pair p1, int edge);
void draw(picture pic=<default>, Label[] L=<default>, guide[][] g, pen[] p);
void draw(picture pic=<default>, Label[] L=<default>, guide[][] g, pen p=<default>);
@@ -2031,6 +2022,15 @@ guide[][] contour(real f(real, real), pair a, pair b, real[] c, int nx=<default>
guide[][] contour(real f(pair), pair a, pair b, real[] c, int nx=<default>, int ny=<default>, guide join(... guide[])=<default>);
guide[][] contour(pair[] z, real[] f, real[] c, guide join(... guide[])=<default>);
real eps;
+surface surface(vertex[][] g);
+weighted operator init();
+bucket operator init();
+vertex operator init();
+object operator init();
+vertex[][] contour3(triple[][][] v, real[][][] f, real[][][] midpoint=<default>, projection P=<default>);
+vertex[][] contour3(real[][][] f, real[][][] midpoint=<default>, triple a, triple b, projection P=<default>);
+vertex[][] contour3(real f(real, real, real), triple a, triple b, int nx=<default>, int ny=<default>, int nz=<default>, projection P=<default>);
+real eps;
void draw(TreeNode root, pair pos);
real treeNodeStep;
void drawAll(TreeNode node, frame f);
@@ -2436,9 +2436,6 @@ transform projection(line l1, line l2, bool safe=<default>);
bool degenerate(conic c);
bool degenerate(circle c);
bool degenerate(ellipse el);
-segment segment(point A, point B);
-segment segment(line l);
-segment segment(explicit side side);
line line(point A, bool extendA=<default>, point B, bool extendB=<default>);
line line(segment s);
line line(real a, point A=<default>);
@@ -2654,6 +2651,9 @@ mass operator /(explicit mass M, real x);
mass operator /(explicit mass M, int x);
transform scaleO(real x);
real operator ^(point M, explicit circle c);
+segment segment(point A, point B);
+segment segment(line l);
+segment segment(explicit side side);
bool operator ==(coordsys c1, coordsys c2);
bool operator ==(explicit point M, explicit point N);
bool operator ==(explicit vector u, explicit vector v);
@@ -2801,118 +2801,6 @@ abscissa curabscissa(ellipse el, point M);
abscissa curabscissa(parabola p, point M);
abscissa curabscissa(conic co, point M);
abscissa curabscissa(arc a, point M);
-locateT operator init();
-void Straight(flatguide3)(... void(flatguide3)[]);
-void graph(flatguide3)(triple F(real), real, real, int)(void join(flatguide3)(... void(flatguide3)[]));
-void(flatguide3)[] graph(triple F(real), real, real, int)(void join(flatguide3)(... void(flatguide3)[]), bool3 cond(real));
-void graph(flatguide3)(picture pic=<default>, real x(real), real y(real), real z(real), real a, real b, int n=<default>, void join(flatguide3)(... void(flatguide3)[])=<default>);
-void(flatguide3)[] graph(picture pic=<default>, real x(real), real y(real), real z(real), real a, real b, int n=<default>, bool3 cond(real), void join(flatguide3)(... void(flatguide3)[])=<default>);
-void graph(flatguide3)(picture pic=<default>, triple v(real), real a, real b, int n=<default>, void join(flatguide3)(... void(flatguide3)[])=<default>);
-void(flatguide3)[] graph(picture pic=<default>, triple v(real), real a, real b, int n=<default>, bool3 cond(real), void join(flatguide3)(... void(flatguide3)[])=<default>);
-void graph(flatguide3)(picture pic=<default>, triple[] v, void join(flatguide3)(... void(flatguide3)[])=<default>);
-void(flatguide3)[] graph(picture pic=<default>, triple[] v, bool3[] cond, void join(flatguide3)(... void(flatguide3)[])=<default>);
-void graph(flatguide3)(picture pic=<default>, real[] x, real[] y, real[] z, void join(flatguide3)(... void(flatguide3)[])=<default>);
-void(flatguide3)[] graph(picture pic=<default>, real[] x, real[] y, real[] z, bool3[] cond, void join(flatguide3)(... void(flatguide3)[])=<default>);
-void graph(flatguide3)(triple F(path, real), path p, int n=<default>, void join(flatguide3)(... void(flatguide3)[])=<default>);
-void graph(flatguide3)(triple F(pair), path p, int n=<default>, void join(flatguide3)(... void(flatguide3)[])=<default>);
-void graph(flatguide3)(picture pic=<default>, real f(pair), path p, int n=<default>, void join(flatguide3)(... void(flatguide3)[])=<default>);
-void graph(flatguide3)(real f(pair), path p, int n=<default>, real T(pair), void join(flatguide3)(... void(flatguide3)[])=<default>);
-void(flatguide3)[][] lift(real f(real x, real y), guide[][] g, void join(flatguide3)(... void(flatguide3)[])=<default>);
-void(flatguide3)[][] lift(real f(pair z), guide[][] g, void join(flatguide3)(... void(flatguide3)[])=<default>);
-triple polar(real r, real theta, real phi);
-void polargraph(flatguide3)(real r(real, real), real theta(real), real phi(real), int n=<default>, void join(flatguide3)(... void(flatguide3)[])=<default>);
-void xaxis3At(picture pic=<default>, Label L=<default>, void axis(picture, axisT), real xmin=<default>, real xmax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>, bool opposite=<default>, bool opposite2=<default>, bool primary=<default>);
-void yaxis3At(picture pic=<default>, Label L=<default>, void axis(picture, axisT), real ymin=<default>, real ymax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>, bool opposite=<default>, bool opposite2=<default>, bool primary=<default>);
-void zaxis3At(picture pic=<default>, Label L=<default>, void axis(picture, axisT), real zmin=<default>, real zmax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>, bool opposite=<default>, bool opposite2=<default>, bool primary=<default>);
-void xaxis3(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, real xmin=<default>, real xmax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>);
-void yaxis3(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, real ymin=<default>, real ymax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>);
-void zaxis3(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, real zmin=<default>, real zmax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>);
-bool uperiodic(triple[][] a);
-bool vperiodic(triple[][] a);
-void OutTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, tickvalues modify(tickvalues)=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
-void OutTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, real[] Ticks, real[] ticks=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
-void OutTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>);
-void axis(picture pic=<default>, Label L=<default>, path3 g, path3 g2=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>), ticklocate locate, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, int[] divisor=<default>, bool above=<default>, bool opposite=<default>);
-void Bounds(picture, axisT)(int type=<default>, int type2=<default>, triple align=<default>, bool extend=<default>);
-void Bounds(picture, axisT);
-void XZZero(picture, axisT)(triple align=<default>, bool extend=<default>);
-void XZZero(picture, axisT);
-void YZZero(picture, axisT)(triple align=<default>, bool extend=<default>);
-void YZZero(picture, axisT);
-surface surface(triple[][] f, bool[][] cond=<default>);
-surface surface(real[][] f, real[] x, real[] y, real[] xsplinetype(real[], real[])=<default>, real[] ysplinetype(real[], real[])=<default>, bool[][] cond=<default>);
-surface surface(real[][] f, pair a, pair b, real[] xsplinetype(real[], real[]), real[] ysplinetype(real[], real[])=<default>, bool[][] cond=<default>);
-surface surface(real[][] f, pair a, pair b, bool[][] cond=<default>);
-surface surface(triple f(pair z), pair a, pair b, int nu=<default>, int nv=<default>, bool cond(pair z)=<default>);
-surface surface(triple f(pair z), pair a, pair b, int nu=<default>, int nv=<default>, real[](real[], real[])[] usplinetype, real[](real[], real[])[] vsplinetype=<default>, bool cond(pair z)=<default>);
-surface surface(real f(pair z), pair a, pair b, int nx=<default>, int ny=<default>, bool cond(pair z)=<default>);
-surface surface(real f(pair z), pair a, pair b, int nx=<default>, int ny=<default>, real[] xsplinetype(real[], real[]), real[] ysplinetype(real[], real[])=<default>, bool cond(pair z)=<default>);
-void XYEquals(picture, axisT)(real x, real y, triple align=<default>, bool extend=<default>);
-triple Dir(real)(triple dir);
-void draw(picture pic=<default>, Label[] L=<default>, void(flatguide3)[][] g, pen[] p, light light=<default>, string name=<default>, render render=<default>, interaction interaction=<default>);
-void draw(picture pic=<default>, Label[] L=<default>, void(flatguide3)[][] g, pen p=<default>, light light=<default>, string name=<default>, render render=<default>, interaction interaction=<default>);
-void Ticks3(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(int sign, Label F=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, real[] Ticks=<default>, real[] ticks=<default>, int N=<default>, bool begin=<default>, bool end=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
-void Ticks3(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(int sign, Label F=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, tickvalues modify(tickvalues)=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
-real maxlength(triple f(pair z), pair a, pair b, int nu, int nv);
-void drawtick(picture pic, real[][] T, path3 g, path3 g2, ticklocate locate, real val, real Size, int sign, pen p, bool extend);
-triple tickMin3(picture pic);
-triple tickMax3(picture pic);
-triple Scale(picture pic=<default>, triple v);
-real ScaleZ(picture pic=<default>, real z);
-picture vectorfield(path3 vector(pair v), triple f(pair z), pair a, pair b, int nu=<default>, int nv=<default>, bool truesize=<default>, real maxlength=<default>, bool cond(pair z)=<default>, pen p=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, string name=<default>, render render=<default>);
-path3 Circle(triple c, real r, triple normal=<default>, int n=<default>);
-void InTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, tickvalues modify(tickvalues)=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
-void InTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, real[] Ticks, real[] ticks=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
-void InTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>);
-void Spline(flatguide3)(... void(flatguide3)[]);
-void InOutTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, tickvalues modify(tickvalues)=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
-void InOutTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, real[] Ticks, real[] ticks=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
-void InOutTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>);
-void axes3(picture pic=<default>, Label xlabel=<default>, Label ylabel=<default>, Label zlabel=<default>, bool extend=<default>, triple min=<default>, triple max=<default>, pen p=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>);
-void label(picture pic, Label L, triple v, real x, align align, string format, pen p);
-void labelx(picture pic=<default>, Label L=<default>, triple v, align align=<default>, string format=<default>, pen p=<default>);
-void labelx3(picture pic=<default>, Label L=<default>, real x, align align=<default>, string format=<default>, pen p=<default>);
-void labeltick(picture pic, real[][] T, path3 g, ticklocate locate, real val, int sign, real Size, string ticklabel(real), Label F, real norm=<default>);
-void labelaxis(picture pic, real[][] T, Label L, path3 g, ticklocate locate=<default>, int sign=<default>, bool ticklabels=<default>);
-void labely(picture pic=<default>, Label L=<default>, triple v, align align=<default>, string format=<default>, pen p=<default>);
-void labely3(picture pic=<default>, Label L=<default>, real y, align align=<default>, string format=<default>, pen p=<default>);
-void labelz(picture pic=<default>, Label L=<default>, triple v, align align=<default>, string format=<default>, pen p=<default>);
-void labelz3(picture pic=<default>, Label L=<default>, real z, align align=<default>, string format=<default>, pen p=<default>);
-void autoscale3(picture pic=<default>, void axis(picture, axisT));
-void xtick(picture pic=<default>, triple v, triple dir=<default>, real size=<default>, pen p=<default>);
-void xtick(picture pic=<default>, Label L, triple v, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
-void xtick3(picture pic=<default>, real x, triple dir=<default>, real size=<default>, pen p=<default>);
-void xtick3(picture pic=<default>, Label L, real x, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
-void ytick(picture pic=<default>, triple v, triple dir=<default>, real size=<default>, pen p=<default>);
-void ytick(picture pic=<default>, Label L, triple v, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
-void ytick3(picture pic=<default>, real y, triple dir=<default>, real size=<default>, pen p=<default>);
-void ytick3(picture pic=<default>, Label L, real y, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
-void ztick(picture pic=<default>, triple v, triple dir=<default>, real size=<default>, pen p=<default>);
-void ztick(picture pic=<default>, Label L, triple v, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
-void ztick3(picture pic=<default>, real z, triple dir=<default>, real size=<default>, pen p=<default>);
-void ztick3(picture pic=<default>, Label L, real z, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
-triple zero3(real);
-triple defaultdir(triple X, triple Y, triple Z, bool opposite=<default>, projection P);
-real xtrans(real[][] t, real x);
-real ytrans(real[][] t, real y);
-real ztrans(real[][] t, real z);
-ticklocate ticklocate(real a, real b, autoscaleT S=<default>, real tickmin=<default>, real tickmax=<default>, real time(real)=<default>, triple dir(real));
-triple ticklabelshift(triple align, pen p=<default>);
-path3 Arc(triple c, triple v1, triple v2, triple normal=<default>, bool direction=<default>, int n=<default>);
-path3 Arc(triple c, real r, real theta1, real phi1, real theta2, real phi2, triple normal=<default>, bool direction, int n=<default>);
-path3 Arc(triple c, real r, real theta1, real phi1, real theta2, real phi2, triple normal=<default>, int n=<default>);
-void limits(picture pic=<default>, triple min, triple max);
-void XZEquals(picture, axisT)(real x, real z, triple align=<default>, bool extend=<default>);
-void YZEquals(picture, axisT)(real y, real z, triple align=<default>, bool extend=<default>);
-void XYZero(picture, axisT)(triple align=<default>, bool extend=<default>);
-void XYZero(picture, axisT);
-void zlimits(picture pic=<default>, real min=<default>, real max=<default>, bool crop=<default>);
-void tick(picture pic=<default>, triple v, triple dir, real size=<default>, pen p=<default>);
-void tick(picture pic=<default>, Label L, real value, triple v, triple dir, string format=<default>, real size=<default>, pen p=<default>);
-surface bispline(real[][] z, real[][] p, real[][] q, real[][] r, real[] x, real[] y, bool[][] cond=<default>);
-path3[] segment(triple[] v, bool[] cond, void join(flatguide3)(... void(flatguide3)[])=<default>);
-void NoTicks3(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)();
-void NoTicks3(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>);
string DefaultFormat(real);
string DefaultLogFormat(real)(int base);
string DefaultLogFormat(real);
@@ -2940,6 +2828,9 @@ axisT axis;
void axis(picture pic=<default>, Label L=<default>, path g, path g2=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>), ticklocate locate, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, int[] divisor=<default>, bool above=<default>, bool opposite=<default>);
void drawtick(frame f, transform T, path g, path g2, ticklocate locate, real val, real Size, int sign, pen p, bool extend);
real maxlength(pair a, pair b, int nx, int ny);
+tickvalues OmitTickIntervals(tickvalues)(real[] a, real[] b);
+tickvalues OmitTickInterval(tickvalues)(real a, real b);
+tickvalues OmitTick(tickvalues)(... real[] x);
void errorbar(picture pic, pair z, pair dp, pair dm, pen p=<default>, real size=<default>);
void errorbars(picture pic=<default>, pair[] z, pair[] dp, pair[] dm=<default>, bool[] cond=<default>, pen p=<default>, real size=<default>);
void errorbars(picture pic=<default>, real[] x, real[] y, real[] dpx, real[] dpy, real[] dmx=<default>, real[] dmy=<default>, bool[] cond=<default>, pen p=<default>, real size=<default>);
@@ -2954,9 +2845,6 @@ void crop(picture pic=<default>);
picture vectorfield(path vector(real), path g, int n, bool truesize=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>);
picture vectorfield(path vector(pair), pair a, pair b, int nx=<default>, int ny=<default>, bool truesize=<default>, real maxlength=<default>, bool cond(pair z)=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>);
string OmitFormat(real)(string s=<default> ... real[] x);
-tickvalues OmitTickIntervals(tickvalues)(real[] a, real[] b);
-tickvalues OmitTickInterval(tickvalues)(real a, real b);
-tickvalues OmitTick(tickvalues)(... real[] x);
guide Straight(... guide[]);
int Min;
string trailingzero;
@@ -2967,19 +2855,23 @@ void labelx(picture pic=<default>, Label L, string format=<default>, explicit pe
path Arc(pair c, real r, real angle1, real angle2, bool direction, int n=<default>);
path Arc(pair c, real r, real angle1, real angle2, int n=<default>);
path Arc(pair c, explicit pair z1, explicit pair z2, bool direction=<default>, int n=<default>);
-pair labeltick(frame d, transform T, path g, ticklocate locate, real val, pair side, int sign, real Size, string ticklabel(real), Label F, real norm=<default>);
-void labelaxis(frame f, transform T, Label L, path g, ticklocate locate=<default>, int sign=<default>, bool ticklabels=<default>);
void labely(picture pic=<default>, Label L=<default>, explicit pair z, align align=<default>, string format=<default>, pen p=<default>);
void labely(picture pic=<default>, Label L=<default>, real y, align align=<default>, string format=<default>, pen p=<default>);
void labely(picture pic=<default>, Label L, string format=<default>, explicit pen p=<default>);
+pair labeltick(frame d, transform T, path g, ticklocate locate, real val, pair side, int sign, real Size, string ticklabel(real), Label F, real norm=<default>);
+void labelaxis(frame f, transform T, Label L, path g, ticklocate locate=<default>, int sign=<default>, bool ticklabels=<default>);
+void xaxisAt(picture pic=<default>, Label L=<default>, void axis(picture, axisT), real xmin=<default>, real xmax=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>, bool opposite=<default>);
void xtick(picture pic=<default>, explicit pair z, pair dir=<default>, real size=<default>, pen p=<default>);
void xtick(picture pic=<default>, real x, pair dir=<default>, real size=<default>, pen p=<default>);
void xtick(picture pic=<default>, Label L, explicit pair z, pair dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
void xtick(picture pic=<default>, Label L, real x, pair dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
+void yaxisAt(picture pic=<default>, Label L=<default>, void axis(picture, axisT), real ymin=<default>, real ymax=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>, bool opposite=<default>);
void ytick(picture pic=<default>, explicit pair z, pair dir=<default>, real size=<default>, pen p=<default>);
void ytick(picture pic=<default>, real y, pair dir=<default>, real size=<default>, pen p=<default>);
void ytick(picture pic=<default>, Label L, explicit pair z, pair dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
void ytick(picture pic=<default>, Label L, real y, pair dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
+void xaxis(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, real xmin=<default>, real xmax=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>);
+void yaxis(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, real ymin=<default>, real ymax=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>, bool autorotate=<default>);
picture secondaryX(picture primary=<default>, void f(picture));
picture secondaryY(picture primary=<default>, void f(picture));
Label Break;
@@ -2988,10 +2880,6 @@ scaleT Linear;
scaleT Linear(bool automin=<default>, bool automax=<default>, real s=<default>, real intercept=<default>);
pair tickMin(picture pic);
pair tickMax(picture pic);
-void xaxisAt(picture pic=<default>, Label L=<default>, void axis(picture, axisT), real xmin=<default>, real xmax=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>, bool opposite=<default>);
-void yaxisAt(picture pic=<default>, Label L=<default>, void axis(picture, axisT), real ymin=<default>, real ymax=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>, bool opposite=<default>);
-void xaxis(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, real xmin=<default>, real xmax=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>);
-void yaxis(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, real ymin=<default>, real ymax=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>, bool autorotate=<default>);
string autoformat(string format=<default>, real norm ... real[] a);
real linear(real)(real S(real x)=<default>, real Min, real Max);
pair polar(real r, real theta);
@@ -3003,7 +2891,6 @@ void LeftTicks(frame, transform, Label, pair, path, path, pen, bool(picture, pat
void LeftTicks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>);
tickvalues NoZero(tickvalues);
string NoZeroFormat(real);
-path[] segment(pair[] z, bool[] cond, guide join(... guide[])=<default>);
guide Hermite(... guide[])(real[] splinetype(real[], real[]));
guide Hermite(... guide[]);
path Circle(pair c, real r, int n=<default>);
@@ -3036,6 +2923,7 @@ ticklocate operator init();
locateT operator init();
tickvalues operator init();
axisT operator init();
+path[] segment(pair[] z, bool[] cond, guide join(... guide[])=<default>);
int Both;
void axes(picture pic=<default>, Label xlabel=<default>, Label ylabel=<default>, bool extend=<default>, pair min=<default>, pair max=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>);
string signedtrailingzero;
@@ -3072,6 +2960,118 @@ void autoscale(picture pic=<default>, void axis(picture, axisT));
guide Spline(... guide[]);
void LeftRight(picture, axisT)(bool extend=<default>);
void LeftRight(picture, axisT);
+locateT operator init();
+void Straight(flatguide3)(... void(flatguide3)[]);
+void graph(flatguide3)(triple F(real), real, real, int)(void join(flatguide3)(... void(flatguide3)[]));
+void(flatguide3)[] graph(triple F(real), real, real, int)(void join(flatguide3)(... void(flatguide3)[]), bool3 cond(real));
+void graph(flatguide3)(picture pic=<default>, real x(real), real y(real), real z(real), real a, real b, int n=<default>, void join(flatguide3)(... void(flatguide3)[])=<default>);
+void(flatguide3)[] graph(picture pic=<default>, real x(real), real y(real), real z(real), real a, real b, int n=<default>, bool3 cond(real), void join(flatguide3)(... void(flatguide3)[])=<default>);
+void graph(flatguide3)(picture pic=<default>, triple v(real), real a, real b, int n=<default>, void join(flatguide3)(... void(flatguide3)[])=<default>);
+void(flatguide3)[] graph(picture pic=<default>, triple v(real), real a, real b, int n=<default>, bool3 cond(real), void join(flatguide3)(... void(flatguide3)[])=<default>);
+void graph(flatguide3)(picture pic=<default>, triple[] v, void join(flatguide3)(... void(flatguide3)[])=<default>);
+void(flatguide3)[] graph(picture pic=<default>, triple[] v, bool3[] cond, void join(flatguide3)(... void(flatguide3)[])=<default>);
+void graph(flatguide3)(picture pic=<default>, real[] x, real[] y, real[] z, void join(flatguide3)(... void(flatguide3)[])=<default>);
+void(flatguide3)[] graph(picture pic=<default>, real[] x, real[] y, real[] z, bool3[] cond, void join(flatguide3)(... void(flatguide3)[])=<default>);
+void graph(flatguide3)(triple F(path, real), path p, int n=<default>, void join(flatguide3)(... void(flatguide3)[])=<default>);
+void graph(flatguide3)(triple F(pair), path p, int n=<default>, void join(flatguide3)(... void(flatguide3)[])=<default>);
+void graph(flatguide3)(picture pic=<default>, real f(pair), path p, int n=<default>, void join(flatguide3)(... void(flatguide3)[])=<default>);
+void graph(flatguide3)(real f(pair), path p, int n=<default>, real T(pair), void join(flatguide3)(... void(flatguide3)[])=<default>);
+void(flatguide3)[][] lift(real f(real x, real y), guide[][] g, void join(flatguide3)(... void(flatguide3)[])=<default>);
+void(flatguide3)[][] lift(real f(pair z), guide[][] g, void join(flatguide3)(... void(flatguide3)[])=<default>);
+triple polar(real r, real theta, real phi);
+void polargraph(flatguide3)(real r(real, real), real theta(real), real phi(real), int n=<default>, void join(flatguide3)(... void(flatguide3)[])=<default>);
+void xaxis3At(picture pic=<default>, Label L=<default>, void axis(picture, axisT), real xmin=<default>, real xmax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>, bool opposite=<default>, bool opposite2=<default>, bool primary=<default>);
+void yaxis3At(picture pic=<default>, Label L=<default>, void axis(picture, axisT), real ymin=<default>, real ymax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>, bool opposite=<default>, bool opposite2=<default>, bool primary=<default>);
+void zaxis3At(picture pic=<default>, Label L=<default>, void axis(picture, axisT), real zmin=<default>, real zmax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>, bool opposite=<default>, bool opposite2=<default>, bool primary=<default>);
+void xaxis3(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, real xmin=<default>, real xmax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>);
+void yaxis3(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, real ymin=<default>, real ymax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>);
+bool uperiodic(triple[][] a);
+void zaxis3(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, real zmin=<default>, real zmax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>);
+bool vperiodic(triple[][] a);
+void OutTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, tickvalues modify(tickvalues)=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
+void OutTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, real[] Ticks, real[] ticks=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
+void OutTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>);
+void axis(picture pic=<default>, Label L=<default>, path3 g, path3 g2=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>), ticklocate locate, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, int[] divisor=<default>, bool above=<default>, bool opposite=<default>);
+void Bounds(picture, axisT)(int type=<default>, int type2=<default>, triple align=<default>, bool extend=<default>);
+void Bounds(picture, axisT);
+void XZZero(picture, axisT)(triple align=<default>, bool extend=<default>);
+void XZZero(picture, axisT);
+void YZZero(picture, axisT)(triple align=<default>, bool extend=<default>);
+void YZZero(picture, axisT);
+surface surface(triple[][] f, bool[][] cond=<default>);
+surface surface(real[][] f, real[] x, real[] y, real[] xsplinetype(real[], real[])=<default>, real[] ysplinetype(real[], real[])=<default>, bool[][] cond=<default>);
+surface surface(real[][] f, pair a, pair b, real[] xsplinetype(real[], real[]), real[] ysplinetype(real[], real[])=<default>, bool[][] cond=<default>);
+surface surface(real[][] f, pair a, pair b, bool[][] cond=<default>);
+surface surface(triple f(pair z), pair a, pair b, int nu=<default>, int nv=<default>, bool cond(pair z)=<default>);
+surface surface(triple f(pair z), pair a, pair b, int nu=<default>, int nv=<default>, real[](real[], real[])[] usplinetype, real[](real[], real[])[] vsplinetype=<default>, bool cond(pair z)=<default>);
+surface surface(real f(pair z), pair a, pair b, int nx=<default>, int ny=<default>, bool cond(pair z)=<default>);
+surface surface(real f(pair z), pair a, pair b, int nx=<default>, int ny=<default>, real[] xsplinetype(real[], real[]), real[] ysplinetype(real[], real[])=<default>, bool cond(pair z)=<default>);
+void XYEquals(picture, axisT)(real x, real y, triple align=<default>, bool extend=<default>);
+triple Dir(real)(triple dir);
+void draw(picture pic=<default>, Label[] L=<default>, void(flatguide3)[][] g, pen[] p, light light=<default>, string name=<default>, render render=<default>, interaction interaction=<default>);
+void draw(picture pic=<default>, Label[] L=<default>, void(flatguide3)[][] g, pen p=<default>, light light=<default>, string name=<default>, render render=<default>, interaction interaction=<default>);
+void Ticks3(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(int sign, Label F=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, real[] Ticks=<default>, real[] ticks=<default>, int N=<default>, bool begin=<default>, bool end=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
+void Ticks3(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(int sign, Label F=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, tickvalues modify(tickvalues)=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
+real maxlength(triple f(pair z), pair a, pair b, int nu, int nv);
+void drawtick(picture pic, real[][] T, path3 g, path3 g2, ticklocate locate, real val, real Size, int sign, pen p, bool extend);
+triple tickMin3(picture pic);
+triple tickMax3(picture pic);
+triple Scale(picture pic=<default>, triple v);
+real ScaleZ(picture pic=<default>, real z);
+picture vectorfield(path3 vector(pair v), triple f(pair z), pair a, pair b, int nu=<default>, int nv=<default>, bool truesize=<default>, real maxlength=<default>, bool cond(pair z)=<default>, pen p=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, string name=<default>, render render=<default>);
+path3 Circle(triple c, real r, triple normal=<default>, int n=<default>);
+void InTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, tickvalues modify(tickvalues)=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
+void InTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, real[] Ticks, real[] ticks=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
+void InTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>);
+void Spline(flatguide3)(... void(flatguide3)[]);
+void InOutTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, tickvalues modify(tickvalues)=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
+void InOutTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, real[] Ticks, real[] ticks=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
+void InOutTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>);
+void axes3(picture pic=<default>, Label xlabel=<default>, Label ylabel=<default>, Label zlabel=<default>, bool extend=<default>, triple min=<default>, triple max=<default>, pen p=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>);
+void label(picture pic, Label L, triple v, real x, align align, string format, pen p);
+void labelx(picture pic=<default>, Label L=<default>, triple v, align align=<default>, string format=<default>, pen p=<default>);
+void labely(picture pic=<default>, Label L=<default>, triple v, align align=<default>, string format=<default>, pen p=<default>);
+void labeltick(picture pic, real[][] T, path3 g, ticklocate locate, real val, int sign, real Size, string ticklabel(real), Label F, real norm=<default>);
+void labelaxis(picture pic, real[][] T, Label L, path3 g, ticklocate locate=<default>, int sign=<default>, bool ticklabels=<default>);
+void labelx3(picture pic=<default>, Label L=<default>, real x, align align=<default>, string format=<default>, pen p=<default>);
+void labely3(picture pic=<default>, Label L=<default>, real y, align align=<default>, string format=<default>, pen p=<default>);
+void labelz(picture pic=<default>, Label L=<default>, triple v, align align=<default>, string format=<default>, pen p=<default>);
+void labelz3(picture pic=<default>, Label L=<default>, real z, align align=<default>, string format=<default>, pen p=<default>);
+void autoscale3(picture pic=<default>, void axis(picture, axisT));
+void xtick(picture pic=<default>, triple v, triple dir=<default>, real size=<default>, pen p=<default>);
+void xtick(picture pic=<default>, Label L, triple v, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
+void ytick(picture pic=<default>, triple v, triple dir=<default>, real size=<default>, pen p=<default>);
+void ytick(picture pic=<default>, Label L, triple v, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
+void xtick3(picture pic=<default>, real x, triple dir=<default>, real size=<default>, pen p=<default>);
+void xtick3(picture pic=<default>, Label L, real x, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
+void ytick3(picture pic=<default>, real y, triple dir=<default>, real size=<default>, pen p=<default>);
+void ytick3(picture pic=<default>, Label L, real y, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
+void ztick(picture pic=<default>, triple v, triple dir=<default>, real size=<default>, pen p=<default>);
+void ztick(picture pic=<default>, Label L, triple v, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
+void ztick3(picture pic=<default>, real z, triple dir=<default>, real size=<default>, pen p=<default>);
+void ztick3(picture pic=<default>, Label L, real z, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
+triple zero3(real);
+triple defaultdir(triple X, triple Y, triple Z, bool opposite=<default>, projection P);
+real xtrans(real[][] t, real x);
+real ytrans(real[][] t, real y);
+real ztrans(real[][] t, real z);
+ticklocate ticklocate(real a, real b, autoscaleT S=<default>, real tickmin=<default>, real tickmax=<default>, real time(real)=<default>, triple dir(real));
+triple ticklabelshift(triple align, pen p=<default>);
+path3 Arc(triple c, triple v1, triple v2, triple normal=<default>, bool direction=<default>, int n=<default>);
+path3 Arc(triple c, real r, real theta1, real phi1, real theta2, real phi2, triple normal=<default>, bool direction, int n=<default>);
+path3 Arc(triple c, real r, real theta1, real phi1, real theta2, real phi2, triple normal=<default>, int n=<default>);
+void limits(picture pic=<default>, triple min, triple max);
+void XZEquals(picture, axisT)(real x, real z, triple align=<default>, bool extend=<default>);
+void YZEquals(picture, axisT)(real y, real z, triple align=<default>, bool extend=<default>);
+void XYZero(picture, axisT)(triple align=<default>, bool extend=<default>);
+void XYZero(picture, axisT);
+void zlimits(picture pic=<default>, real min=<default>, real max=<default>, bool crop=<default>);
+void tick(picture pic=<default>, triple v, triple dir, real size=<default>, pen p=<default>);
+void tick(picture pic=<default>, Label L, real value, triple v, triple dir, string format=<default>, real size=<default>, pen p=<default>);
+surface bispline(real[][] z, real[][] p, real[][] q, real[][] r, real[] x, real[] y, bool[][] cond=<default>);
+path3[] segment(triple[] v, bool[] cond, void join(flatguide3)(... void(flatguide3)[])=<default>);
+void NoTicks3(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)();
+void NoTicks3(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>);
bool Crop;
int ngraph;
real epsilon;
@@ -3110,16 +3110,16 @@ grid3(picture pic)[] XYXgrid(position pos=<default>);
grid3(picture pic)[] XYXgrid;
grid3(picture pic)[] XY_XZgrid(position posa=<default>, position posb=<default>);
grid3(picture pic)[] XY_XZgrid;
+position middle;
grid3(picture pic)[] ZX_ZYgrid(position posa=<default>, position posb=<default>);
grid3(picture pic)[] ZX_ZYgrid;
-void xaxis3(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, pen p=<default>, ticksgridT ticks(), bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, bool above=<default>);
-void yaxis3(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, pen p=<default>, ticksgridT ticks(), bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, bool above=<default>);
-void zaxis3(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, pen p=<default>, ticksgridT ticks(), bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, bool above=<default>);
grid3 XYgrid(picture pic)(position pos=<default>);
grid3 XYgrid(picture pic);
grid3 ZYgrid(picture pic)(position pos=<default>);
grid3 ZYgrid(picture pic);
-position middle;
+void xaxis3(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, pen p=<default>, ticksgridT ticks(), bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, bool above=<default>);
+void yaxis3(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, pen p=<default>, ticksgridT ticks(), bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, bool above=<default>);
+void zaxis3(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, pen p=<default>, ticksgridT ticks(), bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, bool above=<default>);
void grid3(picture pic=<default>, grid3(picture pic)[][] gridroutine=<default>, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, pen pGrid=<default>, pen pgrid=<default>, bool above=<default>);
void grid3(picture pic=<default>, grid3(picture pic)[][] gridroutine, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, pen[] pGrid, pen[] pgrid, bool above=<default>);
ticksgridT OutTicks()(Label F=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, real Size=<default>, real size=<default>, pen pTick=<default>, pen ptick=<default>, grid3(picture pic)[][] gridroutine, pen pGrid=<default>, pen pgrid=<default>);
@@ -3156,16 +3156,16 @@ horner diffdiv(real[] x, real[] y);
horner hdiffdiv(real[] x, real[] y, real[] dy);
horner operator init();
real fhorner(real)(horner sh);
-surface labelpath(string s, path3 p, real angle=<default>, triple optional=<default>);
-triple[] firstframe(path3 p, triple optional=<default>);
-triple[] nextframe(path3 p, real reltimestart, triple[] start, real reltimeend, int subdiv=<default>);
-real eps;
-triple nextnormal(triple p, triple q);
void labelpath(frame f, Label L, path g, string justify=<default>, pen p=<default>);
void labelpath(picture pic=<default>, Label L, path g, string justify=<default>, pen p=<default>);
string LeftJustified;
string Centered;
string RightJustified;
+surface labelpath(string s, path3 p, real angle=<default>, triple optional=<default>);
+triple[] firstframe(path3 p, triple optional=<default>);
+triple[] nextframe(path3 p, real reltimestart, triple[] start, real reltimeend, int subdiv=<default>);
+real eps;
+triple nextnormal(triple p, triple q);
string[] lm_infmsg;
void lm_qrfac(int m, int n, real[] a, bool pivot, int[] ipvt, real[] rdiag, real[] acnorm, real[] wa);
void lm_qrsolv(int n, real[] r, int ldr, int[] ipvt, real[] diag, real[] qtb, real[] x, real[] sdiag, real[] wa);
@@ -3252,13 +3252,13 @@ bool rectangular(pair[][] m);
bool rectangular(triple[][] m);
bool polygon(path p);
pair unityroot(int n, int k=<default>);
-int[][] segmentlimits(bool[] b);
-int[][] segment(bool[] b);
real acot(real x);
pair[][] fft(pair[][] a, int sign=<default>);
real slope(path g, real x, int n=<default>);
real slope(path g, explicit pair z, int n=<default>);
picture grid(int Nx, int Ny, pen p=<default>);
+int[][] segmentlimits(bool[] b);
+int[][] segment(bool[] b);
real frac(real x);
real asec(real x);
real time(path g, real x, int n=<default>);
diff --git a/Build/source/utils/asymptote/asymptote.spec b/Build/source/utils/asymptote/asymptote.spec
index 1ed3a2cef46..659e4f30f50 100644
--- a/Build/source/utils/asymptote/asymptote.spec
+++ b/Build/source/utils/asymptote/asymptote.spec
@@ -1,7 +1,7 @@
%{!?_texmf: %define _texmf %(eval "echo `kpsewhich -expand-var '$TEXMFLOCAL'`")}
Name: asymptote
-Version: 2.33
+Version: 2.35
Release: 1%{?dist}
Summary: Descriptive vector graphics language
@@ -17,7 +17,7 @@ BuildRequires: fftw-devel >= 3.0
BuildRequires: gc-devel >= 6.7
BuildRequires: gsl-devel
BuildRequires: tetex-latex
-BuildRequires: ghostscript
+BuildRequires: ghostscript >= 9.14
BuildRequires: texinfo >= 4.7
BuildRequires: ImageMagick
diff --git a/Build/source/utils/asymptote/base/three_surface.asy b/Build/source/utils/asymptote/base/three_surface.asy
index faf56b546f4..f2f21eb826c 100644
--- a/Build/source/utils/asymptote/base/three_surface.asy
+++ b/Build/source/utils/asymptote/base/three_surface.asy
@@ -1961,6 +1961,9 @@ surface unitcone(int n=6)
restricted surface unitcone=unitcone();
restricted surface unitsolidcone=surface(patch(unitcircle3)...unitcone.s);
+// Construct an approximate cone over an arbitrary base.
+surface cone(path3 base, triple vertex) {return extrude(base,vertex--cycle);}
+
private patch unitcylinder1=patch(X{Y}..{-X}Y--Y+Z{X}..{-Y}X+Z--cycle);
restricted surface unitcylinder=surface(unitcylinder1,t1*unitcylinder1,
diff --git a/Build/source/utils/asymptote/camp.tab.cc b/Build/source/utils/asymptote/camp.tab.cc
index 64fce3227e8..d4f56393c47 100644
--- a/Build/source/utils/asymptote/camp.tab.cc
+++ b/Build/source/utils/asymptote/camp.tab.cc
@@ -1,19 +1,19 @@
-/* A Bison parser, made by GNU Bison 2.7. */
+/* A Bison parser, made by GNU Bison 3.0.2. */
/* Bison implementation for Yacc-like parsers in C
-
- Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc.
-
+
+ Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
+
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
-
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
@@ -26,7 +26,7 @@
special exception, which will cause the skeleton and the resulting
Bison output files to be licensed under the GNU General Public
License without this special exception.
-
+
This special exception was added by the Free Software Foundation in
version 2.2 of Bison. */
@@ -44,7 +44,7 @@
#define YYBISON 1
/* Bison version. */
-#define YYBISON_VERSION "2.7"
+#define YYBISON_VERSION "3.0.2"
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
@@ -62,8 +62,7 @@
/* Copy the first part of user declarations. */
-/* Line 371 of yacc.c */
-#line 1 "camp.y"
+#line 1 "camp.y" /* yacc.c:339 */
/*****
* camp.y
@@ -122,14 +121,13 @@ using namespace absyntax;
using sym::symbol;
using mem::string;
-/* Line 371 of yacc.c */
-#line 127 "camp.tab.c"
+#line 125 "camp.tab.c" /* yacc.c:339 */
-# ifndef YY_NULL
+# ifndef YY_NULLPTR
# if defined __cplusplus && 201103L <= __cplusplus
-# define YY_NULL nullptr
+# define YY_NULLPTR nullptr
# else
-# define YY_NULL 0
+# define YY_NULLPTR 0
# endif
# endif
@@ -145,7 +143,7 @@ using mem::string;
by #include "camp.tab.h". */
#ifndef YY_YY_CAMP_TAB_H_INCLUDED
# define YY_YY_CAMP_TAB_H_INCLUDED
-/* Enabling traces. */
+/* Debug traces. */
#ifndef YYDEBUG
# define YYDEBUG 1
#endif
@@ -153,76 +151,75 @@ using mem::string;
extern int yydebug;
#endif
-/* Tokens. */
+/* Token type. */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
- /* Put the tokens into the symbol table, so that GDB and other debuggers
- know about them. */
- enum yytokentype {
- ID = 258,
- SELFOP = 259,
- DOTS = 260,
- COLONS = 261,
- DASHES = 262,
- INCR = 263,
- LONGDASH = 264,
- CONTROLS = 265,
- TENSION = 266,
- ATLEAST = 267,
- CURL = 268,
- COR = 269,
- CAND = 270,
- BAR = 271,
- AMPERSAND = 272,
- EQ = 273,
- NEQ = 274,
- LT = 275,
- LE = 276,
- GT = 277,
- GE = 278,
- CARETS = 279,
- OPERATOR = 280,
- LOOSE = 281,
- ASSIGN = 282,
- DIRTAG = 283,
- JOIN_PREC = 284,
- AND = 285,
- ELLIPSIS = 286,
- ACCESS = 287,
- UNRAVEL = 288,
- IMPORT = 289,
- INCLUDE = 290,
- FROM = 291,
- QUOTE = 292,
- STRUCT = 293,
- TYPEDEF = 294,
- NEW = 295,
- IF = 296,
- ELSE = 297,
- WHILE = 298,
- DO = 299,
- FOR = 300,
- BREAK = 301,
- CONTINUE = 302,
- RETURN_ = 303,
- THIS = 304,
- EXPLICIT = 305,
- GARBAGE = 306,
- LIT = 307,
- STRING = 308,
- PERM = 309,
- MODIFIER = 310,
- UNARY = 311,
- EXP_IN_PARENS_RULE = 312
- };
+ enum yytokentype
+ {
+ ID = 258,
+ SELFOP = 259,
+ DOTS = 260,
+ COLONS = 261,
+ DASHES = 262,
+ INCR = 263,
+ LONGDASH = 264,
+ CONTROLS = 265,
+ TENSION = 266,
+ ATLEAST = 267,
+ CURL = 268,
+ COR = 269,
+ CAND = 270,
+ BAR = 271,
+ AMPERSAND = 272,
+ EQ = 273,
+ NEQ = 274,
+ LT = 275,
+ LE = 276,
+ GT = 277,
+ GE = 278,
+ CARETS = 279,
+ OPERATOR = 280,
+ LOOSE = 281,
+ ASSIGN = 282,
+ DIRTAG = 283,
+ JOIN_PREC = 284,
+ AND = 285,
+ ELLIPSIS = 286,
+ ACCESS = 287,
+ UNRAVEL = 288,
+ IMPORT = 289,
+ INCLUDE = 290,
+ FROM = 291,
+ QUOTE = 292,
+ STRUCT = 293,
+ TYPEDEF = 294,
+ NEW = 295,
+ IF = 296,
+ ELSE = 297,
+ WHILE = 298,
+ DO = 299,
+ FOR = 300,
+ BREAK = 301,
+ CONTINUE = 302,
+ RETURN_ = 303,
+ THIS = 304,
+ EXPLICIT = 305,
+ GARBAGE = 306,
+ LIT = 307,
+ STRING = 308,
+ PERM = 309,
+ MODIFIER = 310,
+ UNARY = 311,
+ EXP_IN_PARENS_RULE = 312
+ };
#endif
-
+/* Value type. */
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef union YYSTYPE
+typedef union YYSTYPE YYSTYPE;
+union YYSTYPE
{
-/* Line 387 of yacc.c */
-#line 60 "camp.y"
+#line 60 "camp.y" /* yacc.c:355 */
position pos;
bool boo;
@@ -269,37 +266,22 @@ typedef union YYSTYPE
absyntax::formal *fl;
absyntax::formals *fls;
-
-/* Line 387 of yacc.c */
-#line 275 "camp.tab.c"
-} YYSTYPE;
+#line 270 "camp.tab.c" /* yacc.c:355 */
+};
# define YYSTYPE_IS_TRIVIAL 1
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
#endif
+
extern YYSTYPE yylval;
-#ifdef YYPARSE_PARAM
-#if defined __STDC__ || defined __cplusplus
-int yyparse (void *YYPARSE_PARAM);
-#else
-int yyparse ();
-#endif
-#else /* ! YYPARSE_PARAM */
-#if defined __STDC__ || defined __cplusplus
int yyparse (void);
-#else
-int yyparse ();
-#endif
-#endif /* ! YYPARSE_PARAM */
#endif /* !YY_YY_CAMP_TAB_H_INCLUDED */
/* Copy the second part of user declarations. */
-/* Line 390 of yacc.c */
-#line 303 "camp.tab.c"
+#line 285 "camp.tab.c" /* yacc.c:358 */
#ifdef short
# undef short
@@ -313,11 +295,8 @@ typedef unsigned char yytype_uint8;
#ifdef YYTYPE_INT8
typedef YYTYPE_INT8 yytype_int8;
-#elif (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-typedef signed char yytype_int8;
#else
-typedef short int yytype_int8;
+typedef signed char yytype_int8;
#endif
#ifdef YYTYPE_UINT16
@@ -337,8 +316,7 @@ typedef short int yytype_int16;
# define YYSIZE_T __SIZE_TYPE__
# elif defined size_t
# define YYSIZE_T size_t
-# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
+# elif ! defined YYSIZE_T
# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
# define YYSIZE_T size_t
# else
@@ -360,6 +338,33 @@ typedef short int yytype_int16;
# endif
#endif
+#ifndef YY_ATTRIBUTE
+# if (defined __GNUC__ \
+ && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
+ || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
+# define YY_ATTRIBUTE(Spec) __attribute__(Spec)
+# else
+# define YY_ATTRIBUTE(Spec) /* empty */
+# endif
+#endif
+
+#ifndef YY_ATTRIBUTE_PURE
+# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
+#endif
+
+#ifndef YY_ATTRIBUTE_UNUSED
+# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
+#endif
+
+#if !defined _Noreturn \
+ && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
+# if defined _MSC_VER && 1200 <= _MSC_VER
+# define _Noreturn __declspec (noreturn)
+# else
+# define _Noreturn YY_ATTRIBUTE ((__noreturn__))
+# endif
+#endif
+
/* Suppress unused-variable warnings by "using" E. */
#if ! defined lint || defined __GNUC__
# define YYUSE(E) ((void) (E))
@@ -367,24 +372,26 @@ typedef short int yytype_int16;
# define YYUSE(E) /* empty */
#endif
-/* Identity function, used to suppress warnings about constant conditions. */
-#ifndef lint
-# define YYID(N) (N)
+#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
+/* Suppress an incorrect diagnostic about yylval being uninitialized. */
+# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
+ _Pragma ("GCC diagnostic push") \
+ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
+ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
+# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
+ _Pragma ("GCC diagnostic pop")
#else
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-static int
-YYID (int yyi)
-#else
-static int
-YYID (yyi)
- int yyi;
+# define YY_INITIAL_VALUE(Value) Value
#endif
-{
- return yyi;
-}
+#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+# define YY_IGNORE_MAYBE_UNINITIALIZED_END
+#endif
+#ifndef YY_INITIAL_VALUE
+# define YY_INITIAL_VALUE(Value) /* Nothing. */
#endif
+
#if ! defined yyoverflow || YYERROR_VERBOSE
/* The parser invokes alloca or malloc; define the necessary symbols. */
@@ -402,8 +409,7 @@ YYID (yyi)
# define alloca _alloca
# else
# define YYSTACK_ALLOC alloca
-# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
+# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
/* Use EXIT_SUCCESS as a witness for stdlib.h. */
# ifndef EXIT_SUCCESS
@@ -415,8 +421,8 @@ YYID (yyi)
# endif
# ifdef YYSTACK_ALLOC
- /* Pacify GCC's `empty if-body' warning. */
-# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
+ /* Pacify GCC's 'empty if-body' warning. */
+# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
# ifndef YYSTACK_ALLOC_MAXIMUM
/* The OS might guarantee only one guard page at the bottom of the stack,
and a page size can be as small as 4096 bytes. So we cannot safely
@@ -432,7 +438,7 @@ YYID (yyi)
# endif
# if (defined __cplusplus && ! defined EXIT_SUCCESS \
&& ! ((defined YYMALLOC || defined malloc) \
- && (defined YYFREE || defined free)))
+ && (defined YYFREE || defined free)))
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
# ifndef EXIT_SUCCESS
# define EXIT_SUCCESS 0
@@ -440,15 +446,13 @@ YYID (yyi)
# endif
# ifndef YYMALLOC
# define YYMALLOC malloc
-# if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
+# if ! defined malloc && ! defined EXIT_SUCCESS
void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
# endif
# endif
# ifndef YYFREE
# define YYFREE free
-# if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
+# if ! defined free && ! defined EXIT_SUCCESS
void free (void *); /* INFRINGES ON USER NAME SPACE */
# endif
# endif
@@ -458,7 +462,7 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */
#if (! defined yyoverflow \
&& (! defined __cplusplus \
- || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
+ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
/* A type that is properly aligned for any stack member. */
union yyalloc
@@ -483,16 +487,16 @@ union yyalloc
elements in the stack, and YYPTR gives the new location of the
stack. Advance YYPTR to a properly aligned location for the next
stack. */
-# define YYSTACK_RELOCATE(Stack_alloc, Stack) \
- do \
- { \
- YYSIZE_T yynewbytes; \
- YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
- Stack = &yyptr->Stack_alloc; \
- yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
- yyptr += yynewbytes / sizeof (*yyptr); \
- } \
- while (YYID (0))
+# define YYSTACK_RELOCATE(Stack_alloc, Stack) \
+ do \
+ { \
+ YYSIZE_T yynewbytes; \
+ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
+ Stack = &yyptr->Stack_alloc; \
+ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
+ yyptr += yynewbytes / sizeof (*yyptr); \
+ } \
+ while (0)
#endif
@@ -511,7 +515,7 @@ union yyalloc
for (yyi = 0; yyi < (Count); yyi++) \
(Dst)[yyi] = (Src)[yyi]; \
} \
- while (YYID (0))
+ while (0)
# endif
# endif
#endif /* !YYCOPY_NEEDED */
@@ -527,17 +531,19 @@ union yyalloc
#define YYNNTS 50
/* YYNRULES -- Number of rules. */
#define YYNRULES 199
-/* YYNRULES -- Number of states. */
+/* YYNSTATES -- Number of states. */
#define YYNSTATES 374
-/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
+/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
+ by yylex, with out-of-bounds checking. */
#define YYUNDEFTOK 2
#define YYMAXUTOK 312
-#define YYTRANSLATE(YYX) \
+#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
-/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
+/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
+ as returned by yylex, without out-of-bounds checking. */
static const yytype_uint8 yytranslate[] =
{
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -575,111 +581,7 @@ static const yytype_uint8 yytranslate[] =
};
#if YYDEBUG
-/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
- YYRHS. */
-static const yytype_uint16 yyprhs[] =
-{
- 0, 0, 3, 5, 6, 9, 10, 13, 15, 19,
- 21, 23, 25, 28, 31, 33, 35, 38, 41, 43,
- 45, 47, 51, 57, 63, 67, 73, 79, 83, 87,
- 91, 93, 97, 99, 103, 105, 107, 109, 113, 115,
- 119, 122, 125, 127, 130, 132, 135, 139, 143, 148,
- 150, 154, 156, 160, 162, 165, 169, 174, 176, 178,
- 182, 185, 190, 194, 200, 202, 204, 207, 209, 213,
- 215, 218, 222, 226, 228, 229, 232, 236, 242, 247,
- 254, 260, 267, 271, 274, 276, 279, 282, 286, 290,
- 295, 300, 305, 310, 314, 319, 323, 328, 332, 336,
- 338, 340, 344, 346, 349, 353, 357, 361, 365, 367,
- 369, 371, 373, 376, 381, 387, 390, 393, 396, 400,
- 404, 408, 412, 416, 420, 424, 428, 432, 436, 440,
- 444, 448, 452, 456, 460, 464, 468, 472, 475, 479,
- 484, 488, 493, 499, 506, 513, 521, 527, 531, 535,
- 539, 542, 545, 548, 551, 555, 560, 562, 564, 567,
- 570, 574, 579, 583, 589, 597, 599, 603, 607, 609,
- 611, 614, 619, 623, 629, 632, 637, 639, 641, 644,
- 650, 658, 664, 672, 682, 691, 694, 697, 700, 704,
- 706, 708, 709, 711, 713, 714, 716, 717, 719, 721
-};
-
-/* YYRHS -- A `-1'-separated list of the rules' RHS. */
-static const yytype_int8 yyrhs[] =
-{
- 76, 0, -1, 77, -1, -1, 77, 80, -1, -1,
- 78, 80, -1, 3, -1, 79, 43, 3, -1, 29,
- -1, 82, -1, 118, -1, 81, 82, -1, 81, 118,
- -1, 72, -1, 71, -1, 81, 72, -1, 81, 71,
- -1, 88, -1, 105, -1, 106, -1, 49, 87, 47,
- -1, 53, 79, 50, 84, 47, -1, 53, 79, 50,
- 27, 47, -1, 50, 79, 47, -1, 53, 85, 49,
- 84, 47, -1, 53, 85, 49, 27, 47, -1, 51,
- 86, 47, -1, 52, 3, 47, -1, 52, 70, 47,
- -1, 3, -1, 3, 3, 3, -1, 83, -1, 84,
- 44, 83, -1, 3, -1, 70, -1, 3, -1, 85,
- 3, 3, -1, 86, -1, 87, 44, 86, -1, 89,
- 47, -1, 90, 94, -1, 91, -1, 79, 92, -1,
- 79, -1, 45, 46, -1, 92, 45, 46, -1, 45,
- 112, 46, -1, 93, 45, 112, 46, -1, 95, -1,
- 94, 44, 95, -1, 96, -1, 96, 33, 97, -1,
- 3, -1, 3, 92, -1, 3, 41, 42, -1, 3,
- 41, 102, 42, -1, 112, -1, 99, -1, 39, 78,
- 40, -1, 39, 40, -1, 39, 48, 97, 40, -1,
- 39, 100, 40, -1, 39, 100, 48, 97, 40, -1,
- 44, -1, 101, -1, 101, 44, -1, 97, -1, 101,
- 44, 97, -1, 104, -1, 48, 104, -1, 102, 44,
- 104, -1, 102, 48, 104, -1, 67, -1, -1, 103,
- 90, -1, 103, 90, 96, -1, 103, 90, 96, 33,
- 97, -1, 103, 90, 3, 96, -1, 103, 90, 3,
- 96, 33, 97, -1, 90, 3, 41, 42, 120, -1,
- 90, 3, 41, 102, 42, 120, -1, 55, 3, 98,
- -1, 56, 88, -1, 35, -1, 112, 35, -1, 35,
- 112, -1, 112, 35, 112, -1, 108, 43, 3, -1,
- 79, 45, 112, 46, -1, 108, 45, 112, 46, -1,
- 79, 45, 107, 46, -1, 108, 45, 107, 46, -1,
- 79, 41, 42, -1, 79, 41, 110, 42, -1, 108,
- 41, 42, -1, 108, 41, 110, 42, -1, 41, 112,
- 42, -1, 41, 79, 42, -1, 66, -1, 112, -1,
- 3, 33, 112, -1, 109, -1, 48, 109, -1, 110,
- 44, 109, -1, 110, 48, 109, -1, 112, 44, 112,
- -1, 111, 44, 112, -1, 79, -1, 108, -1, 69,
- -1, 70, -1, 69, 112, -1, 41, 79, 42, 112,
- -1, 41, 79, 92, 42, 112, -1, 25, 112, -1,
- 26, 112, -1, 31, 112, -1, 112, 25, 112, -1,
- 112, 26, 112, -1, 112, 27, 112, -1, 112, 28,
- 112, -1, 112, 29, 112, -1, 112, 30, 112, -1,
- 112, 20, 112, -1, 112, 21, 112, -1, 112, 22,
- 112, -1, 112, 23, 112, -1, 112, 18, 112, -1,
- 112, 19, 112, -1, 112, 15, 112, -1, 112, 14,
- 112, -1, 112, 24, 112, -1, 112, 17, 112, -1,
- 112, 16, 112, -1, 112, 31, 112, -1, 112, 8,
- 112, -1, 57, 91, -1, 57, 91, 93, -1, 57,
- 91, 93, 92, -1, 57, 91, 92, -1, 57, 91,
- 92, 99, -1, 57, 91, 41, 42, 120, -1, 57,
- 91, 92, 41, 42, 120, -1, 57, 91, 41, 102,
- 42, 120, -1, 57, 91, 92, 41, 102, 42, 120,
- -1, 112, 34, 112, 35, 112, -1, 112, 33, 112,
- -1, 41, 111, 42, -1, 112, 113, 112, -1, 112,
- 114, -1, 8, 112, -1, 7, 112, -1, 112, 8,
- -1, 112, 4, 112, -1, 54, 39, 77, 40, -1,
- 7, -1, 115, -1, 114, 115, -1, 115, 114, -1,
- 114, 115, 114, -1, 39, 13, 112, 40, -1, 39,
- 112, 40, -1, 39, 112, 44, 112, 40, -1, 39,
- 112, 44, 112, 44, 112, 40, -1, 5, -1, 5,
- 116, 5, -1, 5, 117, 5, -1, 6, -1, 9,
- -1, 11, 112, -1, 11, 112, 38, 112, -1, 11,
- 12, 112, -1, 11, 12, 112, 38, 112, -1, 10,
- 112, -1, 10, 112, 38, 112, -1, 47, -1, 120,
- -1, 119, 47, -1, 58, 41, 112, 42, 118, -1,
- 58, 41, 112, 42, 118, 59, 118, -1, 60, 41,
- 112, 42, 118, -1, 61, 118, 60, 41, 112, 42,
- 47, -1, 62, 41, 121, 47, 122, 47, 123, 42,
- 118, -1, 62, 41, 90, 3, 35, 112, 42, 118,
- -1, 63, 47, -1, 64, 47, -1, 65, 47, -1,
- 65, 112, 47, -1, 112, -1, 98, -1, -1, 124,
- -1, 89, -1, -1, 112, -1, -1, 124, -1, 119,
- -1, 124, 44, 119, -1
-};
-
-/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
+ /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
0, 191, 191, 195, 196, 201, 202, 207, 208, 209,
@@ -727,13 +629,13 @@ static const char *const yytname[] =
"varinits", "formals", "explicitornot", "formal", "fundec", "typedec",
"slice", "value", "argument", "arglist", "tuple", "exp", "join", "dir",
"basicjoin", "tension", "controls", "stm", "stmexp", "blockstm",
- "forinit", "fortest", "forupdate", "stmexplist", YY_NULL
+ "forinit", "fortest", "forupdate", "stmexplist", YY_NULLPTR
};
#endif
# ifdef YYPRINT
-/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
- token YYLEX-NUM. */
+/* YYTOKNUM[NUM] -- (External) token number corresponding to the
+ (internal) symbol number NUM (which must be that of a token). */
static const yytype_uint16 yytoknum[] =
{
0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
@@ -747,114 +649,18 @@ static const yytype_uint16 yytoknum[] =
};
# endif
-/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
-static const yytype_uint8 yyr1[] =
-{
- 0, 75, 76, 77, 77, 78, 78, 79, 79, 79,
- 80, 80, 80, 80, 81, 81, 81, 81, 82, 82,
- 82, 82, 82, 82, 82, 82, 82, 82, 82, 82,
- 83, 83, 84, 84, 85, 85, 86, 86, 87, 87,
- 88, 89, 90, 90, 91, 92, 92, 93, 93, 94,
- 94, 95, 95, 96, 96, 96, 96, 97, 97, 98,
- 99, 99, 99, 99, 100, 100, 100, 101, 101, 102,
- 102, 102, 102, 103, 103, 104, 104, 104, 104, 104,
- 105, 105, 106, 106, 107, 107, 107, 107, 108, 108,
- 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
- 109, 109, 110, 110, 110, 110, 111, 111, 112, 112,
- 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
- 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
- 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
- 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
- 112, 112, 112, 112, 112, 112, 113, 113, 113, 113,
- 113, 114, 114, 114, 114, 115, 115, 115, 115, 115,
- 116, 116, 116, 116, 117, 117, 118, 118, 118, 118,
- 118, 118, 118, 118, 118, 118, 118, 118, 118, 119,
- 120, 121, 121, 121, 122, 122, 123, 123, 124, 124
-};
+#define YYPACT_NINF -282
-/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
-static const yytype_uint8 yyr2[] =
-{
- 0, 2, 1, 0, 2, 0, 2, 1, 3, 1,
- 1, 1, 2, 2, 1, 1, 2, 2, 1, 1,
- 1, 3, 5, 5, 3, 5, 5, 3, 3, 3,
- 1, 3, 1, 3, 1, 1, 1, 3, 1, 3,
- 2, 2, 1, 2, 1, 2, 3, 3, 4, 1,
- 3, 1, 3, 1, 2, 3, 4, 1, 1, 3,
- 2, 4, 3, 5, 1, 1, 2, 1, 3, 1,
- 2, 3, 3, 1, 0, 2, 3, 5, 4, 6,
- 5, 6, 3, 2, 1, 2, 2, 3, 3, 4,
- 4, 4, 4, 3, 4, 3, 4, 3, 3, 1,
- 1, 3, 1, 2, 3, 3, 3, 3, 1, 1,
- 1, 1, 2, 4, 5, 2, 2, 2, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 2, 3, 4,
- 3, 4, 5, 6, 6, 7, 5, 3, 3, 3,
- 2, 2, 2, 2, 3, 4, 1, 1, 2, 2,
- 3, 4, 3, 5, 7, 1, 3, 3, 1, 1,
- 2, 4, 3, 5, 2, 4, 1, 1, 2, 5,
- 7, 5, 7, 9, 8, 2, 2, 2, 3, 1,
- 1, 0, 1, 1, 0, 1, 0, 1, 1, 3
-};
+#define yypact_value_is_default(Yystate) \
+ (!!((Yystate) == (-282)))
-/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
- Performed when YYTABLE doesn't specify something else to do. Zero
- means the default is an error. */
-static const yytype_uint8 yydefact[] =
-{
- 3, 0, 2, 1, 7, 0, 0, 0, 0, 9,
- 0, 5, 0, 176, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 99, 110, 111, 15, 14, 108, 4, 0, 10, 18,
- 0, 0, 42, 190, 19, 20, 109, 189, 11, 0,
- 177, 108, 152, 151, 115, 116, 117, 0, 108, 0,
- 0, 36, 35, 0, 38, 0, 0, 0, 0, 0,
- 7, 0, 0, 3, 0, 44, 83, 0, 44, 137,
- 0, 0, 0, 191, 185, 186, 187, 0, 112, 0,
- 0, 0, 43, 17, 16, 12, 13, 40, 53, 41,
- 49, 51, 0, 0, 0, 0, 165, 168, 156, 153,
- 169, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 150, 157, 178, 0, 59, 6, 98,
- 0, 148, 0, 97, 0, 0, 0, 21, 24, 27,
- 28, 29, 0, 0, 0, 82, 0, 53, 74, 0,
- 140, 138, 0, 0, 0, 193, 0, 198, 0, 192,
- 188, 7, 93, 0, 102, 0, 100, 8, 84, 45,
- 0, 0, 0, 74, 54, 0, 0, 95, 0, 88,
- 0, 0, 154, 0, 0, 0, 0, 136, 131, 130,
- 134, 133, 128, 129, 124, 125, 126, 127, 132, 118,
- 119, 120, 121, 122, 123, 135, 147, 0, 0, 0,
- 149, 158, 159, 113, 0, 107, 106, 37, 39, 30,
- 0, 32, 0, 0, 0, 155, 74, 0, 74, 73,
- 0, 0, 69, 0, 0, 74, 141, 0, 139, 0,
- 0, 0, 53, 194, 0, 0, 103, 94, 0, 0,
- 86, 91, 85, 89, 46, 55, 0, 50, 52, 58,
- 57, 96, 92, 90, 174, 0, 170, 166, 167, 0,
- 0, 162, 0, 160, 114, 0, 23, 0, 22, 26,
- 25, 55, 0, 142, 70, 0, 74, 74, 75, 47,
- 60, 64, 0, 67, 0, 65, 0, 0, 0, 179,
- 181, 0, 0, 195, 0, 199, 101, 104, 105, 87,
- 80, 56, 0, 172, 0, 146, 161, 0, 31, 33,
- 56, 144, 71, 72, 53, 76, 0, 62, 0, 66,
- 143, 0, 48, 0, 0, 0, 196, 81, 175, 0,
- 171, 163, 0, 78, 0, 61, 0, 68, 145, 180,
- 182, 0, 0, 197, 173, 0, 0, 77, 63, 184,
- 0, 164, 79, 183
-};
+#define YYTABLE_NINF -45
-/* YYDEFGOTO[NTERM-NUM]. */
-static const yytype_int16 yydefgoto[] =
-{
- -1, 1, 2, 57, 51, 36, 37, 38, 231, 232,
- 63, 64, 65, 39, 40, 41, 42, 184, 161, 99,
- 100, 101, 268, 43, 269, 304, 305, 240, 241, 242,
- 44, 45, 180, 46, 174, 175, 59, 47, 132, 133,
- 134, 195, 196, 48, 49, 50, 168, 314, 362, 169
-};
+#define yytable_value_is_error(Yytable_value) \
+ 0
-/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
- STATE-NUM. */
-#define YYPACT_NINF -282
+ /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+ STATE-NUM. */
static const yytype_int16 yypact[] =
{
-282, 30, 398, -282, -282, 846, 846, 846, 846, -282,
@@ -897,7 +703,52 @@ static const yytype_int16 yypact[] =
538, -282, -282, -282
};
-/* YYPGOTO[NTERM-NUM]. */
+ /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
+ Performed when YYTABLE does not specify something else to do. Zero
+ means the default is an error. */
+static const yytype_uint8 yydefact[] =
+{
+ 3, 0, 2, 1, 7, 0, 0, 0, 0, 9,
+ 0, 5, 0, 176, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 99, 110, 111, 15, 14, 108, 4, 0, 10, 18,
+ 0, 0, 42, 190, 19, 20, 109, 189, 11, 0,
+ 177, 108, 152, 151, 115, 116, 117, 0, 108, 0,
+ 0, 36, 35, 0, 38, 0, 0, 0, 0, 0,
+ 7, 0, 0, 3, 0, 44, 83, 0, 44, 137,
+ 0, 0, 0, 191, 185, 186, 187, 0, 112, 0,
+ 0, 0, 43, 17, 16, 12, 13, 40, 53, 41,
+ 49, 51, 0, 0, 0, 0, 165, 168, 156, 153,
+ 169, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 150, 157, 178, 0, 59, 6, 98,
+ 0, 148, 0, 97, 0, 0, 0, 21, 24, 27,
+ 28, 29, 0, 0, 0, 82, 0, 53, 74, 0,
+ 140, 138, 0, 0, 0, 193, 0, 198, 0, 192,
+ 188, 7, 93, 0, 102, 0, 100, 8, 84, 45,
+ 0, 0, 0, 74, 54, 0, 0, 95, 0, 88,
+ 0, 0, 154, 0, 0, 0, 0, 136, 131, 130,
+ 134, 133, 128, 129, 124, 125, 126, 127, 132, 118,
+ 119, 120, 121, 122, 123, 135, 147, 0, 0, 0,
+ 149, 158, 159, 113, 0, 107, 106, 37, 39, 30,
+ 0, 32, 0, 0, 0, 155, 74, 0, 74, 73,
+ 0, 0, 69, 0, 0, 74, 141, 0, 139, 0,
+ 0, 0, 53, 194, 0, 0, 103, 94, 0, 0,
+ 86, 91, 85, 89, 46, 55, 0, 50, 52, 58,
+ 57, 96, 92, 90, 174, 0, 170, 166, 167, 0,
+ 0, 162, 0, 160, 114, 0, 23, 0, 22, 26,
+ 25, 55, 0, 142, 70, 0, 74, 74, 75, 47,
+ 60, 64, 0, 67, 0, 65, 0, 0, 0, 179,
+ 181, 0, 0, 195, 0, 199, 101, 104, 105, 87,
+ 80, 56, 0, 172, 0, 146, 161, 0, 31, 33,
+ 56, 144, 71, 72, 53, 76, 0, 62, 0, 66,
+ 143, 0, 48, 0, 0, 0, 196, 81, 175, 0,
+ 171, 163, 0, 78, 0, 61, 0, 68, 145, 180,
+ 182, 0, 0, 197, 173, 0, 0, 77, 63, 184,
+ 0, 164, 79, 183
+};
+
+ /* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
-282, -282, 293, -282, 10, 307, -282, 333, 75, 212,
@@ -907,10 +758,19 @@ static const yytype_int16 yypgoto[] =
271, -282, -282, -19, -79, -163, -282, -282, -282, 61
};
-/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
- positive, shift that token. If negative, reduce the rule which
- number is the opposite. If YYTABLE_NINF, syntax error. */
-#define YYTABLE_NINF -45
+ /* YYDEFGOTO[NTERM-NUM]. */
+static const yytype_int16 yydefgoto[] =
+{
+ -1, 1, 2, 57, 51, 36, 37, 38, 231, 232,
+ 63, 64, 65, 39, 40, 41, 42, 184, 161, 99,
+ 100, 101, 268, 43, 269, 304, 305, 240, 241, 242,
+ 44, 45, 180, 46, 174, 175, 59, 47, 132, 133,
+ 134, 195, 196, 48, 49, 50, 168, 314, 362, 169
+};
+
+ /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
+ positive, shift that token. If negative, reduce the rule whose
+ number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
52, 53, 54, 55, 167, 56, 82, 60, 77, 222,
@@ -1102,12 +962,6 @@ static const yytype_int16 yytable[] =
131
};
-#define yypact_value_is_default(Yystate) \
- (!!((Yystate) == (-282)))
-
-#define yytable_value_is_error(Yytable_value) \
- YYID (0)
-
static const yytype_int16 yycheck[] =
{
5, 6, 7, 8, 83, 10, 25, 12, 21, 134,
@@ -1299,8 +1153,8 @@ static const yytype_int16 yycheck[] =
39
};
-/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
- symbol of state STATE-NUM. */
+ /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+ symbol of state STATE-NUM. */
static const yytype_uint8 yystos[] =
{
0, 76, 77, 0, 3, 7, 8, 25, 26, 29,
@@ -1343,30 +1197,66 @@ static const yytype_uint8 yystos[] =
42, 40, 97, 118
};
-#define yyerrok (yyerrstatus = 0)
-#define yyclearin (yychar = YYEMPTY)
-#define YYEMPTY (-2)
-#define YYEOF 0
-
-#define YYACCEPT goto yyacceptlab
-#define YYABORT goto yyabortlab
-#define YYERROR goto yyerrorlab
-
-
-/* Like YYERROR except do call yyerror. This remains here temporarily
- to ease the transition to the new meaning of YYERROR, for GCC.
- Once GCC version 2 has supplanted version 1, this can go. However,
- YYFAIL appears to be in use. Nevertheless, it is formally deprecated
- in Bison 2.4.2's NEWS entry, where a plan to phase it out is
- discussed. */
-
-#define YYFAIL goto yyerrlab
-#if defined YYFAIL
- /* This is here to suppress warnings from the GCC cpp's
- -Wunused-macros. Normally we don't worry about that warning, but
- some users do, and we want to make it easy for users to remove
- YYFAIL uses, which will produce warnings from Bison 2.5. */
-#endif
+ /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
+static const yytype_uint8 yyr1[] =
+{
+ 0, 75, 76, 77, 77, 78, 78, 79, 79, 79,
+ 80, 80, 80, 80, 81, 81, 81, 81, 82, 82,
+ 82, 82, 82, 82, 82, 82, 82, 82, 82, 82,
+ 83, 83, 84, 84, 85, 85, 86, 86, 87, 87,
+ 88, 89, 90, 90, 91, 92, 92, 93, 93, 94,
+ 94, 95, 95, 96, 96, 96, 96, 97, 97, 98,
+ 99, 99, 99, 99, 100, 100, 100, 101, 101, 102,
+ 102, 102, 102, 103, 103, 104, 104, 104, 104, 104,
+ 105, 105, 106, 106, 107, 107, 107, 107, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 109, 109, 110, 110, 110, 110, 111, 111, 112, 112,
+ 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
+ 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
+ 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
+ 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
+ 112, 112, 112, 112, 112, 112, 113, 113, 113, 113,
+ 113, 114, 114, 114, 114, 115, 115, 115, 115, 115,
+ 116, 116, 116, 116, 117, 117, 118, 118, 118, 118,
+ 118, 118, 118, 118, 118, 118, 118, 118, 118, 119,
+ 120, 121, 121, 121, 122, 122, 123, 123, 124, 124
+};
+
+ /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
+static const yytype_uint8 yyr2[] =
+{
+ 0, 2, 1, 0, 2, 0, 2, 1, 3, 1,
+ 1, 1, 2, 2, 1, 1, 2, 2, 1, 1,
+ 1, 3, 5, 5, 3, 5, 5, 3, 3, 3,
+ 1, 3, 1, 3, 1, 1, 1, 3, 1, 3,
+ 2, 2, 1, 2, 1, 2, 3, 3, 4, 1,
+ 3, 1, 3, 1, 2, 3, 4, 1, 1, 3,
+ 2, 4, 3, 5, 1, 1, 2, 1, 3, 1,
+ 2, 3, 3, 1, 0, 2, 3, 5, 4, 6,
+ 5, 6, 3, 2, 1, 2, 2, 3, 3, 4,
+ 4, 4, 4, 3, 4, 3, 4, 3, 3, 1,
+ 1, 3, 1, 2, 3, 3, 3, 3, 1, 1,
+ 1, 1, 2, 4, 5, 2, 2, 2, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 2, 3, 4,
+ 3, 4, 5, 6, 6, 7, 5, 3, 3, 3,
+ 2, 2, 2, 2, 3, 4, 1, 1, 2, 2,
+ 3, 4, 3, 5, 7, 1, 3, 3, 1, 1,
+ 2, 4, 3, 5, 2, 4, 1, 1, 2, 5,
+ 7, 5, 7, 9, 8, 2, 2, 2, 3, 1,
+ 1, 0, 1, 1, 0, 1, 0, 1, 1, 3
+};
+
+
+#define yyerrok (yyerrstatus = 0)
+#define yyclearin (yychar = YYEMPTY)
+#define YYEMPTY (-2)
+#define YYEOF 0
+
+#define YYACCEPT goto yyacceptlab
+#define YYABORT goto yyabortlab
+#define YYERROR goto yyerrorlab
+
#define YYRECOVERING() (!!yyerrstatus)
@@ -1383,27 +1273,15 @@ do \
else \
{ \
yyerror (YY_("syntax error: cannot back up")); \
- YYERROR; \
- } \
-while (YYID (0))
+ YYERROR; \
+ } \
+while (0)
/* Error token number */
-#define YYTERROR 1
-#define YYERRCODE 256
+#define YYTERROR 1
+#define YYERRCODE 256
-/* This macro is provided for backward compatibility. */
-#ifndef YY_LOCATION_PRINT
-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-#endif
-
-
-/* YYLEX -- calling `yylex' with the right arguments. */
-#ifdef YYLEX_PARAM
-# define YYLEX yylex (YYLEX_PARAM)
-#else
-# define YYLEX yylex ()
-#endif
/* Enable debugging if requested. */
#if YYDEBUG
@@ -1413,40 +1291,36 @@ while (YYID (0))
# define YYFPRINTF fprintf
# endif
-# define YYDPRINTF(Args) \
-do { \
- if (yydebug) \
- YYFPRINTF Args; \
-} while (YYID (0))
+# define YYDPRINTF(Args) \
+do { \
+ if (yydebug) \
+ YYFPRINTF Args; \
+} while (0)
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
-do { \
- if (yydebug) \
- { \
- YYFPRINTF (stderr, "%s ", Title); \
- yy_symbol_print (stderr, \
- Type, Value); \
- YYFPRINTF (stderr, "\n"); \
- } \
-} while (YYID (0))
+/* This macro is provided for backward compatibility. */
+#ifndef YY_LOCATION_PRINT
+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
+#endif
-/*--------------------------------.
-| Print this symbol on YYOUTPUT. |
-`--------------------------------*/
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
+do { \
+ if (yydebug) \
+ { \
+ YYFPRINTF (stderr, "%s ", Title); \
+ yy_symbol_print (stderr, \
+ Type, Value); \
+ YYFPRINTF (stderr, "\n"); \
+ } \
+} while (0)
+
+
+/*----------------------------------------.
+| Print this symbol's value on YYOUTPUT. |
+`----------------------------------------*/
-/*ARGSUSED*/
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
static void
yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
-#else
-static void
-yy_symbol_value_print (yyoutput, yytype, yyvaluep)
- FILE *yyoutput;
- int yytype;
- YYSTYPE const * const yyvaluep;
-#endif
{
FILE *yyo = yyoutput;
YYUSE (yyo);
@@ -1455,14 +1329,8 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep)
# ifdef YYPRINT
if (yytype < YYNTOKENS)
YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-# else
- YYUSE (yyoutput);
# endif
- switch (yytype)
- {
- default:
- break;
- }
+ YYUSE (yytype);
}
@@ -1470,22 +1338,11 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep)
| Print this symbol on YYOUTPUT. |
`--------------------------------*/
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
static void
yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
-#else
-static void
-yy_symbol_print (yyoutput, yytype, yyvaluep)
- FILE *yyoutput;
- int yytype;
- YYSTYPE const * const yyvaluep;
-#endif
{
- if (yytype < YYNTOKENS)
- YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
- else
- YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
+ YYFPRINTF (yyoutput, "%s %s (",
+ yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
yy_symbol_value_print (yyoutput, yytype, yyvaluep);
YYFPRINTF (yyoutput, ")");
@@ -1496,16 +1353,8 @@ yy_symbol_print (yyoutput, yytype, yyvaluep)
| TOP (included). |
`------------------------------------------------------------------*/
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
static void
yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
-#else
-static void
-yy_stack_print (yybottom, yytop)
- yytype_int16 *yybottom;
- yytype_int16 *yytop;
-#endif
{
YYFPRINTF (stderr, "Stack now");
for (; yybottom <= yytop; yybottom++)
@@ -1516,49 +1365,42 @@ yy_stack_print (yybottom, yytop)
YYFPRINTF (stderr, "\n");
}
-# define YY_STACK_PRINT(Bottom, Top) \
-do { \
- if (yydebug) \
- yy_stack_print ((Bottom), (Top)); \
-} while (YYID (0))
+# define YY_STACK_PRINT(Bottom, Top) \
+do { \
+ if (yydebug) \
+ yy_stack_print ((Bottom), (Top)); \
+} while (0)
/*------------------------------------------------.
| Report that the YYRULE is going to be reduced. |
`------------------------------------------------*/
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-static void
-yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
-#else
static void
-yy_reduce_print (yyvsp, yyrule)
- YYSTYPE *yyvsp;
- int yyrule;
-#endif
+yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
{
+ unsigned long int yylno = yyrline[yyrule];
int yynrhs = yyr2[yyrule];
int yyi;
- unsigned long int yylno = yyrline[yyrule];
YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
- yyrule - 1, yylno);
+ yyrule - 1, yylno);
/* The symbols being reduced. */
for (yyi = 0; yyi < yynrhs; yyi++)
{
YYFPRINTF (stderr, " $%d = ", yyi + 1);
- yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
- &(yyvsp[(yyi + 1) - (yynrhs)])
- );
+ yy_symbol_print (stderr,
+ yystos[yyssp[yyi + 1 - yynrhs]],
+ &(yyvsp[(yyi + 1) - (yynrhs)])
+ );
YYFPRINTF (stderr, "\n");
}
}
-# define YY_REDUCE_PRINT(Rule) \
-do { \
- if (yydebug) \
- yy_reduce_print (yyvsp, Rule); \
-} while (YYID (0))
+# define YY_REDUCE_PRINT(Rule) \
+do { \
+ if (yydebug) \
+ yy_reduce_print (yyssp, yyvsp, Rule); \
+} while (0)
/* Nonzero means print parse trace. It is left uninitialized so that
multiple parsers can coexist. */
@@ -1572,7 +1414,7 @@ int yydebug;
/* YYINITDEPTH -- initial size of the parser's stacks. */
-#ifndef YYINITDEPTH
+#ifndef YYINITDEPTH
# define YYINITDEPTH 200
#endif
@@ -1595,15 +1437,8 @@ int yydebug;
# define yystrlen strlen
# else
/* Return the length of YYSTR. */
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
static YYSIZE_T
yystrlen (const char *yystr)
-#else
-static YYSIZE_T
-yystrlen (yystr)
- const char *yystr;
-#endif
{
YYSIZE_T yylen;
for (yylen = 0; yystr[yylen]; yylen++)
@@ -1619,16 +1454,8 @@ yystrlen (yystr)
# else
/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
YYDEST. */
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
static char *
yystpcpy (char *yydest, const char *yysrc)
-#else
-static char *
-yystpcpy (yydest, yysrc)
- char *yydest;
- const char *yysrc;
-#endif
{
char *yyd = yydest;
const char *yys = yysrc;
@@ -1658,27 +1485,27 @@ yytnamerr (char *yyres, const char *yystr)
char const *yyp = yystr;
for (;;)
- switch (*++yyp)
- {
- case '\'':
- case ',':
- goto do_not_strip_quotes;
-
- case '\\':
- if (*++yyp != '\\')
- goto do_not_strip_quotes;
- /* Fall through. */
- default:
- if (yyres)
- yyres[yyn] = *yyp;
- yyn++;
- break;
-
- case '"':
- if (yyres)
- yyres[yyn] = '\0';
- return yyn;
- }
+ switch (*++yyp)
+ {
+ case '\'':
+ case ',':
+ goto do_not_strip_quotes;
+
+ case '\\':
+ if (*++yyp != '\\')
+ goto do_not_strip_quotes;
+ /* Fall through. */
+ default:
+ if (yyres)
+ yyres[yyn] = *yyp;
+ yyn++;
+ break;
+
+ case '"':
+ if (yyres)
+ yyres[yyn] = '\0';
+ return yyn;
+ }
do_not_strip_quotes: ;
}
@@ -1701,11 +1528,11 @@ static int
yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
yytype_int16 *yyssp, int yytoken)
{
- YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
+ YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
YYSIZE_T yysize = yysize0;
enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
/* Internationalized format string. */
- const char *yyformat = YY_NULL;
+ const char *yyformat = YY_NULLPTR;
/* Arguments of yyformat. */
char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
/* Number of reported tokens (one for the "unexpected", one per
@@ -1713,10 +1540,6 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
int yycount = 0;
/* There are many possibilities here to consider:
- - Assume YYFAIL is not used. It's too flawed to consider. See
- <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
- for details. YYERROR is fine as it does not invoke this
- function.
- If this state is a consistent state with a default action, then
the only way this function was invoked is if the default action
is an error action. In that case, don't check for expected
@@ -1766,7 +1589,7 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
}
yyarg[yycount++] = yytname[yyx];
{
- YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
+ YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
if (! (yysize <= yysize1
&& yysize1 <= YYSTACK_ALLOC_MAXIMUM))
return 2;
@@ -1833,31 +1656,17 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
| Release the memory associated to this symbol. |
`-----------------------------------------------*/
-/*ARGSUSED*/
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
static void
yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
-#else
-static void
-yydestruct (yymsg, yytype, yyvaluep)
- const char *yymsg;
- int yytype;
- YYSTYPE *yyvaluep;
-#endif
{
YYUSE (yyvaluep);
-
if (!yymsg)
yymsg = "Deleting";
YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
- switch (yytype)
- {
-
- default:
- break;
- }
+ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+ YYUSE (yytype);
+ YY_IGNORE_MAYBE_UNINITIALIZED_END
}
@@ -1866,18 +1675,8 @@ yydestruct (yymsg, yytype, yyvaluep)
/* The lookahead symbol. */
int yychar;
-
-#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-# define YY_IGNORE_MAYBE_UNINITIALIZED_END
-#endif
-#ifndef YY_INITIAL_VALUE
-# define YY_INITIAL_VALUE(Value) /* Nothing. */
-#endif
-
/* The semantic value of the lookahead symbol. */
-YYSTYPE yylval YY_INITIAL_VALUE(yyval_default);
-
+YYSTYPE yylval;
/* Number of syntax errors so far. */
int yynerrs;
@@ -1886,35 +1685,16 @@ int yynerrs;
| yyparse. |
`----------*/
-#ifdef YYPARSE_PARAM
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-int
-yyparse (void *YYPARSE_PARAM)
-#else
-int
-yyparse (YYPARSE_PARAM)
- void *YYPARSE_PARAM;
-#endif
-#else /* ! YYPARSE_PARAM */
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
int
yyparse (void)
-#else
-int
-yyparse ()
-
-#endif
-#endif
{
int yystate;
/* Number of tokens to shift before error messages enabled. */
int yyerrstatus;
/* The stacks and their tools:
- `yyss': related to states.
- `yyvs': related to semantic values.
+ 'yyss': related to states.
+ 'yyvs': related to semantic values.
Refer to the stacks through separate pointers, to allow yyoverflow
to reallocate them elsewhere. */
@@ -1982,23 +1762,23 @@ yyparse ()
#ifdef yyoverflow
{
- /* Give user a chance to reallocate the stack. Use copies of
- these so that the &'s don't force the real ones into
- memory. */
- YYSTYPE *yyvs1 = yyvs;
- yytype_int16 *yyss1 = yyss;
-
- /* Each stack pointer address is followed by the size of the
- data in use in that stack, in bytes. This used to be a
- conditional around just the two extra args, but that might
- be undefined if yyoverflow is a macro. */
- yyoverflow (YY_("memory exhausted"),
- &yyss1, yysize * sizeof (*yyssp),
- &yyvs1, yysize * sizeof (*yyvsp),
- &yystacksize);
-
- yyss = yyss1;
- yyvs = yyvs1;
+ /* Give user a chance to reallocate the stack. Use copies of
+ these so that the &'s don't force the real ones into
+ memory. */
+ YYSTYPE *yyvs1 = yyvs;
+ yytype_int16 *yyss1 = yyss;
+
+ /* Each stack pointer address is followed by the size of the
+ data in use in that stack, in bytes. This used to be a
+ conditional around just the two extra args, but that might
+ be undefined if yyoverflow is a macro. */
+ yyoverflow (YY_("memory exhausted"),
+ &yyss1, yysize * sizeof (*yyssp),
+ &yyvs1, yysize * sizeof (*yyvsp),
+ &yystacksize);
+
+ yyss = yyss1;
+ yyvs = yyvs1;
}
#else /* no yyoverflow */
# ifndef YYSTACK_RELOCATE
@@ -2006,22 +1786,22 @@ yyparse ()
# else
/* Extend the stack our own way. */
if (YYMAXDEPTH <= yystacksize)
- goto yyexhaustedlab;
+ goto yyexhaustedlab;
yystacksize *= 2;
if (YYMAXDEPTH < yystacksize)
- yystacksize = YYMAXDEPTH;
+ yystacksize = YYMAXDEPTH;
{
- yytype_int16 *yyss1 = yyss;
- union yyalloc *yyptr =
- (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
- if (! yyptr)
- goto yyexhaustedlab;
- YYSTACK_RELOCATE (yyss_alloc, yyss);
- YYSTACK_RELOCATE (yyvs_alloc, yyvs);
+ yytype_int16 *yyss1 = yyss;
+ union yyalloc *yyptr =
+ (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
+ if (! yyptr)
+ goto yyexhaustedlab;
+ YYSTACK_RELOCATE (yyss_alloc, yyss);
+ YYSTACK_RELOCATE (yyvs_alloc, yyvs);
# undef YYSTACK_RELOCATE
- if (yyss1 != yyssa)
- YYSTACK_FREE (yyss1);
+ if (yyss1 != yyssa)
+ YYSTACK_FREE (yyss1);
}
# endif
#endif /* no yyoverflow */
@@ -2030,10 +1810,10 @@ yyparse ()
yyvsp = yyvs + yysize - 1;
YYDPRINTF ((stderr, "Stack size increased to %lu\n",
- (unsigned long int) yystacksize));
+ (unsigned long int) yystacksize));
if (yyss + yystacksize - 1 <= yyssp)
- YYABORT;
+ YYABORT;
}
YYDPRINTF ((stderr, "Entering state %d\n", yystate));
@@ -2062,7 +1842,7 @@ yybackup:
if (yychar == YYEMPTY)
{
YYDPRINTF ((stderr, "Reading a token: "));
- yychar = YYLEX;
+ yychar = yylex ();
}
if (yychar <= YYEOF)
@@ -2127,7 +1907,7 @@ yyreduce:
yylen = yyr2[yyn];
/* If YYLEN is nonzero, implement the default value of the action:
- `$$ = $1'.
+ '$$ = $1'.
Otherwise, the following line sets YYVAL to garbage.
This behavior is undocumented and Bison
@@ -2141,1227 +1921,1226 @@ yyreduce:
switch (yyn)
{
case 2:
-/* Line 1792 of yacc.c */
-#line 191 "camp.y"
- { absyntax::root = (yyvsp[(1) - (1)].b); }
+#line 191 "camp.y" /* yacc.c:1646 */
+ { absyntax::root = (yyvsp[0].b); }
+#line 1927 "camp.tab.c" /* yacc.c:1646 */
break;
case 3:
-/* Line 1792 of yacc.c */
-#line 195 "camp.y"
+#line 195 "camp.y" /* yacc.c:1646 */
{ (yyval.b) = new file(lexerPos(), false); }
+#line 1933 "camp.tab.c" /* yacc.c:1646 */
break;
case 4:
-/* Line 1792 of yacc.c */
-#line 197 "camp.y"
- { (yyval.b) = (yyvsp[(1) - (2)].b); (yyval.b)->add((yyvsp[(2) - (2)].run)); }
+#line 197 "camp.y" /* yacc.c:1646 */
+ { (yyval.b) = (yyvsp[-1].b); (yyval.b)->add((yyvsp[0].run)); }
+#line 1939 "camp.tab.c" /* yacc.c:1646 */
break;
case 5:
-/* Line 1792 of yacc.c */
-#line 201 "camp.y"
+#line 201 "camp.y" /* yacc.c:1646 */
{ (yyval.b) = new block(lexerPos(), true); }
+#line 1945 "camp.tab.c" /* yacc.c:1646 */
break;
case 6:
-/* Line 1792 of yacc.c */
-#line 203 "camp.y"
- { (yyval.b) = (yyvsp[(1) - (2)].b); (yyval.b)->add((yyvsp[(2) - (2)].run)); }
+#line 203 "camp.y" /* yacc.c:1646 */
+ { (yyval.b) = (yyvsp[-1].b); (yyval.b)->add((yyvsp[0].run)); }
+#line 1951 "camp.tab.c" /* yacc.c:1646 */
break;
case 7:
-/* Line 1792 of yacc.c */
-#line 207 "camp.y"
- { (yyval.n) = new simpleName((yyvsp[(1) - (1)].ps).pos, (yyvsp[(1) - (1)].ps).sym); }
+#line 207 "camp.y" /* yacc.c:1646 */
+ { (yyval.n) = new simpleName((yyvsp[0].ps).pos, (yyvsp[0].ps).sym); }
+#line 1957 "camp.tab.c" /* yacc.c:1646 */
break;
case 8:
-/* Line 1792 of yacc.c */
-#line 208 "camp.y"
- { (yyval.n) = new qualifiedName((yyvsp[(2) - (3)].pos), (yyvsp[(1) - (3)].n), (yyvsp[(3) - (3)].ps).sym); }
+#line 208 "camp.y" /* yacc.c:1646 */
+ { (yyval.n) = new qualifiedName((yyvsp[-1].pos), (yyvsp[-2].n), (yyvsp[0].ps).sym); }
+#line 1963 "camp.tab.c" /* yacc.c:1646 */
break;
case 9:
-/* Line 1792 of yacc.c */
-#line 209 "camp.y"
- { (yyval.n) = new simpleName((yyvsp[(1) - (1)].ps).pos,
+#line 209 "camp.y" /* yacc.c:1646 */
+ { (yyval.n) = new simpleName((yyvsp[0].ps).pos,
symbol::trans("operator answer")); }
+#line 1970 "camp.tab.c" /* yacc.c:1646 */
break;
case 10:
-/* Line 1792 of yacc.c */
-#line 214 "camp.y"
- { (yyval.run) = (yyvsp[(1) - (1)].d); }
+#line 214 "camp.y" /* yacc.c:1646 */
+ { (yyval.run) = (yyvsp[0].d); }
+#line 1976 "camp.tab.c" /* yacc.c:1646 */
break;
case 11:
-/* Line 1792 of yacc.c */
-#line 215 "camp.y"
- { (yyval.run) = (yyvsp[(1) - (1)].s); }
+#line 215 "camp.y" /* yacc.c:1646 */
+ { (yyval.run) = (yyvsp[0].s); }
+#line 1982 "camp.tab.c" /* yacc.c:1646 */
break;
case 12:
-/* Line 1792 of yacc.c */
-#line 217 "camp.y"
- { (yyval.run) = new modifiedRunnable((yyvsp[(1) - (2)].ml)->getPos(), (yyvsp[(1) - (2)].ml), (yyvsp[(2) - (2)].d)); }
+#line 217 "camp.y" /* yacc.c:1646 */
+ { (yyval.run) = new modifiedRunnable((yyvsp[-1].ml)->getPos(), (yyvsp[-1].ml), (yyvsp[0].d)); }
+#line 1988 "camp.tab.c" /* yacc.c:1646 */
break;
case 13:
-/* Line 1792 of yacc.c */
-#line 219 "camp.y"
- { (yyval.run) = new modifiedRunnable((yyvsp[(1) - (2)].ml)->getPos(), (yyvsp[(1) - (2)].ml), (yyvsp[(2) - (2)].s)); }
+#line 219 "camp.y" /* yacc.c:1646 */
+ { (yyval.run) = new modifiedRunnable((yyvsp[-1].ml)->getPos(), (yyvsp[-1].ml), (yyvsp[0].s)); }
+#line 1994 "camp.tab.c" /* yacc.c:1646 */
break;
case 14:
-/* Line 1792 of yacc.c */
-#line 223 "camp.y"
- { (yyval.ml) = new modifierList((yyvsp[(1) - (1)].mod).pos); (yyval.ml)->add((yyvsp[(1) - (1)].mod).val); }
+#line 223 "camp.y" /* yacc.c:1646 */
+ { (yyval.ml) = new modifierList((yyvsp[0].mod).pos); (yyval.ml)->add((yyvsp[0].mod).val); }
+#line 2000 "camp.tab.c" /* yacc.c:1646 */
break;
case 15:
-/* Line 1792 of yacc.c */
-#line 224 "camp.y"
- { (yyval.ml) = new modifierList((yyvsp[(1) - (1)].perm).pos); (yyval.ml)->add((yyvsp[(1) - (1)].perm).val); }
+#line 224 "camp.y" /* yacc.c:1646 */
+ { (yyval.ml) = new modifierList((yyvsp[0].perm).pos); (yyval.ml)->add((yyvsp[0].perm).val); }
+#line 2006 "camp.tab.c" /* yacc.c:1646 */
break;
case 16:
-/* Line 1792 of yacc.c */
-#line 226 "camp.y"
- { (yyval.ml) = (yyvsp[(1) - (2)].ml); (yyval.ml)->add((yyvsp[(2) - (2)].mod).val); }
+#line 226 "camp.y" /* yacc.c:1646 */
+ { (yyval.ml) = (yyvsp[-1].ml); (yyval.ml)->add((yyvsp[0].mod).val); }
+#line 2012 "camp.tab.c" /* yacc.c:1646 */
break;
case 17:
-/* Line 1792 of yacc.c */
-#line 228 "camp.y"
- { (yyval.ml) = (yyvsp[(1) - (2)].ml); (yyval.ml)->add((yyvsp[(2) - (2)].perm).val); }
+#line 228 "camp.y" /* yacc.c:1646 */
+ { (yyval.ml) = (yyvsp[-1].ml); (yyval.ml)->add((yyvsp[0].perm).val); }
+#line 2018 "camp.tab.c" /* yacc.c:1646 */
break;
case 18:
-/* Line 1792 of yacc.c */
-#line 232 "camp.y"
- { (yyval.d) = (yyvsp[(1) - (1)].vd); }
+#line 232 "camp.y" /* yacc.c:1646 */
+ { (yyval.d) = (yyvsp[0].vd); }
+#line 2024 "camp.tab.c" /* yacc.c:1646 */
break;
case 19:
-/* Line 1792 of yacc.c */
-#line 233 "camp.y"
- { (yyval.d) = (yyvsp[(1) - (1)].d); }
+#line 233 "camp.y" /* yacc.c:1646 */
+ { (yyval.d) = (yyvsp[0].d); }
+#line 2030 "camp.tab.c" /* yacc.c:1646 */
break;
case 20:
-/* Line 1792 of yacc.c */
-#line 234 "camp.y"
- { (yyval.d) = (yyvsp[(1) - (1)].d); }
+#line 234 "camp.y" /* yacc.c:1646 */
+ { (yyval.d) = (yyvsp[0].d); }
+#line 2036 "camp.tab.c" /* yacc.c:1646 */
break;
case 21:
-/* Line 1792 of yacc.c */
-#line 236 "camp.y"
- { (yyval.d) = new accessdec((yyvsp[(1) - (3)].pos), (yyvsp[(2) - (3)].ipl)); }
+#line 236 "camp.y" /* yacc.c:1646 */
+ { (yyval.d) = new accessdec((yyvsp[-2].pos), (yyvsp[-1].ipl)); }
+#line 2042 "camp.tab.c" /* yacc.c:1646 */
break;
case 22:
-/* Line 1792 of yacc.c */
-#line 238 "camp.y"
- { (yyval.d) = new unraveldec((yyvsp[(1) - (5)].pos), (yyvsp[(2) - (5)].n), (yyvsp[(4) - (5)].ipl)); }
+#line 238 "camp.y" /* yacc.c:1646 */
+ { (yyval.d) = new unraveldec((yyvsp[-4].pos), (yyvsp[-3].n), (yyvsp[-1].ipl)); }
+#line 2048 "camp.tab.c" /* yacc.c:1646 */
break;
case 23:
-/* Line 1792 of yacc.c */
-#line 240 "camp.y"
- { (yyval.d) = new unraveldec((yyvsp[(1) - (5)].pos), (yyvsp[(2) - (5)].n), WILDCARD); }
+#line 240 "camp.y" /* yacc.c:1646 */
+ { (yyval.d) = new unraveldec((yyvsp[-4].pos), (yyvsp[-3].n), WILDCARD); }
+#line 2054 "camp.tab.c" /* yacc.c:1646 */
break;
case 24:
-/* Line 1792 of yacc.c */
-#line 241 "camp.y"
- { (yyval.d) = new unraveldec((yyvsp[(1) - (3)].pos), (yyvsp[(2) - (3)].n), WILDCARD); }
+#line 241 "camp.y" /* yacc.c:1646 */
+ { (yyval.d) = new unraveldec((yyvsp[-2].pos), (yyvsp[-1].n), WILDCARD); }
+#line 2060 "camp.tab.c" /* yacc.c:1646 */
break;
case 25:
-/* Line 1792 of yacc.c */
-#line 243 "camp.y"
- { (yyval.d) = new fromaccessdec((yyvsp[(1) - (5)].pos), (yyvsp[(2) - (5)].ps).sym, (yyvsp[(4) - (5)].ipl)); }
+#line 243 "camp.y" /* yacc.c:1646 */
+ { (yyval.d) = new fromaccessdec((yyvsp[-4].pos), (yyvsp[-3].ps).sym, (yyvsp[-1].ipl)); }
+#line 2066 "camp.tab.c" /* yacc.c:1646 */
break;
case 26:
-/* Line 1792 of yacc.c */
-#line 245 "camp.y"
- { (yyval.d) = new fromaccessdec((yyvsp[(1) - (5)].pos), (yyvsp[(2) - (5)].ps).sym, WILDCARD); }
+#line 245 "camp.y" /* yacc.c:1646 */
+ { (yyval.d) = new fromaccessdec((yyvsp[-4].pos), (yyvsp[-3].ps).sym, WILDCARD); }
+#line 2072 "camp.tab.c" /* yacc.c:1646 */
break;
case 27:
-/* Line 1792 of yacc.c */
-#line 247 "camp.y"
- { (yyval.d) = new importdec((yyvsp[(1) - (3)].pos), (yyvsp[(2) - (3)].ip)); }
+#line 247 "camp.y" /* yacc.c:1646 */
+ { (yyval.d) = new importdec((yyvsp[-2].pos), (yyvsp[-1].ip)); }
+#line 2078 "camp.tab.c" /* yacc.c:1646 */
break;
case 28:
-/* Line 1792 of yacc.c */
-#line 248 "camp.y"
- { (yyval.d) = new includedec((yyvsp[(1) - (3)].pos), (yyvsp[(2) - (3)].ps).sym); }
+#line 248 "camp.y" /* yacc.c:1646 */
+ { (yyval.d) = new includedec((yyvsp[-2].pos), (yyvsp[-1].ps).sym); }
+#line 2084 "camp.tab.c" /* yacc.c:1646 */
break;
case 29:
-/* Line 1792 of yacc.c */
-#line 250 "camp.y"
- { (yyval.d) = new includedec((yyvsp[(1) - (3)].pos), (yyvsp[(2) - (3)].stre)->getString()); }
+#line 250 "camp.y" /* yacc.c:1646 */
+ { (yyval.d) = new includedec((yyvsp[-2].pos), (yyvsp[-1].stre)->getString()); }
+#line 2090 "camp.tab.c" /* yacc.c:1646 */
break;
case 30:
-/* Line 1792 of yacc.c */
-#line 254 "camp.y"
- { (yyval.ip) = new idpair((yyvsp[(1) - (1)].ps).pos, (yyvsp[(1) - (1)].ps).sym); }
+#line 254 "camp.y" /* yacc.c:1646 */
+ { (yyval.ip) = new idpair((yyvsp[0].ps).pos, (yyvsp[0].ps).sym); }
+#line 2096 "camp.tab.c" /* yacc.c:1646 */
break;
case 31:
-/* Line 1792 of yacc.c */
-#line 256 "camp.y"
- { (yyval.ip) = new idpair((yyvsp[(1) - (3)].ps).pos, (yyvsp[(1) - (3)].ps).sym, (yyvsp[(2) - (3)].ps).sym , (yyvsp[(3) - (3)].ps).sym); }
+#line 256 "camp.y" /* yacc.c:1646 */
+ { (yyval.ip) = new idpair((yyvsp[-2].ps).pos, (yyvsp[-2].ps).sym, (yyvsp[-1].ps).sym , (yyvsp[0].ps).sym); }
+#line 2102 "camp.tab.c" /* yacc.c:1646 */
break;
case 32:
-/* Line 1792 of yacc.c */
-#line 260 "camp.y"
- { (yyval.ipl) = new idpairlist(); (yyval.ipl)->add((yyvsp[(1) - (1)].ip)); }
+#line 260 "camp.y" /* yacc.c:1646 */
+ { (yyval.ipl) = new idpairlist(); (yyval.ipl)->add((yyvsp[0].ip)); }
+#line 2108 "camp.tab.c" /* yacc.c:1646 */
break;
case 33:
-/* Line 1792 of yacc.c */
-#line 262 "camp.y"
- { (yyval.ipl) = (yyvsp[(1) - (3)].ipl); (yyval.ipl)->add((yyvsp[(3) - (3)].ip)); }
+#line 262 "camp.y" /* yacc.c:1646 */
+ { (yyval.ipl) = (yyvsp[-2].ipl); (yyval.ipl)->add((yyvsp[0].ip)); }
+#line 2114 "camp.tab.c" /* yacc.c:1646 */
break;
case 34:
-/* Line 1792 of yacc.c */
-#line 266 "camp.y"
- { (yyval.ps) = (yyvsp[(1) - (1)].ps); }
+#line 266 "camp.y" /* yacc.c:1646 */
+ { (yyval.ps) = (yyvsp[0].ps); }
+#line 2120 "camp.tab.c" /* yacc.c:1646 */
break;
case 35:
-/* Line 1792 of yacc.c */
-#line 267 "camp.y"
- { (yyval.ps).pos = (yyvsp[(1) - (1)].stre)->getPos();
- (yyval.ps).sym = symbol::literalTrans((yyvsp[(1) - (1)].stre)->getString()); }
+#line 267 "camp.y" /* yacc.c:1646 */
+ { (yyval.ps).pos = (yyvsp[0].stre)->getPos();
+ (yyval.ps).sym = symbol::literalTrans((yyvsp[0].stre)->getString()); }
+#line 2127 "camp.tab.c" /* yacc.c:1646 */
break;
case 36:
-/* Line 1792 of yacc.c */
-#line 272 "camp.y"
- { (yyval.ip) = new idpair((yyvsp[(1) - (1)].ps).pos, (yyvsp[(1) - (1)].ps).sym); }
+#line 272 "camp.y" /* yacc.c:1646 */
+ { (yyval.ip) = new idpair((yyvsp[0].ps).pos, (yyvsp[0].ps).sym); }
+#line 2133 "camp.tab.c" /* yacc.c:1646 */
break;
case 37:
-/* Line 1792 of yacc.c */
-#line 274 "camp.y"
- { (yyval.ip) = new idpair((yyvsp[(1) - (3)].ps).pos, (yyvsp[(1) - (3)].ps).sym, (yyvsp[(2) - (3)].ps).sym , (yyvsp[(3) - (3)].ps).sym); }
+#line 274 "camp.y" /* yacc.c:1646 */
+ { (yyval.ip) = new idpair((yyvsp[-2].ps).pos, (yyvsp[-2].ps).sym, (yyvsp[-1].ps).sym , (yyvsp[0].ps).sym); }
+#line 2139 "camp.tab.c" /* yacc.c:1646 */
break;
case 38:
-/* Line 1792 of yacc.c */
-#line 278 "camp.y"
- { (yyval.ipl) = new idpairlist(); (yyval.ipl)->add((yyvsp[(1) - (1)].ip)); }
+#line 278 "camp.y" /* yacc.c:1646 */
+ { (yyval.ipl) = new idpairlist(); (yyval.ipl)->add((yyvsp[0].ip)); }
+#line 2145 "camp.tab.c" /* yacc.c:1646 */
break;
case 39:
-/* Line 1792 of yacc.c */
-#line 280 "camp.y"
- { (yyval.ipl) = (yyvsp[(1) - (3)].ipl); (yyval.ipl)->add((yyvsp[(3) - (3)].ip)); }
+#line 280 "camp.y" /* yacc.c:1646 */
+ { (yyval.ipl) = (yyvsp[-2].ipl); (yyval.ipl)->add((yyvsp[0].ip)); }
+#line 2151 "camp.tab.c" /* yacc.c:1646 */
break;
case 40:
-/* Line 1792 of yacc.c */
-#line 284 "camp.y"
- { (yyval.vd) = (yyvsp[(1) - (2)].vd); }
+#line 284 "camp.y" /* yacc.c:1646 */
+ { (yyval.vd) = (yyvsp[-1].vd); }
+#line 2157 "camp.tab.c" /* yacc.c:1646 */
break;
case 41:
-/* Line 1792 of yacc.c */
-#line 288 "camp.y"
- { (yyval.vd) = new vardec((yyvsp[(1) - (2)].t)->getPos(), (yyvsp[(1) - (2)].t), (yyvsp[(2) - (2)].dil)); }
+#line 288 "camp.y" /* yacc.c:1646 */
+ { (yyval.vd) = new vardec((yyvsp[-1].t)->getPos(), (yyvsp[-1].t), (yyvsp[0].dil)); }
+#line 2163 "camp.tab.c" /* yacc.c:1646 */
break;
case 42:
-/* Line 1792 of yacc.c */
-#line 292 "camp.y"
- { (yyval.t) = (yyvsp[(1) - (1)].t); }
+#line 292 "camp.y" /* yacc.c:1646 */
+ { (yyval.t) = (yyvsp[0].t); }
+#line 2169 "camp.tab.c" /* yacc.c:1646 */
break;
case 43:
-/* Line 1792 of yacc.c */
-#line 293 "camp.y"
- { (yyval.t) = new arrayTy((yyvsp[(1) - (2)].n), (yyvsp[(2) - (2)].dim)); }
+#line 293 "camp.y" /* yacc.c:1646 */
+ { (yyval.t) = new arrayTy((yyvsp[-1].n), (yyvsp[0].dim)); }
+#line 2175 "camp.tab.c" /* yacc.c:1646 */
break;
case 44:
-/* Line 1792 of yacc.c */
-#line 297 "camp.y"
- { (yyval.t) = new nameTy((yyvsp[(1) - (1)].n)); }
+#line 297 "camp.y" /* yacc.c:1646 */
+ { (yyval.t) = new nameTy((yyvsp[0].n)); }
+#line 2181 "camp.tab.c" /* yacc.c:1646 */
break;
case 45:
-/* Line 1792 of yacc.c */
-#line 301 "camp.y"
- { (yyval.dim) = new dimensions((yyvsp[(1) - (2)].pos)); }
+#line 301 "camp.y" /* yacc.c:1646 */
+ { (yyval.dim) = new dimensions((yyvsp[-1].pos)); }
+#line 2187 "camp.tab.c" /* yacc.c:1646 */
break;
case 46:
-/* Line 1792 of yacc.c */
-#line 302 "camp.y"
- { (yyval.dim) = (yyvsp[(1) - (3)].dim); (yyval.dim)->increase(); }
+#line 302 "camp.y" /* yacc.c:1646 */
+ { (yyval.dim) = (yyvsp[-2].dim); (yyval.dim)->increase(); }
+#line 2193 "camp.tab.c" /* yacc.c:1646 */
break;
case 47:
-/* Line 1792 of yacc.c */
-#line 306 "camp.y"
- { (yyval.elist) = new explist((yyvsp[(1) - (3)].pos)); (yyval.elist)->add((yyvsp[(2) - (3)].e)); }
+#line 306 "camp.y" /* yacc.c:1646 */
+ { (yyval.elist) = new explist((yyvsp[-2].pos)); (yyval.elist)->add((yyvsp[-1].e)); }
+#line 2199 "camp.tab.c" /* yacc.c:1646 */
break;
case 48:
-/* Line 1792 of yacc.c */
-#line 308 "camp.y"
- { (yyval.elist) = (yyvsp[(1) - (4)].elist); (yyval.elist)->add((yyvsp[(3) - (4)].e)); }
+#line 308 "camp.y" /* yacc.c:1646 */
+ { (yyval.elist) = (yyvsp[-3].elist); (yyval.elist)->add((yyvsp[-1].e)); }
+#line 2205 "camp.tab.c" /* yacc.c:1646 */
break;
case 49:
-/* Line 1792 of yacc.c */
-#line 312 "camp.y"
- { (yyval.dil) = new decidlist((yyvsp[(1) - (1)].di)->getPos()); (yyval.dil)->add((yyvsp[(1) - (1)].di)); }
+#line 312 "camp.y" /* yacc.c:1646 */
+ { (yyval.dil) = new decidlist((yyvsp[0].di)->getPos()); (yyval.dil)->add((yyvsp[0].di)); }
+#line 2211 "camp.tab.c" /* yacc.c:1646 */
break;
case 50:
-/* Line 1792 of yacc.c */
-#line 314 "camp.y"
- { (yyval.dil) = (yyvsp[(1) - (3)].dil); (yyval.dil)->add((yyvsp[(3) - (3)].di)); }
+#line 314 "camp.y" /* yacc.c:1646 */
+ { (yyval.dil) = (yyvsp[-2].dil); (yyval.dil)->add((yyvsp[0].di)); }
+#line 2217 "camp.tab.c" /* yacc.c:1646 */
break;
case 51:
-/* Line 1792 of yacc.c */
-#line 318 "camp.y"
- { (yyval.di) = new decid((yyvsp[(1) - (1)].dis)->getPos(), (yyvsp[(1) - (1)].dis)); }
+#line 318 "camp.y" /* yacc.c:1646 */
+ { (yyval.di) = new decid((yyvsp[0].dis)->getPos(), (yyvsp[0].dis)); }
+#line 2223 "camp.tab.c" /* yacc.c:1646 */
break;
case 52:
-/* Line 1792 of yacc.c */
-#line 320 "camp.y"
- { (yyval.di) = new decid((yyvsp[(1) - (3)].dis)->getPos(), (yyvsp[(1) - (3)].dis), (yyvsp[(3) - (3)].vi)); }
+#line 320 "camp.y" /* yacc.c:1646 */
+ { (yyval.di) = new decid((yyvsp[-2].dis)->getPos(), (yyvsp[-2].dis), (yyvsp[0].vi)); }
+#line 2229 "camp.tab.c" /* yacc.c:1646 */
break;
case 53:
-/* Line 1792 of yacc.c */
-#line 324 "camp.y"
- { (yyval.dis) = new decidstart((yyvsp[(1) - (1)].ps).pos, (yyvsp[(1) - (1)].ps).sym); }
+#line 324 "camp.y" /* yacc.c:1646 */
+ { (yyval.dis) = new decidstart((yyvsp[0].ps).pos, (yyvsp[0].ps).sym); }
+#line 2235 "camp.tab.c" /* yacc.c:1646 */
break;
case 54:
-/* Line 1792 of yacc.c */
-#line 325 "camp.y"
- { (yyval.dis) = new decidstart((yyvsp[(1) - (2)].ps).pos, (yyvsp[(1) - (2)].ps).sym, (yyvsp[(2) - (2)].dim)); }
+#line 325 "camp.y" /* yacc.c:1646 */
+ { (yyval.dis) = new decidstart((yyvsp[-1].ps).pos, (yyvsp[-1].ps).sym, (yyvsp[0].dim)); }
+#line 2241 "camp.tab.c" /* yacc.c:1646 */
break;
case 55:
-/* Line 1792 of yacc.c */
-#line 326 "camp.y"
- { (yyval.dis) = new fundecidstart((yyvsp[(1) - (3)].ps).pos, (yyvsp[(1) - (3)].ps).sym, 0,
- new formals((yyvsp[(2) - (3)].pos))); }
+#line 326 "camp.y" /* yacc.c:1646 */
+ { (yyval.dis) = new fundecidstart((yyvsp[-2].ps).pos, (yyvsp[-2].ps).sym, 0,
+ new formals((yyvsp[-1].pos))); }
+#line 2248 "camp.tab.c" /* yacc.c:1646 */
break;
case 56:
-/* Line 1792 of yacc.c */
-#line 329 "camp.y"
- { (yyval.dis) = new fundecidstart((yyvsp[(1) - (4)].ps).pos, (yyvsp[(1) - (4)].ps).sym, 0, (yyvsp[(3) - (4)].fls)); }
+#line 329 "camp.y" /* yacc.c:1646 */
+ { (yyval.dis) = new fundecidstart((yyvsp[-3].ps).pos, (yyvsp[-3].ps).sym, 0, (yyvsp[-1].fls)); }
+#line 2254 "camp.tab.c" /* yacc.c:1646 */
break;
case 57:
-/* Line 1792 of yacc.c */
-#line 333 "camp.y"
- { (yyval.vi) = (yyvsp[(1) - (1)].e); }
+#line 333 "camp.y" /* yacc.c:1646 */
+ { (yyval.vi) = (yyvsp[0].e); }
+#line 2260 "camp.tab.c" /* yacc.c:1646 */
break;
case 58:
-/* Line 1792 of yacc.c */
-#line 334 "camp.y"
- { (yyval.vi) = (yyvsp[(1) - (1)].ai); }
+#line 334 "camp.y" /* yacc.c:1646 */
+ { (yyval.vi) = (yyvsp[0].ai); }
+#line 2266 "camp.tab.c" /* yacc.c:1646 */
break;
case 59:
-/* Line 1792 of yacc.c */
-#line 339 "camp.y"
- { (yyval.b) = (yyvsp[(2) - (3)].b); }
+#line 339 "camp.y" /* yacc.c:1646 */
+ { (yyval.b) = (yyvsp[-1].b); }
+#line 2272 "camp.tab.c" /* yacc.c:1646 */
break;
case 60:
-/* Line 1792 of yacc.c */
-#line 343 "camp.y"
- { (yyval.ai) = new arrayinit((yyvsp[(1) - (2)].pos)); }
+#line 343 "camp.y" /* yacc.c:1646 */
+ { (yyval.ai) = new arrayinit((yyvsp[-1].pos)); }
+#line 2278 "camp.tab.c" /* yacc.c:1646 */
break;
case 61:
-/* Line 1792 of yacc.c */
-#line 345 "camp.y"
- { (yyval.ai) = new arrayinit((yyvsp[(1) - (4)].pos)); (yyval.ai)->addRest((yyvsp[(3) - (4)].vi)); }
+#line 345 "camp.y" /* yacc.c:1646 */
+ { (yyval.ai) = new arrayinit((yyvsp[-3].pos)); (yyval.ai)->addRest((yyvsp[-1].vi)); }
+#line 2284 "camp.tab.c" /* yacc.c:1646 */
break;
case 62:
-/* Line 1792 of yacc.c */
-#line 347 "camp.y"
- { (yyval.ai) = (yyvsp[(2) - (3)].ai); }
+#line 347 "camp.y" /* yacc.c:1646 */
+ { (yyval.ai) = (yyvsp[-1].ai); }
+#line 2290 "camp.tab.c" /* yacc.c:1646 */
break;
case 63:
-/* Line 1792 of yacc.c */
-#line 349 "camp.y"
- { (yyval.ai) = (yyvsp[(2) - (5)].ai); (yyval.ai)->addRest((yyvsp[(4) - (5)].vi)); }
+#line 349 "camp.y" /* yacc.c:1646 */
+ { (yyval.ai) = (yyvsp[-3].ai); (yyval.ai)->addRest((yyvsp[-1].vi)); }
+#line 2296 "camp.tab.c" /* yacc.c:1646 */
break;
case 64:
-/* Line 1792 of yacc.c */
-#line 353 "camp.y"
- { (yyval.ai) = new arrayinit((yyvsp[(1) - (1)].pos)); }
+#line 353 "camp.y" /* yacc.c:1646 */
+ { (yyval.ai) = new arrayinit((yyvsp[0].pos)); }
+#line 2302 "camp.tab.c" /* yacc.c:1646 */
break;
case 65:
-/* Line 1792 of yacc.c */
-#line 354 "camp.y"
- { (yyval.ai) = (yyvsp[(1) - (1)].ai); }
+#line 354 "camp.y" /* yacc.c:1646 */
+ { (yyval.ai) = (yyvsp[0].ai); }
+#line 2308 "camp.tab.c" /* yacc.c:1646 */
break;
case 66:
-/* Line 1792 of yacc.c */
-#line 355 "camp.y"
- { (yyval.ai) = (yyvsp[(1) - (2)].ai); }
+#line 355 "camp.y" /* yacc.c:1646 */
+ { (yyval.ai) = (yyvsp[-1].ai); }
+#line 2314 "camp.tab.c" /* yacc.c:1646 */
break;
case 67:
-/* Line 1792 of yacc.c */
-#line 359 "camp.y"
- { (yyval.ai) = new arrayinit((yyvsp[(1) - (1)].vi)->getPos());
- (yyval.ai)->add((yyvsp[(1) - (1)].vi));}
+#line 359 "camp.y" /* yacc.c:1646 */
+ { (yyval.ai) = new arrayinit((yyvsp[0].vi)->getPos());
+ (yyval.ai)->add((yyvsp[0].vi));}
+#line 2321 "camp.tab.c" /* yacc.c:1646 */
break;
case 68:
-/* Line 1792 of yacc.c */
-#line 362 "camp.y"
- { (yyval.ai) = (yyvsp[(1) - (3)].ai); (yyval.ai)->add((yyvsp[(3) - (3)].vi)); }
+#line 362 "camp.y" /* yacc.c:1646 */
+ { (yyval.ai) = (yyvsp[-2].ai); (yyval.ai)->add((yyvsp[0].vi)); }
+#line 2327 "camp.tab.c" /* yacc.c:1646 */
break;
case 69:
-/* Line 1792 of yacc.c */
-#line 366 "camp.y"
- { (yyval.fls) = new formals((yyvsp[(1) - (1)].fl)->getPos()); (yyval.fls)->add((yyvsp[(1) - (1)].fl)); }
+#line 366 "camp.y" /* yacc.c:1646 */
+ { (yyval.fls) = new formals((yyvsp[0].fl)->getPos()); (yyval.fls)->add((yyvsp[0].fl)); }
+#line 2333 "camp.tab.c" /* yacc.c:1646 */
break;
case 70:
-/* Line 1792 of yacc.c */
-#line 367 "camp.y"
- { (yyval.fls) = new formals((yyvsp[(1) - (2)].pos)); (yyval.fls)->addRest((yyvsp[(2) - (2)].fl)); }
+#line 367 "camp.y" /* yacc.c:1646 */
+ { (yyval.fls) = new formals((yyvsp[-1].pos)); (yyval.fls)->addRest((yyvsp[0].fl)); }
+#line 2339 "camp.tab.c" /* yacc.c:1646 */
break;
case 71:
-/* Line 1792 of yacc.c */
-#line 369 "camp.y"
- { (yyval.fls) = (yyvsp[(1) - (3)].fls); (yyval.fls)->add((yyvsp[(3) - (3)].fl)); }
+#line 369 "camp.y" /* yacc.c:1646 */
+ { (yyval.fls) = (yyvsp[-2].fls); (yyval.fls)->add((yyvsp[0].fl)); }
+#line 2345 "camp.tab.c" /* yacc.c:1646 */
break;
case 72:
-/* Line 1792 of yacc.c */
-#line 371 "camp.y"
- { (yyval.fls) = (yyvsp[(1) - (3)].fls); (yyval.fls)->addRest((yyvsp[(3) - (3)].fl)); }
+#line 371 "camp.y" /* yacc.c:1646 */
+ { (yyval.fls) = (yyvsp[-2].fls); (yyval.fls)->addRest((yyvsp[0].fl)); }
+#line 2351 "camp.tab.c" /* yacc.c:1646 */
break;
case 73:
-/* Line 1792 of yacc.c */
-#line 375 "camp.y"
+#line 375 "camp.y" /* yacc.c:1646 */
{ (yyval.boo) = true; }
+#line 2357 "camp.tab.c" /* yacc.c:1646 */
break;
case 74:
-/* Line 1792 of yacc.c */
-#line 376 "camp.y"
+#line 376 "camp.y" /* yacc.c:1646 */
{ (yyval.boo) = false; }
+#line 2363 "camp.tab.c" /* yacc.c:1646 */
break;
case 75:
-/* Line 1792 of yacc.c */
-#line 381 "camp.y"
- { (yyval.fl) = new formal((yyvsp[(2) - (2)].t)->getPos(), (yyvsp[(2) - (2)].t), 0, 0, (yyvsp[(1) - (2)].boo), 0); }
+#line 381 "camp.y" /* yacc.c:1646 */
+ { (yyval.fl) = new formal((yyvsp[0].t)->getPos(), (yyvsp[0].t), 0, 0, (yyvsp[-1].boo), 0); }
+#line 2369 "camp.tab.c" /* yacc.c:1646 */
break;
case 76:
-/* Line 1792 of yacc.c */
-#line 383 "camp.y"
- { (yyval.fl) = new formal((yyvsp[(2) - (3)].t)->getPos(), (yyvsp[(2) - (3)].t), (yyvsp[(3) - (3)].dis), 0, (yyvsp[(1) - (3)].boo), 0); }
+#line 383 "camp.y" /* yacc.c:1646 */
+ { (yyval.fl) = new formal((yyvsp[-1].t)->getPos(), (yyvsp[-1].t), (yyvsp[0].dis), 0, (yyvsp[-2].boo), 0); }
+#line 2375 "camp.tab.c" /* yacc.c:1646 */
break;
case 77:
-/* Line 1792 of yacc.c */
-#line 385 "camp.y"
- { (yyval.fl) = new formal((yyvsp[(2) - (5)].t)->getPos(), (yyvsp[(2) - (5)].t), (yyvsp[(3) - (5)].dis), (yyvsp[(5) - (5)].vi), (yyvsp[(1) - (5)].boo), 0); }
+#line 385 "camp.y" /* yacc.c:1646 */
+ { (yyval.fl) = new formal((yyvsp[-3].t)->getPos(), (yyvsp[-3].t), (yyvsp[-2].dis), (yyvsp[0].vi), (yyvsp[-4].boo), 0); }
+#line 2381 "camp.tab.c" /* yacc.c:1646 */
break;
case 78:
-/* Line 1792 of yacc.c */
-#line 388 "camp.y"
- { bool k = checkKeyword((yyvsp[(3) - (4)].ps).pos, (yyvsp[(3) - (4)].ps).sym);
- (yyval.fl) = new formal((yyvsp[(2) - (4)].t)->getPos(), (yyvsp[(2) - (4)].t), (yyvsp[(4) - (4)].dis), 0, (yyvsp[(1) - (4)].boo), k); }
+#line 388 "camp.y" /* yacc.c:1646 */
+ { bool k = checkKeyword((yyvsp[-1].ps).pos, (yyvsp[-1].ps).sym);
+ (yyval.fl) = new formal((yyvsp[-2].t)->getPos(), (yyvsp[-2].t), (yyvsp[0].dis), 0, (yyvsp[-3].boo), k); }
+#line 2388 "camp.tab.c" /* yacc.c:1646 */
break;
case 79:
-/* Line 1792 of yacc.c */
-#line 391 "camp.y"
- { bool k = checkKeyword((yyvsp[(3) - (6)].ps).pos, (yyvsp[(3) - (6)].ps).sym);
- (yyval.fl) = new formal((yyvsp[(2) - (6)].t)->getPos(), (yyvsp[(2) - (6)].t), (yyvsp[(4) - (6)].dis), (yyvsp[(6) - (6)].vi), (yyvsp[(1) - (6)].boo), k); }
+#line 391 "camp.y" /* yacc.c:1646 */
+ { bool k = checkKeyword((yyvsp[-3].ps).pos, (yyvsp[-3].ps).sym);
+ (yyval.fl) = new formal((yyvsp[-4].t)->getPos(), (yyvsp[-4].t), (yyvsp[-2].dis), (yyvsp[0].vi), (yyvsp[-5].boo), k); }
+#line 2395 "camp.tab.c" /* yacc.c:1646 */
break;
case 80:
-/* Line 1792 of yacc.c */
-#line 397 "camp.y"
- { (yyval.d) = new fundec((yyvsp[(3) - (5)].pos), (yyvsp[(1) - (5)].t), (yyvsp[(2) - (5)].ps).sym, new formals((yyvsp[(3) - (5)].pos)), (yyvsp[(5) - (5)].s)); }
+#line 397 "camp.y" /* yacc.c:1646 */
+ { (yyval.d) = new fundec((yyvsp[-2].pos), (yyvsp[-4].t), (yyvsp[-3].ps).sym, new formals((yyvsp[-2].pos)), (yyvsp[0].s)); }
+#line 2401 "camp.tab.c" /* yacc.c:1646 */
break;
case 81:
-/* Line 1792 of yacc.c */
-#line 399 "camp.y"
- { (yyval.d) = new fundec((yyvsp[(3) - (6)].pos), (yyvsp[(1) - (6)].t), (yyvsp[(2) - (6)].ps).sym, (yyvsp[(4) - (6)].fls), (yyvsp[(6) - (6)].s)); }
+#line 399 "camp.y" /* yacc.c:1646 */
+ { (yyval.d) = new fundec((yyvsp[-3].pos), (yyvsp[-5].t), (yyvsp[-4].ps).sym, (yyvsp[-2].fls), (yyvsp[0].s)); }
+#line 2407 "camp.tab.c" /* yacc.c:1646 */
break;
case 82:
-/* Line 1792 of yacc.c */
-#line 403 "camp.y"
- { (yyval.d) = new recorddec((yyvsp[(1) - (3)].pos), (yyvsp[(2) - (3)].ps).sym, (yyvsp[(3) - (3)].b)); }
+#line 403 "camp.y" /* yacc.c:1646 */
+ { (yyval.d) = new recorddec((yyvsp[-2].pos), (yyvsp[-1].ps).sym, (yyvsp[0].b)); }
+#line 2413 "camp.tab.c" /* yacc.c:1646 */
break;
case 83:
-/* Line 1792 of yacc.c */
-#line 404 "camp.y"
- { (yyval.d) = new typedec((yyvsp[(1) - (2)].pos), (yyvsp[(2) - (2)].vd)); }
+#line 404 "camp.y" /* yacc.c:1646 */
+ { (yyval.d) = new typedec((yyvsp[-1].pos), (yyvsp[0].vd)); }
+#line 2419 "camp.tab.c" /* yacc.c:1646 */
break;
case 84:
-/* Line 1792 of yacc.c */
-#line 408 "camp.y"
- { (yyval.slice) = new slice((yyvsp[(1) - (1)].pos), 0, 0); }
+#line 408 "camp.y" /* yacc.c:1646 */
+ { (yyval.slice) = new slice((yyvsp[0].pos), 0, 0); }
+#line 2425 "camp.tab.c" /* yacc.c:1646 */
break;
case 85:
-/* Line 1792 of yacc.c */
-#line 409 "camp.y"
- { (yyval.slice) = new slice((yyvsp[(2) - (2)].pos), (yyvsp[(1) - (2)].e), 0); }
+#line 409 "camp.y" /* yacc.c:1646 */
+ { (yyval.slice) = new slice((yyvsp[0].pos), (yyvsp[-1].e), 0); }
+#line 2431 "camp.tab.c" /* yacc.c:1646 */
break;
case 86:
-/* Line 1792 of yacc.c */
-#line 410 "camp.y"
- { (yyval.slice) = new slice((yyvsp[(1) - (2)].pos), 0, (yyvsp[(2) - (2)].e)); }
+#line 410 "camp.y" /* yacc.c:1646 */
+ { (yyval.slice) = new slice((yyvsp[-1].pos), 0, (yyvsp[0].e)); }
+#line 2437 "camp.tab.c" /* yacc.c:1646 */
break;
case 87:
-/* Line 1792 of yacc.c */
-#line 411 "camp.y"
- { (yyval.slice) = new slice((yyvsp[(2) - (3)].pos), (yyvsp[(1) - (3)].e), (yyvsp[(3) - (3)].e)); }
+#line 411 "camp.y" /* yacc.c:1646 */
+ { (yyval.slice) = new slice((yyvsp[-1].pos), (yyvsp[-2].e), (yyvsp[0].e)); }
+#line 2443 "camp.tab.c" /* yacc.c:1646 */
break;
case 88:
-/* Line 1792 of yacc.c */
-#line 415 "camp.y"
- { (yyval.e) = new fieldExp((yyvsp[(2) - (3)].pos), (yyvsp[(1) - (3)].e), (yyvsp[(3) - (3)].ps).sym); }
+#line 415 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new fieldExp((yyvsp[-1].pos), (yyvsp[-2].e), (yyvsp[0].ps).sym); }
+#line 2449 "camp.tab.c" /* yacc.c:1646 */
break;
case 89:
-/* Line 1792 of yacc.c */
-#line 416 "camp.y"
- { (yyval.e) = new subscriptExp((yyvsp[(2) - (4)].pos),
- new nameExp((yyvsp[(1) - (4)].n)->getPos(), (yyvsp[(1) - (4)].n)), (yyvsp[(3) - (4)].e)); }
+#line 416 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new subscriptExp((yyvsp[-2].pos),
+ new nameExp((yyvsp[-3].n)->getPos(), (yyvsp[-3].n)), (yyvsp[-1].e)); }
+#line 2456 "camp.tab.c" /* yacc.c:1646 */
break;
case 90:
-/* Line 1792 of yacc.c */
-#line 418 "camp.y"
- { (yyval.e) = new subscriptExp((yyvsp[(2) - (4)].pos), (yyvsp[(1) - (4)].e), (yyvsp[(3) - (4)].e)); }
+#line 418 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new subscriptExp((yyvsp[-2].pos), (yyvsp[-3].e), (yyvsp[-1].e)); }
+#line 2462 "camp.tab.c" /* yacc.c:1646 */
break;
case 91:
-/* Line 1792 of yacc.c */
-#line 419 "camp.y"
- { (yyval.e) = new sliceExp((yyvsp[(2) - (4)].pos),
- new nameExp((yyvsp[(1) - (4)].n)->getPos(), (yyvsp[(1) - (4)].n)), (yyvsp[(3) - (4)].slice)); }
+#line 419 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new sliceExp((yyvsp[-2].pos),
+ new nameExp((yyvsp[-3].n)->getPos(), (yyvsp[-3].n)), (yyvsp[-1].slice)); }
+#line 2469 "camp.tab.c" /* yacc.c:1646 */
break;
case 92:
-/* Line 1792 of yacc.c */
-#line 421 "camp.y"
- { (yyval.e) = new sliceExp((yyvsp[(2) - (4)].pos), (yyvsp[(1) - (4)].e), (yyvsp[(3) - (4)].slice)); }
+#line 421 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new sliceExp((yyvsp[-2].pos), (yyvsp[-3].e), (yyvsp[-1].slice)); }
+#line 2475 "camp.tab.c" /* yacc.c:1646 */
break;
case 93:
-/* Line 1792 of yacc.c */
-#line 422 "camp.y"
- { (yyval.e) = new callExp((yyvsp[(2) - (3)].pos),
- new nameExp((yyvsp[(1) - (3)].n)->getPos(), (yyvsp[(1) - (3)].n)),
+#line 422 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new callExp((yyvsp[-1].pos),
+ new nameExp((yyvsp[-2].n)->getPos(), (yyvsp[-2].n)),
new arglist()); }
+#line 2483 "camp.tab.c" /* yacc.c:1646 */
break;
case 94:
-/* Line 1792 of yacc.c */
-#line 426 "camp.y"
- { (yyval.e) = new callExp((yyvsp[(2) - (4)].pos),
- new nameExp((yyvsp[(1) - (4)].n)->getPos(), (yyvsp[(1) - (4)].n)),
- (yyvsp[(3) - (4)].alist)); }
+#line 426 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new callExp((yyvsp[-2].pos),
+ new nameExp((yyvsp[-3].n)->getPos(), (yyvsp[-3].n)),
+ (yyvsp[-1].alist)); }
+#line 2491 "camp.tab.c" /* yacc.c:1646 */
break;
case 95:
-/* Line 1792 of yacc.c */
-#line 429 "camp.y"
- { (yyval.e) = new callExp((yyvsp[(2) - (3)].pos), (yyvsp[(1) - (3)].e), new arglist()); }
+#line 429 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new callExp((yyvsp[-1].pos), (yyvsp[-2].e), new arglist()); }
+#line 2497 "camp.tab.c" /* yacc.c:1646 */
break;
case 96:
-/* Line 1792 of yacc.c */
-#line 431 "camp.y"
- { (yyval.e) = new callExp((yyvsp[(2) - (4)].pos), (yyvsp[(1) - (4)].e), (yyvsp[(3) - (4)].alist)); }
+#line 431 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new callExp((yyvsp[-2].pos), (yyvsp[-3].e), (yyvsp[-1].alist)); }
+#line 2503 "camp.tab.c" /* yacc.c:1646 */
break;
case 97:
-/* Line 1792 of yacc.c */
-#line 433 "camp.y"
- { (yyval.e) = (yyvsp[(2) - (3)].e); }
+#line 433 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = (yyvsp[-1].e); }
+#line 2509 "camp.tab.c" /* yacc.c:1646 */
break;
case 98:
-/* Line 1792 of yacc.c */
-#line 435 "camp.y"
- { (yyval.e) = new nameExp((yyvsp[(2) - (3)].n)->getPos(), (yyvsp[(2) - (3)].n)); }
+#line 435 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new nameExp((yyvsp[-1].n)->getPos(), (yyvsp[-1].n)); }
+#line 2515 "camp.tab.c" /* yacc.c:1646 */
break;
case 99:
-/* Line 1792 of yacc.c */
-#line 436 "camp.y"
- { (yyval.e) = new thisExp((yyvsp[(1) - (1)].pos)); }
+#line 436 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new thisExp((yyvsp[0].pos)); }
+#line 2521 "camp.tab.c" /* yacc.c:1646 */
break;
case 100:
-/* Line 1792 of yacc.c */
-#line 440 "camp.y"
- { (yyval.arg).name = symbol::nullsym; (yyval.arg).val=(yyvsp[(1) - (1)].e); }
+#line 440 "camp.y" /* yacc.c:1646 */
+ { (yyval.arg).name = symbol::nullsym; (yyval.arg).val=(yyvsp[0].e); }
+#line 2527 "camp.tab.c" /* yacc.c:1646 */
break;
case 101:
-/* Line 1792 of yacc.c */
-#line 441 "camp.y"
- { (yyval.arg).name = (yyvsp[(1) - (3)].ps).sym; (yyval.arg).val=(yyvsp[(3) - (3)].e); }
+#line 441 "camp.y" /* yacc.c:1646 */
+ { (yyval.arg).name = (yyvsp[-2].ps).sym; (yyval.arg).val=(yyvsp[0].e); }
+#line 2533 "camp.tab.c" /* yacc.c:1646 */
break;
case 102:
-/* Line 1792 of yacc.c */
-#line 445 "camp.y"
- { (yyval.alist) = new arglist(); (yyval.alist)->add((yyvsp[(1) - (1)].arg)); }
+#line 445 "camp.y" /* yacc.c:1646 */
+ { (yyval.alist) = new arglist(); (yyval.alist)->add((yyvsp[0].arg)); }
+#line 2539 "camp.tab.c" /* yacc.c:1646 */
break;
case 103:
-/* Line 1792 of yacc.c */
-#line 447 "camp.y"
- { (yyval.alist) = new arglist(); (yyval.alist)->addRest((yyvsp[(2) - (2)].arg)); }
+#line 447 "camp.y" /* yacc.c:1646 */
+ { (yyval.alist) = new arglist(); (yyval.alist)->addRest((yyvsp[0].arg)); }
+#line 2545 "camp.tab.c" /* yacc.c:1646 */
break;
case 104:
-/* Line 1792 of yacc.c */
-#line 449 "camp.y"
- { (yyval.alist) = (yyvsp[(1) - (3)].alist); (yyval.alist)->add((yyvsp[(3) - (3)].arg)); }
+#line 449 "camp.y" /* yacc.c:1646 */
+ { (yyval.alist) = (yyvsp[-2].alist); (yyval.alist)->add((yyvsp[0].arg)); }
+#line 2551 "camp.tab.c" /* yacc.c:1646 */
break;
case 105:
-/* Line 1792 of yacc.c */
-#line 451 "camp.y"
- { (yyval.alist) = (yyvsp[(1) - (3)].alist); (yyval.alist)->addRest((yyvsp[(3) - (3)].arg)); }
+#line 451 "camp.y" /* yacc.c:1646 */
+ { (yyval.alist) = (yyvsp[-2].alist); (yyval.alist)->addRest((yyvsp[0].arg)); }
+#line 2557 "camp.tab.c" /* yacc.c:1646 */
break;
case 106:
-/* Line 1792 of yacc.c */
-#line 456 "camp.y"
- { (yyval.alist) = new arglist(); (yyval.alist)->add((yyvsp[(1) - (3)].e)); (yyval.alist)->add((yyvsp[(3) - (3)].e)); }
+#line 456 "camp.y" /* yacc.c:1646 */
+ { (yyval.alist) = new arglist(); (yyval.alist)->add((yyvsp[-2].e)); (yyval.alist)->add((yyvsp[0].e)); }
+#line 2563 "camp.tab.c" /* yacc.c:1646 */
break;
case 107:
-/* Line 1792 of yacc.c */
-#line 457 "camp.y"
- { (yyval.alist) = (yyvsp[(1) - (3)].alist); (yyval.alist)->add((yyvsp[(3) - (3)].e)); }
+#line 457 "camp.y" /* yacc.c:1646 */
+ { (yyval.alist) = (yyvsp[-2].alist); (yyval.alist)->add((yyvsp[0].e)); }
+#line 2569 "camp.tab.c" /* yacc.c:1646 */
break;
case 108:
-/* Line 1792 of yacc.c */
-#line 461 "camp.y"
- { (yyval.e) = new nameExp((yyvsp[(1) - (1)].n)->getPos(), (yyvsp[(1) - (1)].n)); }
+#line 461 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new nameExp((yyvsp[0].n)->getPos(), (yyvsp[0].n)); }
+#line 2575 "camp.tab.c" /* yacc.c:1646 */
break;
case 109:
-/* Line 1792 of yacc.c */
-#line 462 "camp.y"
- { (yyval.e) = (yyvsp[(1) - (1)].e); }
+#line 462 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = (yyvsp[0].e); }
+#line 2581 "camp.tab.c" /* yacc.c:1646 */
break;
case 110:
-/* Line 1792 of yacc.c */
-#line 463 "camp.y"
- { (yyval.e) = (yyvsp[(1) - (1)].e); }
+#line 463 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = (yyvsp[0].e); }
+#line 2587 "camp.tab.c" /* yacc.c:1646 */
break;
case 111:
-/* Line 1792 of yacc.c */
-#line 464 "camp.y"
- { (yyval.e) = (yyvsp[(1) - (1)].stre); }
+#line 464 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = (yyvsp[0].stre); }
+#line 2593 "camp.tab.c" /* yacc.c:1646 */
break;
case 112:
-/* Line 1792 of yacc.c */
-#line 466 "camp.y"
- { (yyval.e) = new scaleExp((yyvsp[(1) - (2)].e)->getPos(), (yyvsp[(1) - (2)].e), (yyvsp[(2) - (2)].e)); }
+#line 466 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new scaleExp((yyvsp[-1].e)->getPos(), (yyvsp[-1].e), (yyvsp[0].e)); }
+#line 2599 "camp.tab.c" /* yacc.c:1646 */
break;
case 113:
-/* Line 1792 of yacc.c */
-#line 468 "camp.y"
- { (yyval.e) = new castExp((yyvsp[(2) - (4)].n)->getPos(), new nameTy((yyvsp[(2) - (4)].n)), (yyvsp[(4) - (4)].e)); }
+#line 468 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new castExp((yyvsp[-2].n)->getPos(), new nameTy((yyvsp[-2].n)), (yyvsp[0].e)); }
+#line 2605 "camp.tab.c" /* yacc.c:1646 */
break;
case 114:
-/* Line 1792 of yacc.c */
-#line 470 "camp.y"
- { (yyval.e) = new castExp((yyvsp[(2) - (5)].n)->getPos(), new arrayTy((yyvsp[(2) - (5)].n), (yyvsp[(3) - (5)].dim)), (yyvsp[(5) - (5)].e)); }
+#line 470 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new castExp((yyvsp[-3].n)->getPos(), new arrayTy((yyvsp[-3].n), (yyvsp[-2].dim)), (yyvsp[0].e)); }
+#line 2611 "camp.tab.c" /* yacc.c:1646 */
break;
case 115:
-/* Line 1792 of yacc.c */
-#line 472 "camp.y"
- { (yyval.e) = new unaryExp((yyvsp[(1) - (2)].ps).pos, (yyvsp[(2) - (2)].e), (yyvsp[(1) - (2)].ps).sym); }
+#line 472 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new unaryExp((yyvsp[-1].ps).pos, (yyvsp[0].e), (yyvsp[-1].ps).sym); }
+#line 2617 "camp.tab.c" /* yacc.c:1646 */
break;
case 116:
-/* Line 1792 of yacc.c */
-#line 474 "camp.y"
- { (yyval.e) = new unaryExp((yyvsp[(1) - (2)].ps).pos, (yyvsp[(2) - (2)].e), (yyvsp[(1) - (2)].ps).sym); }
+#line 474 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new unaryExp((yyvsp[-1].ps).pos, (yyvsp[0].e), (yyvsp[-1].ps).sym); }
+#line 2623 "camp.tab.c" /* yacc.c:1646 */
break;
case 117:
-/* Line 1792 of yacc.c */
-#line 475 "camp.y"
- { (yyval.e) = new unaryExp((yyvsp[(1) - (2)].ps).pos, (yyvsp[(2) - (2)].e), (yyvsp[(1) - (2)].ps).sym); }
+#line 475 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new unaryExp((yyvsp[-1].ps).pos, (yyvsp[0].e), (yyvsp[-1].ps).sym); }
+#line 2629 "camp.tab.c" /* yacc.c:1646 */
break;
case 118:
-/* Line 1792 of yacc.c */
-#line 476 "camp.y"
- { (yyval.e) = new binaryExp((yyvsp[(2) - (3)].ps).pos, (yyvsp[(1) - (3)].e), (yyvsp[(2) - (3)].ps).sym, (yyvsp[(3) - (3)].e)); }
+#line 476 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new binaryExp((yyvsp[-1].ps).pos, (yyvsp[-2].e), (yyvsp[-1].ps).sym, (yyvsp[0].e)); }
+#line 2635 "camp.tab.c" /* yacc.c:1646 */
break;
case 119:
-/* Line 1792 of yacc.c */
-#line 477 "camp.y"
- { (yyval.e) = new binaryExp((yyvsp[(2) - (3)].ps).pos, (yyvsp[(1) - (3)].e), (yyvsp[(2) - (3)].ps).sym, (yyvsp[(3) - (3)].e)); }
+#line 477 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new binaryExp((yyvsp[-1].ps).pos, (yyvsp[-2].e), (yyvsp[-1].ps).sym, (yyvsp[0].e)); }
+#line 2641 "camp.tab.c" /* yacc.c:1646 */
break;
case 120:
-/* Line 1792 of yacc.c */
-#line 478 "camp.y"
- { (yyval.e) = new binaryExp((yyvsp[(2) - (3)].ps).pos, (yyvsp[(1) - (3)].e), (yyvsp[(2) - (3)].ps).sym, (yyvsp[(3) - (3)].e)); }
+#line 478 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new binaryExp((yyvsp[-1].ps).pos, (yyvsp[-2].e), (yyvsp[-1].ps).sym, (yyvsp[0].e)); }
+#line 2647 "camp.tab.c" /* yacc.c:1646 */
break;
case 121:
-/* Line 1792 of yacc.c */
-#line 479 "camp.y"
- { (yyval.e) = new binaryExp((yyvsp[(2) - (3)].ps).pos, (yyvsp[(1) - (3)].e), (yyvsp[(2) - (3)].ps).sym, (yyvsp[(3) - (3)].e)); }
+#line 479 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new binaryExp((yyvsp[-1].ps).pos, (yyvsp[-2].e), (yyvsp[-1].ps).sym, (yyvsp[0].e)); }
+#line 2653 "camp.tab.c" /* yacc.c:1646 */
break;
case 122:
-/* Line 1792 of yacc.c */
-#line 480 "camp.y"
- { (yyval.e) = new binaryExp((yyvsp[(2) - (3)].ps).pos, (yyvsp[(1) - (3)].e), (yyvsp[(2) - (3)].ps).sym, (yyvsp[(3) - (3)].e)); }
+#line 480 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new binaryExp((yyvsp[-1].ps).pos, (yyvsp[-2].e), (yyvsp[-1].ps).sym, (yyvsp[0].e)); }
+#line 2659 "camp.tab.c" /* yacc.c:1646 */
break;
case 123:
-/* Line 1792 of yacc.c */
-#line 481 "camp.y"
- { (yyval.e) = new binaryExp((yyvsp[(2) - (3)].ps).pos, (yyvsp[(1) - (3)].e), (yyvsp[(2) - (3)].ps).sym, (yyvsp[(3) - (3)].e)); }
+#line 481 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new binaryExp((yyvsp[-1].ps).pos, (yyvsp[-2].e), (yyvsp[-1].ps).sym, (yyvsp[0].e)); }
+#line 2665 "camp.tab.c" /* yacc.c:1646 */
break;
case 124:
-/* Line 1792 of yacc.c */
-#line 482 "camp.y"
- { (yyval.e) = new binaryExp((yyvsp[(2) - (3)].ps).pos, (yyvsp[(1) - (3)].e), (yyvsp[(2) - (3)].ps).sym, (yyvsp[(3) - (3)].e)); }
+#line 482 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new binaryExp((yyvsp[-1].ps).pos, (yyvsp[-2].e), (yyvsp[-1].ps).sym, (yyvsp[0].e)); }
+#line 2671 "camp.tab.c" /* yacc.c:1646 */
break;
case 125:
-/* Line 1792 of yacc.c */
-#line 483 "camp.y"
- { (yyval.e) = new binaryExp((yyvsp[(2) - (3)].ps).pos, (yyvsp[(1) - (3)].e), (yyvsp[(2) - (3)].ps).sym, (yyvsp[(3) - (3)].e)); }
+#line 483 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new binaryExp((yyvsp[-1].ps).pos, (yyvsp[-2].e), (yyvsp[-1].ps).sym, (yyvsp[0].e)); }
+#line 2677 "camp.tab.c" /* yacc.c:1646 */
break;
case 126:
-/* Line 1792 of yacc.c */
-#line 484 "camp.y"
- { (yyval.e) = new binaryExp((yyvsp[(2) - (3)].ps).pos, (yyvsp[(1) - (3)].e), (yyvsp[(2) - (3)].ps).sym, (yyvsp[(3) - (3)].e)); }
+#line 484 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new binaryExp((yyvsp[-1].ps).pos, (yyvsp[-2].e), (yyvsp[-1].ps).sym, (yyvsp[0].e)); }
+#line 2683 "camp.tab.c" /* yacc.c:1646 */
break;
case 127:
-/* Line 1792 of yacc.c */
-#line 485 "camp.y"
- { (yyval.e) = new binaryExp((yyvsp[(2) - (3)].ps).pos, (yyvsp[(1) - (3)].e), (yyvsp[(2) - (3)].ps).sym, (yyvsp[(3) - (3)].e)); }
+#line 485 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new binaryExp((yyvsp[-1].ps).pos, (yyvsp[-2].e), (yyvsp[-1].ps).sym, (yyvsp[0].e)); }
+#line 2689 "camp.tab.c" /* yacc.c:1646 */
break;
case 128:
-/* Line 1792 of yacc.c */
-#line 486 "camp.y"
- { (yyval.e) = new equalityExp((yyvsp[(2) - (3)].ps).pos, (yyvsp[(1) - (3)].e), (yyvsp[(2) - (3)].ps).sym, (yyvsp[(3) - (3)].e)); }
+#line 486 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new equalityExp((yyvsp[-1].ps).pos, (yyvsp[-2].e), (yyvsp[-1].ps).sym, (yyvsp[0].e)); }
+#line 2695 "camp.tab.c" /* yacc.c:1646 */
break;
case 129:
-/* Line 1792 of yacc.c */
-#line 487 "camp.y"
- { (yyval.e) = new equalityExp((yyvsp[(2) - (3)].ps).pos, (yyvsp[(1) - (3)].e), (yyvsp[(2) - (3)].ps).sym, (yyvsp[(3) - (3)].e)); }
+#line 487 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new equalityExp((yyvsp[-1].ps).pos, (yyvsp[-2].e), (yyvsp[-1].ps).sym, (yyvsp[0].e)); }
+#line 2701 "camp.tab.c" /* yacc.c:1646 */
break;
case 130:
-/* Line 1792 of yacc.c */
-#line 488 "camp.y"
- { (yyval.e) = new andExp((yyvsp[(2) - (3)].ps).pos, (yyvsp[(1) - (3)].e), (yyvsp[(2) - (3)].ps).sym, (yyvsp[(3) - (3)].e)); }
+#line 488 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new andExp((yyvsp[-1].ps).pos, (yyvsp[-2].e), (yyvsp[-1].ps).sym, (yyvsp[0].e)); }
+#line 2707 "camp.tab.c" /* yacc.c:1646 */
break;
case 131:
-/* Line 1792 of yacc.c */
-#line 489 "camp.y"
- { (yyval.e) = new orExp((yyvsp[(2) - (3)].ps).pos, (yyvsp[(1) - (3)].e), (yyvsp[(2) - (3)].ps).sym, (yyvsp[(3) - (3)].e)); }
+#line 489 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new orExp((yyvsp[-1].ps).pos, (yyvsp[-2].e), (yyvsp[-1].ps).sym, (yyvsp[0].e)); }
+#line 2713 "camp.tab.c" /* yacc.c:1646 */
break;
case 132:
-/* Line 1792 of yacc.c */
-#line 490 "camp.y"
- { (yyval.e) = new binaryExp((yyvsp[(2) - (3)].ps).pos, (yyvsp[(1) - (3)].e), (yyvsp[(2) - (3)].ps).sym, (yyvsp[(3) - (3)].e)); }
+#line 490 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new binaryExp((yyvsp[-1].ps).pos, (yyvsp[-2].e), (yyvsp[-1].ps).sym, (yyvsp[0].e)); }
+#line 2719 "camp.tab.c" /* yacc.c:1646 */
break;
case 133:
-/* Line 1792 of yacc.c */
-#line 491 "camp.y"
- { (yyval.e) = new binaryExp((yyvsp[(2) - (3)].ps).pos, (yyvsp[(1) - (3)].e), (yyvsp[(2) - (3)].ps).sym, (yyvsp[(3) - (3)].e)); }
+#line 491 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new binaryExp((yyvsp[-1].ps).pos, (yyvsp[-2].e), (yyvsp[-1].ps).sym, (yyvsp[0].e)); }
+#line 2725 "camp.tab.c" /* yacc.c:1646 */
break;
case 134:
-/* Line 1792 of yacc.c */
-#line 492 "camp.y"
- { (yyval.e) = new binaryExp((yyvsp[(2) - (3)].ps).pos, (yyvsp[(1) - (3)].e), (yyvsp[(2) - (3)].ps).sym, (yyvsp[(3) - (3)].e)); }
+#line 492 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new binaryExp((yyvsp[-1].ps).pos, (yyvsp[-2].e), (yyvsp[-1].ps).sym, (yyvsp[0].e)); }
+#line 2731 "camp.tab.c" /* yacc.c:1646 */
break;
case 135:
-/* Line 1792 of yacc.c */
-#line 493 "camp.y"
- { (yyval.e) = new binaryExp((yyvsp[(2) - (3)].ps).pos, (yyvsp[(1) - (3)].e), (yyvsp[(2) - (3)].ps).sym, (yyvsp[(3) - (3)].e)); }
+#line 493 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new binaryExp((yyvsp[-1].ps).pos, (yyvsp[-2].e), (yyvsp[-1].ps).sym, (yyvsp[0].e)); }
+#line 2737 "camp.tab.c" /* yacc.c:1646 */
break;
case 136:
-/* Line 1792 of yacc.c */
-#line 494 "camp.y"
- { (yyval.e) = new binaryExp((yyvsp[(2) - (3)].ps).pos, (yyvsp[(1) - (3)].e), (yyvsp[(2) - (3)].ps).sym, (yyvsp[(3) - (3)].e)); }
+#line 494 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new binaryExp((yyvsp[-1].ps).pos, (yyvsp[-2].e), (yyvsp[-1].ps).sym, (yyvsp[0].e)); }
+#line 2743 "camp.tab.c" /* yacc.c:1646 */
break;
case 137:
-/* Line 1792 of yacc.c */
-#line 496 "camp.y"
- { (yyval.e) = new newRecordExp((yyvsp[(1) - (2)].pos), (yyvsp[(2) - (2)].t)); }
+#line 496 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new newRecordExp((yyvsp[-1].pos), (yyvsp[0].t)); }
+#line 2749 "camp.tab.c" /* yacc.c:1646 */
break;
case 138:
-/* Line 1792 of yacc.c */
-#line 498 "camp.y"
- { (yyval.e) = new newArrayExp((yyvsp[(1) - (3)].pos), (yyvsp[(2) - (3)].t), (yyvsp[(3) - (3)].elist), 0, 0); }
+#line 498 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new newArrayExp((yyvsp[-2].pos), (yyvsp[-1].t), (yyvsp[0].elist), 0, 0); }
+#line 2755 "camp.tab.c" /* yacc.c:1646 */
break;
case 139:
-/* Line 1792 of yacc.c */
-#line 500 "camp.y"
- { (yyval.e) = new newArrayExp((yyvsp[(1) - (4)].pos), (yyvsp[(2) - (4)].t), (yyvsp[(3) - (4)].elist), (yyvsp[(4) - (4)].dim), 0); }
+#line 500 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new newArrayExp((yyvsp[-3].pos), (yyvsp[-2].t), (yyvsp[-1].elist), (yyvsp[0].dim), 0); }
+#line 2761 "camp.tab.c" /* yacc.c:1646 */
break;
case 140:
-/* Line 1792 of yacc.c */
-#line 502 "camp.y"
- { (yyval.e) = new newArrayExp((yyvsp[(1) - (3)].pos), (yyvsp[(2) - (3)].t), 0, (yyvsp[(3) - (3)].dim), 0); }
+#line 502 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new newArrayExp((yyvsp[-2].pos), (yyvsp[-1].t), 0, (yyvsp[0].dim), 0); }
+#line 2767 "camp.tab.c" /* yacc.c:1646 */
break;
case 141:
-/* Line 1792 of yacc.c */
-#line 504 "camp.y"
- { (yyval.e) = new newArrayExp((yyvsp[(1) - (4)].pos), (yyvsp[(2) - (4)].t), 0, (yyvsp[(3) - (4)].dim), (yyvsp[(4) - (4)].ai)); }
+#line 504 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new newArrayExp((yyvsp[-3].pos), (yyvsp[-2].t), 0, (yyvsp[-1].dim), (yyvsp[0].ai)); }
+#line 2773 "camp.tab.c" /* yacc.c:1646 */
break;
case 142:
-/* Line 1792 of yacc.c */
-#line 506 "camp.y"
- { (yyval.e) = new newFunctionExp((yyvsp[(1) - (5)].pos), (yyvsp[(2) - (5)].t), new formals((yyvsp[(3) - (5)].pos)), (yyvsp[(5) - (5)].s)); }
+#line 506 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new newFunctionExp((yyvsp[-4].pos), (yyvsp[-3].t), new formals((yyvsp[-2].pos)), (yyvsp[0].s)); }
+#line 2779 "camp.tab.c" /* yacc.c:1646 */
break;
case 143:
-/* Line 1792 of yacc.c */
-#line 508 "camp.y"
- { (yyval.e) = new newFunctionExp((yyvsp[(1) - (6)].pos),
- new arrayTy((yyvsp[(2) - (6)].t)->getPos(), (yyvsp[(2) - (6)].t), (yyvsp[(3) - (6)].dim)),
- new formals((yyvsp[(4) - (6)].pos)),
- (yyvsp[(6) - (6)].s)); }
+#line 508 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new newFunctionExp((yyvsp[-5].pos),
+ new arrayTy((yyvsp[-4].t)->getPos(), (yyvsp[-4].t), (yyvsp[-3].dim)),
+ new formals((yyvsp[-2].pos)),
+ (yyvsp[0].s)); }
+#line 2788 "camp.tab.c" /* yacc.c:1646 */
break;
case 144:
-/* Line 1792 of yacc.c */
-#line 513 "camp.y"
- { (yyval.e) = new newFunctionExp((yyvsp[(1) - (6)].pos), (yyvsp[(2) - (6)].t), (yyvsp[(4) - (6)].fls), (yyvsp[(6) - (6)].s)); }
+#line 513 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new newFunctionExp((yyvsp[-5].pos), (yyvsp[-4].t), (yyvsp[-2].fls), (yyvsp[0].s)); }
+#line 2794 "camp.tab.c" /* yacc.c:1646 */
break;
case 145:
-/* Line 1792 of yacc.c */
-#line 515 "camp.y"
- { (yyval.e) = new newFunctionExp((yyvsp[(1) - (7)].pos),
- new arrayTy((yyvsp[(2) - (7)].t)->getPos(), (yyvsp[(2) - (7)].t), (yyvsp[(3) - (7)].dim)),
- (yyvsp[(5) - (7)].fls),
- (yyvsp[(7) - (7)].s)); }
+#line 515 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new newFunctionExp((yyvsp[-6].pos),
+ new arrayTy((yyvsp[-5].t)->getPos(), (yyvsp[-5].t), (yyvsp[-4].dim)),
+ (yyvsp[-2].fls),
+ (yyvsp[0].s)); }
+#line 2803 "camp.tab.c" /* yacc.c:1646 */
break;
case 146:
-/* Line 1792 of yacc.c */
-#line 520 "camp.y"
- { (yyval.e) = new conditionalExp((yyvsp[(2) - (5)].pos), (yyvsp[(1) - (5)].e), (yyvsp[(3) - (5)].e), (yyvsp[(5) - (5)].e)); }
+#line 520 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new conditionalExp((yyvsp[-3].pos), (yyvsp[-4].e), (yyvsp[-2].e), (yyvsp[0].e)); }
+#line 2809 "camp.tab.c" /* yacc.c:1646 */
break;
case 147:
-/* Line 1792 of yacc.c */
-#line 521 "camp.y"
- { (yyval.e) = new assignExp((yyvsp[(2) - (3)].pos), (yyvsp[(1) - (3)].e), (yyvsp[(3) - (3)].e)); }
+#line 521 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new assignExp((yyvsp[-1].pos), (yyvsp[-2].e), (yyvsp[0].e)); }
+#line 2815 "camp.tab.c" /* yacc.c:1646 */
break;
case 148:
-/* Line 1792 of yacc.c */
-#line 522 "camp.y"
- { (yyval.e) = new callExp((yyvsp[(1) - (3)].pos), new nameExp((yyvsp[(1) - (3)].pos), SYM_TUPLE), (yyvsp[(2) - (3)].alist)); }
+#line 522 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new callExp((yyvsp[-2].pos), new nameExp((yyvsp[-2].pos), SYM_TUPLE), (yyvsp[-1].alist)); }
+#line 2821 "camp.tab.c" /* yacc.c:1646 */
break;
case 149:
-/* Line 1792 of yacc.c */
-#line 524 "camp.y"
- { (yyvsp[(2) - (3)].j)->pushFront((yyvsp[(1) - (3)].e)); (yyvsp[(2) - (3)].j)->pushBack((yyvsp[(3) - (3)].e)); (yyval.e) = (yyvsp[(2) - (3)].j); }
+#line 524 "camp.y" /* yacc.c:1646 */
+ { (yyvsp[-1].j)->pushFront((yyvsp[-2].e)); (yyvsp[-1].j)->pushBack((yyvsp[0].e)); (yyval.e) = (yyvsp[-1].j); }
+#line 2827 "camp.tab.c" /* yacc.c:1646 */
break;
case 150:
-/* Line 1792 of yacc.c */
-#line 526 "camp.y"
- { (yyvsp[(2) - (2)].se)->setSide(camp::OUT);
+#line 526 "camp.y" /* yacc.c:1646 */
+ { (yyvsp[0].se)->setSide(camp::OUT);
joinExp *jexp =
- new joinExp((yyvsp[(2) - (2)].se)->getPos(), SYM_DOTS);
+ new joinExp((yyvsp[0].se)->getPos(), SYM_DOTS);
(yyval.e)=jexp;
- jexp->pushBack((yyvsp[(1) - (2)].e)); jexp->pushBack((yyvsp[(2) - (2)].se)); }
+ jexp->pushBack((yyvsp[-1].e)); jexp->pushBack((yyvsp[0].se)); }
+#line 2837 "camp.tab.c" /* yacc.c:1646 */
break;
case 151:
-/* Line 1792 of yacc.c */
-#line 532 "camp.y"
- { (yyval.e) = new prefixExp((yyvsp[(1) - (2)].ps).pos, (yyvsp[(2) - (2)].e), SYM_PLUS); }
+#line 532 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new prefixExp((yyvsp[-1].ps).pos, (yyvsp[0].e), SYM_PLUS); }
+#line 2843 "camp.tab.c" /* yacc.c:1646 */
break;
case 152:
-/* Line 1792 of yacc.c */
-#line 534 "camp.y"
- { (yyval.e) = new prefixExp((yyvsp[(1) - (2)].ps).pos, (yyvsp[(2) - (2)].e), SYM_MINUS); }
+#line 534 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new prefixExp((yyvsp[-1].ps).pos, (yyvsp[0].e), SYM_MINUS); }
+#line 2849 "camp.tab.c" /* yacc.c:1646 */
break;
case 153:
-/* Line 1792 of yacc.c */
-#line 537 "camp.y"
- { (yyval.e) = new postfixExp((yyvsp[(2) - (2)].ps).pos, (yyvsp[(1) - (2)].e), SYM_PLUS); }
+#line 537 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new postfixExp((yyvsp[0].ps).pos, (yyvsp[-1].e), SYM_PLUS); }
+#line 2855 "camp.tab.c" /* yacc.c:1646 */
break;
case 154:
-/* Line 1792 of yacc.c */
-#line 538 "camp.y"
- { (yyval.e) = new selfExp((yyvsp[(2) - (3)].ps).pos, (yyvsp[(1) - (3)].e), (yyvsp[(2) - (3)].ps).sym, (yyvsp[(3) - (3)].e)); }
+#line 538 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new selfExp((yyvsp[-1].ps).pos, (yyvsp[-2].e), (yyvsp[-1].ps).sym, (yyvsp[0].e)); }
+#line 2861 "camp.tab.c" /* yacc.c:1646 */
break;
case 155:
-/* Line 1792 of yacc.c */
-#line 540 "camp.y"
- { (yyval.e) = new quoteExp((yyvsp[(1) - (4)].pos), (yyvsp[(3) - (4)].b)); }
+#line 540 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new quoteExp((yyvsp[-3].pos), (yyvsp[-1].b)); }
+#line 2867 "camp.tab.c" /* yacc.c:1646 */
break;
case 156:
-/* Line 1792 of yacc.c */
-#line 546 "camp.y"
- { (yyval.j) = new joinExp((yyvsp[(1) - (1)].ps).pos,(yyvsp[(1) - (1)].ps).sym); }
+#line 546 "camp.y" /* yacc.c:1646 */
+ { (yyval.j) = new joinExp((yyvsp[0].ps).pos,(yyvsp[0].ps).sym); }
+#line 2873 "camp.tab.c" /* yacc.c:1646 */
break;
case 157:
-/* Line 1792 of yacc.c */
-#line 548 "camp.y"
- { (yyval.j) = (yyvsp[(1) - (1)].j); }
+#line 548 "camp.y" /* yacc.c:1646 */
+ { (yyval.j) = (yyvsp[0].j); }
+#line 2879 "camp.tab.c" /* yacc.c:1646 */
break;
case 158:
-/* Line 1792 of yacc.c */
-#line 550 "camp.y"
- { (yyvsp[(1) - (2)].se)->setSide(camp::OUT);
- (yyval.j) = (yyvsp[(2) - (2)].j); (yyval.j)->pushFront((yyvsp[(1) - (2)].se)); }
+#line 550 "camp.y" /* yacc.c:1646 */
+ { (yyvsp[-1].se)->setSide(camp::OUT);
+ (yyval.j) = (yyvsp[0].j); (yyval.j)->pushFront((yyvsp[-1].se)); }
+#line 2886 "camp.tab.c" /* yacc.c:1646 */
break;
case 159:
-/* Line 1792 of yacc.c */
-#line 553 "camp.y"
- { (yyvsp[(2) - (2)].se)->setSide(camp::IN);
- (yyval.j) = (yyvsp[(1) - (2)].j); (yyval.j)->pushBack((yyvsp[(2) - (2)].se)); }
+#line 553 "camp.y" /* yacc.c:1646 */
+ { (yyvsp[0].se)->setSide(camp::IN);
+ (yyval.j) = (yyvsp[-1].j); (yyval.j)->pushBack((yyvsp[0].se)); }
+#line 2893 "camp.tab.c" /* yacc.c:1646 */
break;
case 160:
-/* Line 1792 of yacc.c */
-#line 556 "camp.y"
- { (yyvsp[(1) - (3)].se)->setSide(camp::OUT); (yyvsp[(3) - (3)].se)->setSide(camp::IN);
- (yyval.j) = (yyvsp[(2) - (3)].j); (yyval.j)->pushFront((yyvsp[(1) - (3)].se)); (yyval.j)->pushBack((yyvsp[(3) - (3)].se)); }
+#line 556 "camp.y" /* yacc.c:1646 */
+ { (yyvsp[-2].se)->setSide(camp::OUT); (yyvsp[0].se)->setSide(camp::IN);
+ (yyval.j) = (yyvsp[-1].j); (yyval.j)->pushFront((yyvsp[-2].se)); (yyval.j)->pushBack((yyvsp[0].se)); }
+#line 2900 "camp.tab.c" /* yacc.c:1646 */
break;
case 161:
-/* Line 1792 of yacc.c */
-#line 561 "camp.y"
- { (yyval.se) = new specExp((yyvsp[(2) - (4)].ps).pos, (yyvsp[(2) - (4)].ps).sym, (yyvsp[(3) - (4)].e)); }
+#line 561 "camp.y" /* yacc.c:1646 */
+ { (yyval.se) = new specExp((yyvsp[-2].ps).pos, (yyvsp[-2].ps).sym, (yyvsp[-1].e)); }
+#line 2906 "camp.tab.c" /* yacc.c:1646 */
break;
case 162:
-/* Line 1792 of yacc.c */
-#line 562 "camp.y"
- { (yyval.se) = new specExp((yyvsp[(1) - (3)].pos), symbol::opTrans("spec"), (yyvsp[(2) - (3)].e)); }
+#line 562 "camp.y" /* yacc.c:1646 */
+ { (yyval.se) = new specExp((yyvsp[-2].pos), symbol::opTrans("spec"), (yyvsp[-1].e)); }
+#line 2912 "camp.tab.c" /* yacc.c:1646 */
break;
case 163:
-/* Line 1792 of yacc.c */
-#line 564 "camp.y"
- { (yyval.se) = new specExp((yyvsp[(1) - (5)].pos), symbol::opTrans("spec"),
- new pairExp((yyvsp[(3) - (5)].pos), (yyvsp[(2) - (5)].e), (yyvsp[(4) - (5)].e))); }
+#line 564 "camp.y" /* yacc.c:1646 */
+ { (yyval.se) = new specExp((yyvsp[-4].pos), symbol::opTrans("spec"),
+ new pairExp((yyvsp[-2].pos), (yyvsp[-3].e), (yyvsp[-1].e))); }
+#line 2919 "camp.tab.c" /* yacc.c:1646 */
break;
case 164:
-/* Line 1792 of yacc.c */
-#line 567 "camp.y"
- { (yyval.se) = new specExp((yyvsp[(1) - (7)].pos), symbol::opTrans("spec"),
- new tripleExp((yyvsp[(3) - (7)].pos), (yyvsp[(2) - (7)].e), (yyvsp[(4) - (7)].e), (yyvsp[(6) - (7)].e))); }
+#line 567 "camp.y" /* yacc.c:1646 */
+ { (yyval.se) = new specExp((yyvsp[-6].pos), symbol::opTrans("spec"),
+ new tripleExp((yyvsp[-4].pos), (yyvsp[-5].e), (yyvsp[-3].e), (yyvsp[-1].e))); }
+#line 2926 "camp.tab.c" /* yacc.c:1646 */
break;
case 165:
-/* Line 1792 of yacc.c */
-#line 572 "camp.y"
- { (yyval.j) = new joinExp((yyvsp[(1) - (1)].ps).pos, (yyvsp[(1) - (1)].ps).sym); }
+#line 572 "camp.y" /* yacc.c:1646 */
+ { (yyval.j) = new joinExp((yyvsp[0].ps).pos, (yyvsp[0].ps).sym); }
+#line 2932 "camp.tab.c" /* yacc.c:1646 */
break;
case 166:
-/* Line 1792 of yacc.c */
-#line 574 "camp.y"
- { (yyval.j) = new joinExp((yyvsp[(1) - (3)].ps).pos, (yyvsp[(1) - (3)].ps).sym); (yyval.j)->pushBack((yyvsp[(2) - (3)].e)); }
+#line 574 "camp.y" /* yacc.c:1646 */
+ { (yyval.j) = new joinExp((yyvsp[-2].ps).pos, (yyvsp[-2].ps).sym); (yyval.j)->pushBack((yyvsp[-1].e)); }
+#line 2938 "camp.tab.c" /* yacc.c:1646 */
break;
case 167:
-/* Line 1792 of yacc.c */
-#line 576 "camp.y"
- { (yyval.j) = new joinExp((yyvsp[(1) - (3)].ps).pos, (yyvsp[(1) - (3)].ps).sym); (yyval.j)->pushBack((yyvsp[(2) - (3)].e)); }
+#line 576 "camp.y" /* yacc.c:1646 */
+ { (yyval.j) = new joinExp((yyvsp[-2].ps).pos, (yyvsp[-2].ps).sym); (yyval.j)->pushBack((yyvsp[-1].e)); }
+#line 2944 "camp.tab.c" /* yacc.c:1646 */
break;
case 168:
-/* Line 1792 of yacc.c */
-#line 577 "camp.y"
- { (yyval.j) = new joinExp((yyvsp[(1) - (1)].ps).pos, (yyvsp[(1) - (1)].ps).sym); }
+#line 577 "camp.y" /* yacc.c:1646 */
+ { (yyval.j) = new joinExp((yyvsp[0].ps).pos, (yyvsp[0].ps).sym); }
+#line 2950 "camp.tab.c" /* yacc.c:1646 */
break;
case 169:
-/* Line 1792 of yacc.c */
-#line 578 "camp.y"
- { (yyval.j) = new joinExp((yyvsp[(1) - (1)].ps).pos, (yyvsp[(1) - (1)].ps).sym); }
+#line 578 "camp.y" /* yacc.c:1646 */
+ { (yyval.j) = new joinExp((yyvsp[0].ps).pos, (yyvsp[0].ps).sym); }
+#line 2956 "camp.tab.c" /* yacc.c:1646 */
break;
case 170:
-/* Line 1792 of yacc.c */
-#line 582 "camp.y"
- { (yyval.e) = new binaryExp((yyvsp[(1) - (2)].ps).pos, (yyvsp[(2) - (2)].e), (yyvsp[(1) - (2)].ps).sym,
- new booleanExp((yyvsp[(1) - (2)].ps).pos, false)); }
+#line 582 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new binaryExp((yyvsp[-1].ps).pos, (yyvsp[0].e), (yyvsp[-1].ps).sym,
+ new booleanExp((yyvsp[-1].ps).pos, false)); }
+#line 2963 "camp.tab.c" /* yacc.c:1646 */
break;
case 171:
-/* Line 1792 of yacc.c */
-#line 585 "camp.y"
- { (yyval.e) = new ternaryExp((yyvsp[(1) - (4)].ps).pos, (yyvsp[(2) - (4)].e), (yyvsp[(1) - (4)].ps).sym, (yyvsp[(4) - (4)].e),
- new booleanExp((yyvsp[(1) - (4)].ps).pos, false)); }
+#line 585 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new ternaryExp((yyvsp[-3].ps).pos, (yyvsp[-2].e), (yyvsp[-3].ps).sym, (yyvsp[0].e),
+ new booleanExp((yyvsp[-3].ps).pos, false)); }
+#line 2970 "camp.tab.c" /* yacc.c:1646 */
break;
case 172:
-/* Line 1792 of yacc.c */
-#line 588 "camp.y"
- { (yyval.e) = new binaryExp((yyvsp[(1) - (3)].ps).pos, (yyvsp[(3) - (3)].e), (yyvsp[(1) - (3)].ps).sym,
- new booleanExp((yyvsp[(2) - (3)].ps).pos, true)); }
+#line 588 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new binaryExp((yyvsp[-2].ps).pos, (yyvsp[0].e), (yyvsp[-2].ps).sym,
+ new booleanExp((yyvsp[-1].ps).pos, true)); }
+#line 2977 "camp.tab.c" /* yacc.c:1646 */
break;
case 173:
-/* Line 1792 of yacc.c */
-#line 591 "camp.y"
- { (yyval.e) = new ternaryExp((yyvsp[(1) - (5)].ps).pos, (yyvsp[(3) - (5)].e), (yyvsp[(1) - (5)].ps).sym, (yyvsp[(5) - (5)].e),
- new booleanExp((yyvsp[(2) - (5)].ps).pos, true)); }
+#line 591 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new ternaryExp((yyvsp[-4].ps).pos, (yyvsp[-2].e), (yyvsp[-4].ps).sym, (yyvsp[0].e),
+ new booleanExp((yyvsp[-3].ps).pos, true)); }
+#line 2984 "camp.tab.c" /* yacc.c:1646 */
break;
case 174:
-/* Line 1792 of yacc.c */
-#line 596 "camp.y"
- { (yyval.e) = new unaryExp((yyvsp[(1) - (2)].ps).pos, (yyvsp[(2) - (2)].e), (yyvsp[(1) - (2)].ps).sym); }
+#line 596 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new unaryExp((yyvsp[-1].ps).pos, (yyvsp[0].e), (yyvsp[-1].ps).sym); }
+#line 2990 "camp.tab.c" /* yacc.c:1646 */
break;
case 175:
-/* Line 1792 of yacc.c */
-#line 598 "camp.y"
- { (yyval.e) = new binaryExp((yyvsp[(1) - (4)].ps).pos, (yyvsp[(2) - (4)].e), (yyvsp[(1) - (4)].ps).sym, (yyvsp[(4) - (4)].e)); }
+#line 598 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new binaryExp((yyvsp[-3].ps).pos, (yyvsp[-2].e), (yyvsp[-3].ps).sym, (yyvsp[0].e)); }
+#line 2996 "camp.tab.c" /* yacc.c:1646 */
break;
case 176:
-/* Line 1792 of yacc.c */
-#line 602 "camp.y"
- { (yyval.s) = new emptyStm((yyvsp[(1) - (1)].pos)); }
+#line 602 "camp.y" /* yacc.c:1646 */
+ { (yyval.s) = new emptyStm((yyvsp[0].pos)); }
+#line 3002 "camp.tab.c" /* yacc.c:1646 */
break;
case 177:
-/* Line 1792 of yacc.c */
-#line 603 "camp.y"
- { (yyval.s) = (yyvsp[(1) - (1)].s); }
+#line 603 "camp.y" /* yacc.c:1646 */
+ { (yyval.s) = (yyvsp[0].s); }
+#line 3008 "camp.tab.c" /* yacc.c:1646 */
break;
case 178:
-/* Line 1792 of yacc.c */
-#line 604 "camp.y"
- { (yyval.s) = (yyvsp[(1) - (2)].s); }
+#line 604 "camp.y" /* yacc.c:1646 */
+ { (yyval.s) = (yyvsp[-1].s); }
+#line 3014 "camp.tab.c" /* yacc.c:1646 */
break;
case 179:
-/* Line 1792 of yacc.c */
-#line 606 "camp.y"
- { (yyval.s) = new ifStm((yyvsp[(1) - (5)].pos), (yyvsp[(3) - (5)].e), (yyvsp[(5) - (5)].s)); }
+#line 606 "camp.y" /* yacc.c:1646 */
+ { (yyval.s) = new ifStm((yyvsp[-4].pos), (yyvsp[-2].e), (yyvsp[0].s)); }
+#line 3020 "camp.tab.c" /* yacc.c:1646 */
break;
case 180:
-/* Line 1792 of yacc.c */
-#line 608 "camp.y"
- { (yyval.s) = new ifStm((yyvsp[(1) - (7)].pos), (yyvsp[(3) - (7)].e), (yyvsp[(5) - (7)].s), (yyvsp[(7) - (7)].s)); }
+#line 608 "camp.y" /* yacc.c:1646 */
+ { (yyval.s) = new ifStm((yyvsp[-6].pos), (yyvsp[-4].e), (yyvsp[-2].s), (yyvsp[0].s)); }
+#line 3026 "camp.tab.c" /* yacc.c:1646 */
break;
case 181:
-/* Line 1792 of yacc.c */
-#line 610 "camp.y"
- { (yyval.s) = new whileStm((yyvsp[(1) - (5)].pos), (yyvsp[(3) - (5)].e), (yyvsp[(5) - (5)].s)); }
+#line 610 "camp.y" /* yacc.c:1646 */
+ { (yyval.s) = new whileStm((yyvsp[-4].pos), (yyvsp[-2].e), (yyvsp[0].s)); }
+#line 3032 "camp.tab.c" /* yacc.c:1646 */
break;
case 182:
-/* Line 1792 of yacc.c */
-#line 612 "camp.y"
- { (yyval.s) = new doStm((yyvsp[(1) - (7)].pos), (yyvsp[(2) - (7)].s), (yyvsp[(5) - (7)].e)); }
+#line 612 "camp.y" /* yacc.c:1646 */
+ { (yyval.s) = new doStm((yyvsp[-6].pos), (yyvsp[-5].s), (yyvsp[-2].e)); }
+#line 3038 "camp.tab.c" /* yacc.c:1646 */
break;
case 183:
-/* Line 1792 of yacc.c */
-#line 614 "camp.y"
- { (yyval.s) = new forStm((yyvsp[(1) - (9)].pos), (yyvsp[(3) - (9)].run), (yyvsp[(5) - (9)].e), (yyvsp[(7) - (9)].sel), (yyvsp[(9) - (9)].s)); }
+#line 614 "camp.y" /* yacc.c:1646 */
+ { (yyval.s) = new forStm((yyvsp[-8].pos), (yyvsp[-6].run), (yyvsp[-4].e), (yyvsp[-2].sel), (yyvsp[0].s)); }
+#line 3044 "camp.tab.c" /* yacc.c:1646 */
break;
case 184:
-/* Line 1792 of yacc.c */
-#line 616 "camp.y"
- { (yyval.s) = new extendedForStm((yyvsp[(1) - (8)].pos), (yyvsp[(3) - (8)].t), (yyvsp[(4) - (8)].ps).sym, (yyvsp[(6) - (8)].e), (yyvsp[(8) - (8)].s)); }
+#line 616 "camp.y" /* yacc.c:1646 */
+ { (yyval.s) = new extendedForStm((yyvsp[-7].pos), (yyvsp[-5].t), (yyvsp[-4].ps).sym, (yyvsp[-2].e), (yyvsp[0].s)); }
+#line 3050 "camp.tab.c" /* yacc.c:1646 */
break;
case 185:
-/* Line 1792 of yacc.c */
-#line 617 "camp.y"
- { (yyval.s) = new breakStm((yyvsp[(1) - (2)].pos)); }
+#line 617 "camp.y" /* yacc.c:1646 */
+ { (yyval.s) = new breakStm((yyvsp[-1].pos)); }
+#line 3056 "camp.tab.c" /* yacc.c:1646 */
break;
case 186:
-/* Line 1792 of yacc.c */
-#line 618 "camp.y"
- { (yyval.s) = new continueStm((yyvsp[(1) - (2)].pos)); }
+#line 618 "camp.y" /* yacc.c:1646 */
+ { (yyval.s) = new continueStm((yyvsp[-1].pos)); }
+#line 3062 "camp.tab.c" /* yacc.c:1646 */
break;
case 187:
-/* Line 1792 of yacc.c */
-#line 619 "camp.y"
- { (yyval.s) = new returnStm((yyvsp[(1) - (2)].pos)); }
+#line 619 "camp.y" /* yacc.c:1646 */
+ { (yyval.s) = new returnStm((yyvsp[-1].pos)); }
+#line 3068 "camp.tab.c" /* yacc.c:1646 */
break;
case 188:
-/* Line 1792 of yacc.c */
-#line 620 "camp.y"
- { (yyval.s) = new returnStm((yyvsp[(1) - (3)].pos), (yyvsp[(2) - (3)].e)); }
+#line 620 "camp.y" /* yacc.c:1646 */
+ { (yyval.s) = new returnStm((yyvsp[-2].pos), (yyvsp[-1].e)); }
+#line 3074 "camp.tab.c" /* yacc.c:1646 */
break;
case 189:
-/* Line 1792 of yacc.c */
-#line 624 "camp.y"
- { (yyval.s) = new expStm((yyvsp[(1) - (1)].e)->getPos(), (yyvsp[(1) - (1)].e)); }
+#line 624 "camp.y" /* yacc.c:1646 */
+ { (yyval.s) = new expStm((yyvsp[0].e)->getPos(), (yyvsp[0].e)); }
+#line 3080 "camp.tab.c" /* yacc.c:1646 */
break;
case 190:
-/* Line 1792 of yacc.c */
-#line 628 "camp.y"
- { (yyval.s) = new blockStm((yyvsp[(1) - (1)].b)->getPos(), (yyvsp[(1) - (1)].b)); }
+#line 628 "camp.y" /* yacc.c:1646 */
+ { (yyval.s) = new blockStm((yyvsp[0].b)->getPos(), (yyvsp[0].b)); }
+#line 3086 "camp.tab.c" /* yacc.c:1646 */
break;
case 191:
-/* Line 1792 of yacc.c */
-#line 632 "camp.y"
+#line 632 "camp.y" /* yacc.c:1646 */
{ (yyval.run) = 0; }
+#line 3092 "camp.tab.c" /* yacc.c:1646 */
break;
case 192:
-/* Line 1792 of yacc.c */
-#line 633 "camp.y"
- { (yyval.run) = (yyvsp[(1) - (1)].sel); }
+#line 633 "camp.y" /* yacc.c:1646 */
+ { (yyval.run) = (yyvsp[0].sel); }
+#line 3098 "camp.tab.c" /* yacc.c:1646 */
break;
case 193:
-/* Line 1792 of yacc.c */
-#line 634 "camp.y"
- { (yyval.run) = (yyvsp[(1) - (1)].vd); }
+#line 634 "camp.y" /* yacc.c:1646 */
+ { (yyval.run) = (yyvsp[0].vd); }
+#line 3104 "camp.tab.c" /* yacc.c:1646 */
break;
case 194:
-/* Line 1792 of yacc.c */
-#line 638 "camp.y"
+#line 638 "camp.y" /* yacc.c:1646 */
{ (yyval.e) = 0; }
+#line 3110 "camp.tab.c" /* yacc.c:1646 */
break;
case 195:
-/* Line 1792 of yacc.c */
-#line 639 "camp.y"
- { (yyval.e) = (yyvsp[(1) - (1)].e); }
+#line 639 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = (yyvsp[0].e); }
+#line 3116 "camp.tab.c" /* yacc.c:1646 */
break;
case 196:
-/* Line 1792 of yacc.c */
-#line 643 "camp.y"
+#line 643 "camp.y" /* yacc.c:1646 */
{ (yyval.sel) = 0; }
+#line 3122 "camp.tab.c" /* yacc.c:1646 */
break;
case 197:
-/* Line 1792 of yacc.c */
-#line 644 "camp.y"
- { (yyval.sel) = (yyvsp[(1) - (1)].sel); }
+#line 644 "camp.y" /* yacc.c:1646 */
+ { (yyval.sel) = (yyvsp[0].sel); }
+#line 3128 "camp.tab.c" /* yacc.c:1646 */
break;
case 198:
-/* Line 1792 of yacc.c */
-#line 648 "camp.y"
- { (yyval.sel) = new stmExpList((yyvsp[(1) - (1)].s)->getPos()); (yyval.sel)->add((yyvsp[(1) - (1)].s)); }
+#line 648 "camp.y" /* yacc.c:1646 */
+ { (yyval.sel) = new stmExpList((yyvsp[0].s)->getPos()); (yyval.sel)->add((yyvsp[0].s)); }
+#line 3134 "camp.tab.c" /* yacc.c:1646 */
break;
case 199:
-/* Line 1792 of yacc.c */
-#line 650 "camp.y"
- { (yyval.sel) = (yyvsp[(1) - (3)].sel); (yyval.sel)->add((yyvsp[(3) - (3)].s)); }
+#line 650 "camp.y" /* yacc.c:1646 */
+ { (yyval.sel) = (yyvsp[-2].sel); (yyval.sel)->add((yyvsp[0].s)); }
+#line 3140 "camp.tab.c" /* yacc.c:1646 */
break;
-/* Line 1792 of yacc.c */
-#line 3365 "camp.tab.c"
+#line 3144 "camp.tab.c" /* yacc.c:1646 */
default: break;
}
/* User semantic actions sometimes alter yychar, and that requires
@@ -3383,7 +3162,7 @@ yyreduce:
*++yyvsp = yyval;
- /* Now `shift' the result of the reduction. Determine what state
+ /* Now 'shift' the result of the reduction. Determine what state
that goes to, based on the state we popped back to and the rule
number reduced by. */
@@ -3398,9 +3177,9 @@ yyreduce:
goto yynewstate;
-/*------------------------------------.
-| yyerrlab -- here on detecting error |
-`------------------------------------*/
+/*--------------------------------------.
+| yyerrlab -- here on detecting error. |
+`--------------------------------------*/
yyerrlab:
/* Make sure we have latest lookahead translation. See comments at
user semantic actions for why this is necessary. */
@@ -3451,20 +3230,20 @@ yyerrlab:
if (yyerrstatus == 3)
{
/* If just tried and failed to reuse lookahead token after an
- error, discard it. */
+ error, discard it. */
if (yychar <= YYEOF)
- {
- /* Return failure if at end of input. */
- if (yychar == YYEOF)
- YYABORT;
- }
+ {
+ /* Return failure if at end of input. */
+ if (yychar == YYEOF)
+ YYABORT;
+ }
else
- {
- yydestruct ("Error: discarding",
- yytoken, &yylval);
- yychar = YYEMPTY;
- }
+ {
+ yydestruct ("Error: discarding",
+ yytoken, &yylval);
+ yychar = YYEMPTY;
+ }
}
/* Else will try to reuse lookahead token after shifting the error
@@ -3483,7 +3262,7 @@ yyerrorlab:
if (/*CONSTCOND*/ 0)
goto yyerrorlab;
- /* Do not reclaim the symbols of the rule which action triggered
+ /* Do not reclaim the symbols of the rule whose action triggered
this YYERROR. */
YYPOPSTACK (yylen);
yylen = 0;
@@ -3496,29 +3275,29 @@ yyerrorlab:
| yyerrlab1 -- common code for both syntax error and YYERROR. |
`-------------------------------------------------------------*/
yyerrlab1:
- yyerrstatus = 3; /* Each real token shifted decrements this. */
+ yyerrstatus = 3; /* Each real token shifted decrements this. */
for (;;)
{
yyn = yypact[yystate];
if (!yypact_value_is_default (yyn))
- {
- yyn += YYTERROR;
- if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
- {
- yyn = yytable[yyn];
- if (0 < yyn)
- break;
- }
- }
+ {
+ yyn += YYTERROR;
+ if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
+ {
+ yyn = yytable[yyn];
+ if (0 < yyn)
+ break;
+ }
+ }
/* Pop the current state because it cannot handle the error token. */
if (yyssp == yyss)
- YYABORT;
+ YYABORT;
yydestruct ("Error: popping",
- yystos[yystate], yyvsp);
+ yystos[yystate], yyvsp);
YYPOPSTACK (1);
yystate = *yyssp;
YY_STACK_PRINT (yyss, yyssp);
@@ -3569,14 +3348,14 @@ yyreturn:
yydestruct ("Cleanup: discarding lookahead",
yytoken, &yylval);
}
- /* Do not reclaim the symbols of the rule which action triggered
+ /* Do not reclaim the symbols of the rule whose action triggered
this YYABORT or YYACCEPT. */
YYPOPSTACK (yylen);
YY_STACK_PRINT (yyss, yyssp);
while (yyssp != yyss)
{
yydestruct ("Cleanup: popping",
- yystos[*yyssp], yyvsp);
+ yystos[*yyssp], yyvsp);
YYPOPSTACK (1);
}
#ifndef yyoverflow
@@ -3587,8 +3366,5 @@ yyreturn:
if (yymsg != yymsgbuf)
YYSTACK_FREE (yymsg);
#endif
- /* Make sure YYID is used. */
- return YYID (yyresult);
+ return yyresult;
}
-
-
diff --git a/Build/source/utils/asymptote/camp.tab.h b/Build/source/utils/asymptote/camp.tab.h
index dcc8e342fd1..e8464e10bb2 100644
--- a/Build/source/utils/asymptote/camp.tab.h
+++ b/Build/source/utils/asymptote/camp.tab.h
@@ -1,19 +1,19 @@
-/* A Bison parser, made by GNU Bison 2.7. */
+/* A Bison parser, made by GNU Bison 3.0.2. */
/* Bison interface for Yacc-like parsers in C
-
- Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc.
-
+
+ Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
+
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
-
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
@@ -26,13 +26,13 @@
special exception, which will cause the skeleton and the resulting
Bison output files to be licensed under the GNU General Public
License without this special exception.
-
+
This special exception was added by the Free Software Foundation in
version 2.2 of Bison. */
#ifndef YY_YY_CAMP_TAB_H_INCLUDED
# define YY_YY_CAMP_TAB_H_INCLUDED
-/* Enabling traces. */
+/* Debug traces. */
#ifndef YYDEBUG
# define YYDEBUG 1
#endif
@@ -40,76 +40,75 @@
extern int yydebug;
#endif
-/* Tokens. */
+/* Token type. */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
- /* Put the tokens into the symbol table, so that GDB and other debuggers
- know about them. */
- enum yytokentype {
- ID = 258,
- SELFOP = 259,
- DOTS = 260,
- COLONS = 261,
- DASHES = 262,
- INCR = 263,
- LONGDASH = 264,
- CONTROLS = 265,
- TENSION = 266,
- ATLEAST = 267,
- CURL = 268,
- COR = 269,
- CAND = 270,
- BAR = 271,
- AMPERSAND = 272,
- EQ = 273,
- NEQ = 274,
- LT = 275,
- LE = 276,
- GT = 277,
- GE = 278,
- CARETS = 279,
- OPERATOR = 280,
- LOOSE = 281,
- ASSIGN = 282,
- DIRTAG = 283,
- JOIN_PREC = 284,
- AND = 285,
- ELLIPSIS = 286,
- ACCESS = 287,
- UNRAVEL = 288,
- IMPORT = 289,
- INCLUDE = 290,
- FROM = 291,
- QUOTE = 292,
- STRUCT = 293,
- TYPEDEF = 294,
- NEW = 295,
- IF = 296,
- ELSE = 297,
- WHILE = 298,
- DO = 299,
- FOR = 300,
- BREAK = 301,
- CONTINUE = 302,
- RETURN_ = 303,
- THIS = 304,
- EXPLICIT = 305,
- GARBAGE = 306,
- LIT = 307,
- STRING = 308,
- PERM = 309,
- MODIFIER = 310,
- UNARY = 311,
- EXP_IN_PARENS_RULE = 312
- };
+ enum yytokentype
+ {
+ ID = 258,
+ SELFOP = 259,
+ DOTS = 260,
+ COLONS = 261,
+ DASHES = 262,
+ INCR = 263,
+ LONGDASH = 264,
+ CONTROLS = 265,
+ TENSION = 266,
+ ATLEAST = 267,
+ CURL = 268,
+ COR = 269,
+ CAND = 270,
+ BAR = 271,
+ AMPERSAND = 272,
+ EQ = 273,
+ NEQ = 274,
+ LT = 275,
+ LE = 276,
+ GT = 277,
+ GE = 278,
+ CARETS = 279,
+ OPERATOR = 280,
+ LOOSE = 281,
+ ASSIGN = 282,
+ DIRTAG = 283,
+ JOIN_PREC = 284,
+ AND = 285,
+ ELLIPSIS = 286,
+ ACCESS = 287,
+ UNRAVEL = 288,
+ IMPORT = 289,
+ INCLUDE = 290,
+ FROM = 291,
+ QUOTE = 292,
+ STRUCT = 293,
+ TYPEDEF = 294,
+ NEW = 295,
+ IF = 296,
+ ELSE = 297,
+ WHILE = 298,
+ DO = 299,
+ FOR = 300,
+ BREAK = 301,
+ CONTINUE = 302,
+ RETURN_ = 303,
+ THIS = 304,
+ EXPLICIT = 305,
+ GARBAGE = 306,
+ LIT = 307,
+ STRING = 308,
+ PERM = 309,
+ MODIFIER = 310,
+ UNARY = 311,
+ EXP_IN_PARENS_RULE = 312
+ };
#endif
-
+/* Value type. */
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef union YYSTYPE
+typedef union YYSTYPE YYSTYPE;
+union YYSTYPE
{
-/* Line 2058 of yacc.c */
-#line 60 "camp.y"
+#line 60 "camp.y" /* yacc.c:1909 */
position pos;
bool boo;
@@ -156,29 +155,15 @@ typedef union YYSTYPE
absyntax::formal *fl;
absyntax::formals *fls;
-
-/* Line 2058 of yacc.c */
-#line 162 "camp.tab.h"
-} YYSTYPE;
+#line 159 "camp.tab.h" /* yacc.c:1909 */
+};
# define YYSTYPE_IS_TRIVIAL 1
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
#endif
+
extern YYSTYPE yylval;
-#ifdef YYPARSE_PARAM
-#if defined __STDC__ || defined __cplusplus
-int yyparse (void *YYPARSE_PARAM);
-#else
-int yyparse ();
-#endif
-#else /* ! YYPARSE_PARAM */
-#if defined __STDC__ || defined __cplusplus
int yyparse (void);
-#else
-int yyparse ();
-#endif
-#endif /* ! YYPARSE_PARAM */
#endif /* !YY_YY_CAMP_TAB_H_INCLUDED */
diff --git a/Build/source/utils/asymptote/configure b/Build/source/utils/asymptote/configure
index 0821cd5e8b7..740a69d08cc 100755
--- a/Build/source/utils/asymptote/configure
+++ b/Build/source/utils/asymptote/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for Asymptote 2.33.
+# Generated by GNU Autoconf 2.69 for Asymptote 2.35.
#
# Report bugs to <http://sourceforge.net/projects/asymptote>.
#
@@ -580,8 +580,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='Asymptote'
PACKAGE_TARNAME='asymptote'
-PACKAGE_VERSION='2.33'
-PACKAGE_STRING='Asymptote 2.33'
+PACKAGE_VERSION='2.35'
+PACKAGE_STRING='Asymptote 2.35'
PACKAGE_BUGREPORT='http://sourceforge.net/projects/asymptote'
PACKAGE_URL=''
@@ -1281,7 +1281,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures Asymptote 2.33 to adapt to many kinds of systems.
+\`configure' configures Asymptote 2.35 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1346,7 +1346,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of Asymptote 2.33:";;
+ short | recursive ) echo "Configuration of Asymptote 2.35:";;
esac
cat <<\_ACEOF
@@ -1459,7 +1459,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-Asymptote configure 2.33
+Asymptote configure 2.35
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2045,7 +2045,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by Asymptote $as_me 2.33, which was
+It was created by Asymptote $as_me 2.35, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -8508,7 +8508,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by Asymptote $as_me 2.33, which was
+This file was extended by Asymptote $as_me 2.35, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -8570,7 +8570,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-Asymptote config.status 2.33
+Asymptote config.status 2.35
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/Build/source/utils/asymptote/configure.ac b/Build/source/utils/asymptote/configure.ac
index 5fd42b54226..1efa66156f3 100644
--- a/Build/source/utils/asymptote/configure.ac
+++ b/Build/source/utils/asymptote/configure.ac
@@ -3,7 +3,7 @@
# this file.
AC_PREREQ(2)
-AC_INIT([Asymptote],[2.33],[http://sourceforge.net/projects/asymptote])
+AC_INIT([Asymptote],[2.35],[http://sourceforge.net/projects/asymptote])
VERSION=$PACKAGE_VERSION
AC_SUBST(VERSION)
m4_include([ax_pthread.m4])
diff --git a/Build/source/utils/asymptote/doc/CAD.pdf b/Build/source/utils/asymptote/doc/CAD.pdf
index abcc0b4467d..100067e6231 100644
--- a/Build/source/utils/asymptote/doc/CAD.pdf
+++ b/Build/source/utils/asymptote/doc/CAD.pdf
Binary files differ
diff --git a/Build/source/utils/asymptote/doc/FAQ/asy-faq.info b/Build/source/utils/asymptote/doc/FAQ/asy-faq.info
index ddc224e6744..a091076031f 100644
--- a/Build/source/utils/asymptote/doc/FAQ/asy-faq.info
+++ b/Build/source/utils/asymptote/doc/FAQ/asy-faq.info
@@ -10,7 +10,7 @@ END-INFO-DIR-ENTRY
File: asy-faq.info, Node: Top, Next: Question 1.1, Up: (dir)
ASYMPTOTE FREQUENTLY ASKED QUESTIONS
- 10 May 2015
+ 19 May 2015
This is the list of Frequently Asked Questions about Asymptote (asy).
diff --git a/Build/source/utils/asymptote/doc/TeXShopAndAsymptote.pdf b/Build/source/utils/asymptote/doc/TeXShopAndAsymptote.pdf
index 91b906c0637..5e369f69e61 100644
--- a/Build/source/utils/asymptote/doc/TeXShopAndAsymptote.pdf
+++ b/Build/source/utils/asymptote/doc/TeXShopAndAsymptote.pdf
Binary files differ
diff --git a/Build/source/utils/asymptote/doc/asy-latex.pdf b/Build/source/utils/asymptote/doc/asy-latex.pdf
index ddf5de3b8be..b8392efb5b8 100644
--- a/Build/source/utils/asymptote/doc/asy-latex.pdf
+++ b/Build/source/utils/asymptote/doc/asy-latex.pdf
Binary files differ
diff --git a/Build/source/utils/asymptote/doc/asyRefCard.pdf b/Build/source/utils/asymptote/doc/asyRefCard.pdf
index 686d007d700..adc74a20d99 100644
--- a/Build/source/utils/asymptote/doc/asyRefCard.pdf
+++ b/Build/source/utils/asymptote/doc/asyRefCard.pdf
Binary files differ
diff --git a/Build/source/utils/asymptote/doc/asymptote.pdf b/Build/source/utils/asymptote/doc/asymptote.pdf
index fbdf5df6f1c..3c24609c93f 100644
--- a/Build/source/utils/asymptote/doc/asymptote.pdf
+++ b/Build/source/utils/asymptote/doc/asymptote.pdf
Binary files differ
diff --git a/Build/source/utils/asymptote/doc/asymptote.texi b/Build/source/utils/asymptote/doc/asymptote.texi
index cf427557d9f..afbf5297e2c 100644
--- a/Build/source/utils/asymptote/doc/asymptote.texi
+++ b/Build/source/utils/asymptote/doc/asymptote.texi
@@ -336,17 +336,9 @@ prebuilt @code{Asymptote} binaries from
@cindex @code{MacOS X} binary distributions
@code{MacOS X} users can either compile the @code{UNIX} source code
(@pxref{Compiling from UNIX source})
-or install the contributed @code{Asymptote} binary available at
+or install the @code{Asymptote} binary available at
-@url{http://www.hmug.org/pub/MacOS_X/X/Applications/Publishing/asymptote/}
-
-@noindent
-Because these preconfigured binary distributions have
-strict architecture and library dependencies that many installations do
-not satisfy, we recommend installing @code{Asymptote} directly from the
-official source:
-
-@url{http://sourceforge.net/project/showfiles.php?group_id=120000}
+@url{http://www.macports.org/}
@noindent
Note that many @code{MacOS X} (and FreeBSD) systems lack the
@@ -363,8 +355,8 @@ where @code{x.xx} denotes the latest version.
A working @TeX{} implementation (such as the one available at
@url{http://www.miktex.org}) will be required to typeset labels.
-You will also need to install @code{GPL Ghostscript} from
-@url{http://sourceforge.net/projects/ghostscript/}.
+You will also need to install @code{GPL Ghostscript} version 9.14 or
+later from @url{http://downloads.ghostscript.com/public}.
To view the default @code{PostScript} output, you can install the
program @code{gsview} available from
@@ -453,7 +445,7 @@ corresponding file type.
For @acronym{PDF} format output, the @code{gs} setting specifies the
location of the @code{PostScript}-to-@acronym{PDF} processor @code{Ghostscript},
-available from @url{http://sourceforge.net/projects/ghostscript/}.
+available from @url{http://downloads.ghostscript.com/public}.
The setting @code{pdfviewer} specifies the location of the @acronym{PDF}
viewer. On @code{UNIX} systems, to support automatic document
@@ -580,8 +572,12 @@ The @code{Asymptote} system directory (by default,
@cindex Compiling from UNIX source
To compile and install a @code{UNIX} executable from
-a source release
-@code{x.xx}, first execute the commands:
+the source release @code{asymptote-x.xx.src.tgz} in the subdirectory
+@code{x.xx} under
+
+@url{http://sourceforge.net/projects/asymptote/files/}
+
+execute the commands:
@verbatim
gunzip asymptote-x.xx.src.tgz
tar -xf asymptote-x.xx.src.tar
@@ -9475,7 +9471,7 @@ you get useful feedback.
Contributions in the form of patches or @code{Asymptote} modules can be
posted here:
@quotation
-@url{http://sourceforge.net/tracker/?atid=685685&group_id=120000}
+@url{http://sourceforge.net/p/asymptote/patches}
@end quotation
@noindent
To receive announcements of upcoming releases, please subscribe to
diff --git a/Build/source/utils/asymptote/doc/colors.asy b/Build/source/utils/asymptote/doc/colors.asy
index ea576379deb..2f2bf988d0c 100644
--- a/Build/source/utils/asymptote/doc/colors.asy
+++ b/Build/source/utils/asymptote/doc/colors.asy
@@ -5,7 +5,7 @@ bool components=false;
pen p;
-void col(bool fill=false ... string[] s) {
+void col(... string[] s) {
for(int n=0; n < s.length; ++n) {
j -= 10;
string s=s[n];
@@ -15,9 +15,8 @@ void col(bool fill=false ... string[] s) {
for(int i=0; i < a.length; ++i)
s += " "+(string) a[i];
}
- if(fill) label(s,(i+10,j),E,p,Fill(gray));
- else label(s,(i+10,j),E,p);
- fill(box((i,j-5),(i+10,j+5)),p);
+ label(s,(i+10,j),E);
+ filldraw(box((i,j-5),(i+10,j+5)),p);
}
}
@@ -91,7 +90,7 @@ i += 150;
j=0;
col("black");
-col("white",fill=true);
+col("white");
j -= 10;
col("orange");
diff --git a/Build/source/utils/asymptote/doc/png/asymptote.info b/Build/source/utils/asymptote/doc/png/asymptote.info
index da43840df7d..07f0030b75b 100644
--- a/Build/source/utils/asymptote/doc/png/asymptote.info
+++ b/Build/source/utils/asymptote/doc/png/asymptote.info
@@ -1,7 +1,7 @@
-This is asymptote.info, produced by makeinfo version 5.1 from
+This is asymptote.info, produced by makeinfo version 5.2 from
asymptote.texi.
-This file documents 'Asymptote', version 2.33.
+This file documents 'Asymptote', version 2.35.
<http://asymptote.sourceforge.net>
@@ -22,7 +22,7 @@ File: asymptote.info, Node: Top, Next: Description, Up: (dir)
Asymptote
*********
-This file documents 'Asymptote', version 2.33.
+This file documents 'Asymptote', version 2.35.
<http://asymptote.sourceforge.net>
@@ -295,17 +295,10 @@ File: asymptote.info, Node: MacOS X binary distributions, Next: Microsoft Wind
================================
'MacOS X' users can either compile the 'UNIX' source code (*note
-Compiling from UNIX source::) or install the contributed 'Asymptote'
-binary available at
+Compiling from UNIX source::) or install the 'Asymptote' binary
+available at
- <http://www.hmug.org/pub/MacOS_X/X/Applications/Publishing/asymptote/>
-
-Because these preconfigured binary distributions have strict
-architecture and library dependencies that many installations do not
-satisfy, we recommend installing 'Asymptote' directly from the official
-source:
-
- <http://sourceforge.net/project/showfiles.php?group_id=120000>
+ <http://www.macports.org/>
Note that many 'MacOS X' (and FreeBSD) systems lack the GNU 'readline'
library. For full interactive functionality, GNU 'readline' version 4.3
@@ -323,8 +316,8 @@ self-extracting 'Asymptote' executable 'asymptote-x.xx-setup.exe', where
A working TeX implementation (such as the one available at
<http://www.miktex.org>) will be required to typeset labels. You will
-also need to install 'GPL Ghostscript' from
-<http://sourceforge.net/projects/ghostscript/>.
+also need to install 'GPL Ghostscript' version 9.14 or later from
+<http://downloads.ghostscript.com/public>.
To view the default 'PostScript' output, you can install the program
'gsview' available from <http://www.cs.wisc.edu/~ghost/gsview/>. A
@@ -391,7 +384,7 @@ associated with the corresponding file type.
For PDF format output, the 'gs' setting specifies the location of the
'PostScript'-to-PDF processor 'Ghostscript', available from
-<http://sourceforge.net/projects/ghostscript/>.
+<http://downloads.ghostscript.com/public>.
The setting 'pdfviewer' specifies the location of the PDF viewer. On
'UNIX' systems, to support automatic document reloading in 'Adobe
@@ -478,8 +471,12 @@ File: asymptote.info, Node: Compiling from UNIX source, Next: Editing modes,
2.6 Compiling from UNIX source
==============================
-To compile and install a 'UNIX' executable from a source release 'x.xx',
-first execute the commands:
+To compile and install a 'UNIX' executable from the source release
+'asymptote-x.xx.src.tgz' in the subdirectory 'x.xx' under
+
+ <http://sourceforge.net/projects/asymptote/files/>
+
+ execute the commands:
gunzip asymptote-x.xx.src.tgz
tar -xf asymptote-x.xx.src.tar
cd asymptote-x.xx
@@ -5481,6 +5478,7 @@ following routines:
+
An axis can be drawn on a picture with one of the following commands:
* void xaxis(picture pic=currentpicture, Label L="", axis axis=YZero,
@@ -8330,7 +8328,7 @@ Including an example that illustrates what you are trying to do will
help you get useful feedback. 'LaTeX' problems can often be diagnosed
with the '-vv' or '-vvv' command-line options. Contributions in the
form of patches or 'Asymptote' modules can be posted here:
- <http://sourceforge.net/tracker/?atid=685685&group_id=120000>
+ <http://sourceforge.net/p/asymptote/patches>
To receive announcements of upcoming releases, please subscribe to
'Asymptote' at
<http://freecode.com/projects/asy>
@@ -8634,14 +8632,14 @@ Index
* 'attach': Frames and pictures.
(line 271)
* 'attach' <1>: LaTeX usage. (line 50)
-* 'attach' <2>: graph. (line 405)
+* 'attach' <2>: graph. (line 406)
* 'autoadjust': three. (line 338)
* 'autoimport': Options. (line 113)
-* automatic scaling: graph. (line 689)
-* automatic scaling <1>: graph. (line 689)
+* automatic scaling: graph. (line 690)
+* automatic scaling <1>: graph. (line 690)
* 'axialshade': fill. (line 43)
-* 'axis': graph. (line 904)
-* 'axis' <1>: graph. (line 987)
+* 'axis': graph. (line 905)
+* 'axis' <1>: graph. (line 988)
* 'axis' <2>: graph3. (line 66)
* 'axis' <3>: graph3. (line 82)
* 'azimuth': Data types. (line 152)
@@ -8706,8 +8704,8 @@ Index
* 'bool3': Data types. (line 25)
* boolean operators: Arithmetic & logical.
(line 6)
-* 'Bottom': graph. (line 131)
-* 'BottomTop': graph. (line 137)
+* 'Bottom': graph. (line 132)
+* 'BottomTop': graph. (line 138)
* 'BottomView': three. (line 366)
* bounding box: Frames and pictures.
(line 180)
@@ -8723,7 +8721,7 @@ Index
* 'break': Programming. (line 30)
* 'breakpoints': Debugger. (line 21)
* brick: Pens. (line 265)
-* broken axis: graph. (line 800)
+* broken axis: graph. (line 801)
* bug reports: Help. (line 19)
* 'buildcycle': Paths and guides. (line 270)
* 'Button-1': GUI. (line 6)
@@ -8813,11 +8811,11 @@ Index
* 'cosh': Mathematical functions.
(line 6)
* 'cputime': Structures. (line 169)
-* 'crop': graph. (line 638)
-* cropping graphs: graph. (line 638)
+* 'crop': graph. (line 639)
+* cropping graphs: graph. (line 639)
* 'cross': Data types. (line 105)
* 'cross' <1>: Data types. (line 195)
-* 'cross' <2>: graph. (line 479)
+* 'cross' <2>: graph. (line 480)
* 'crossframe': markers. (line 22)
* crosshatch: Pens. (line 282)
* 'csv': Arrays. (line 351)
@@ -8830,9 +8828,9 @@ Index
* 'currentpen': Pens. (line 6)
* 'currentprojection': three. (line 363)
* 'curve': slopefield. (line 20)
-* custom axis types: graph. (line 140)
-* custom mark routine: graph. (line 576)
-* custom tick locations: graph. (line 232)
+* custom axis types: graph. (line 141)
+* custom mark routine: graph. (line 577)
+* custom tick locations: graph. (line 233)
* 'cut': Paths and guides. (line 251)
* 'cycle': Tutorial. (line 74)
* 'cycle' <1>: Tutorial. (line 123)
@@ -8852,7 +8850,7 @@ Index
* declaration: Programming. (line 8)
* 'deconstruct': GUI usage. (line 6)
* default arguments: Default arguments. (line 6)
-* 'defaultformat': graph. (line 174)
+* 'defaultformat': graph. (line 175)
* 'DefaultHead': draw. (line 26)
* 'DefaultHead3': three. (line 543)
* 'defaultpen': Pens. (line 45)
@@ -8967,8 +8965,8 @@ Index
(line 6)
* 'error': Files. (line 16)
* 'error' <1>: Files. (line 93)
-* error bars: graph. (line 530)
-* 'errorbars': graph. (line 479)
+* error bars: graph. (line 531)
+* 'errorbars': graph. (line 480)
* 'eval': Import. (line 97)
* 'eval' <1>: Import. (line 107)
* evenodd: Tutorial. (line 144)
@@ -9004,7 +9002,7 @@ Index
* 'fft': Arrays. (line 234)
* 'fft' <1>: math. (line 26)
* 'FFTW': Compiling from UNIX source.
- (line 57)
+ (line 61)
* 'file': Files. (line 6)
* 'file' <1>: Debugger. (line 44)
* 'Fill': draw. (line 26)
@@ -9077,11 +9075,11 @@ Index
* grayscale: Pens. (line 25)
* 'Grayscale': palette. (line 9)
* grid: Pens. (line 265)
-* grid <1>: graph. (line 745)
+* grid <1>: graph. (line 746)
* 'grid3': grid3. (line 6)
* 'gs': Configuring. (line 6)
* 'GSL': Compiling from UNIX source.
- (line 57)
+ (line 61)
* 'gsl': Mathematical functions.
(line 48)
* 'gsOptions': Options. (line 132)
@@ -9215,12 +9213,12 @@ Index
* 'Label': draw. (line 97)
* 'label': clip. (line 15)
* 'Label' <1>: label. (line 14)
-* Label: graph. (line 329)
+* Label: graph. (line 330)
* 'label' <1>: three. (line 444)
* 'labelpath': labelpath. (line 6)
* 'labelpath3': labelpath3. (line 6)
-* labelx: graph. (line 329)
-* labely: graph. (line 329)
+* labelx: graph. (line 330)
+* labely: graph. (line 330)
* 'Landscape': Frames and pictures.
(line 104)
* 'lastcut': Paths and guides. (line 266)
@@ -9234,16 +9232,16 @@ Index
* 'latticeshade': fill. (line 32)
* 'layer': Drawing commands. (line 16)
* 'leastsquares': stats. (line 6)
-* 'leastsquares' <1>: graph. (line 928)
-* 'Left': graph. (line 268)
-* 'LeftRight': graph. (line 274)
+* 'leastsquares' <1>: graph. (line 929)
+* 'Left': graph. (line 269)
+* 'LeftRight': graph. (line 275)
* 'LeftSide': label. (line 60)
-* 'LeftTicks': graph. (line 159)
-* 'LeftTicks' <1>: graph. (line 232)
+* 'LeftTicks': graph. (line 160)
+* 'LeftTicks' <1>: graph. (line 233)
* 'LeftView': three. (line 366)
* legend: Drawing commands. (line 31)
* 'legend': draw. (line 64)
-* 'legend' <1>: graph. (line 423)
+* 'legend' <1>: graph. (line 424)
* Legendre: Mathematical functions.
(line 48)
* 'length': Data types. (line 64)
@@ -9262,11 +9260,11 @@ Index
(line 6)
* 'libsigsegv': Functions. (line 93)
* 'libsigsegv' <1>: Help. (line 28)
-* 'limits': graph. (line 638)
+* 'limits': graph. (line 639)
* 'line': Arrays. (line 333)
* 'line' <1>: Arrays. (line 337)
* line mode: Arrays. (line 333)
-* 'Linear': graph. (line 689)
+* 'Linear': graph. (line 690)
* 'linecap': Pens. (line 135)
* 'linejoin': Pens. (line 145)
* 'lineskip': Pens. (line 188)
@@ -9275,14 +9273,14 @@ Index
* 'locale': Data types. (line 307)
* 'log': Mathematical functions.
(line 6)
-* 'Log': graph. (line 689)
-* log-log graph: graph. (line 723)
+* 'Log': graph. (line 690)
+* log-log graph: graph. (line 724)
* 'log10': Mathematical functions.
(line 6)
* 'log1p': Mathematical functions.
(line 6)
-* 'log2' graph: graph. (line 779)
-* logarithmic graph: graph. (line 723)
+* 'log2' graph: graph. (line 780)
+* logarithmic graph: graph. (line 724)
* logical operators: Arithmetic & logical.
(line 6)
* 'longdashdotted': Pens. (line 98)
@@ -9302,12 +9300,12 @@ Index
* 'Margins': draw. (line 42)
* margins: three. (line 243)
* 'Margins3': three. (line 559)
-* 'mark': graph. (line 479)
+* 'mark': graph. (line 480)
* 'markangle': markers. (line 35)
-* 'marker': graph. (line 479)
+* 'marker': graph. (line 480)
* 'markers': markers. (line 6)
-* 'marknodes': graph. (line 479)
-* 'markuniform': graph. (line 479)
+* 'marknodes': graph. (line 480)
+* 'markuniform': graph. (line 480)
* 'mask': Data types. (line 35)
* 'math': math. (line 6)
* mathematical functions: Mathematical functions.
@@ -9388,7 +9386,7 @@ Index
* 'NOT': Arithmetic & logical.
(line 63)
* 'notaknot': graph. (line 36)
-* 'NoTicks': graph. (line 159)
+* 'NoTicks': graph. (line 160)
* 'NoTicks3': graph3. (line 35)
* 'null': Structures. (line 6)
* 'nullpen': label. (line 14)
@@ -9406,9 +9404,9 @@ Index
* 'ode': ode. (line 6)
* 'offset': Pens. (line 119)
* offset: Options. (line 175)
-* 'OmitTick': graph. (line 222)
-* 'OmitTickInterval': graph. (line 222)
-* 'OmitTickIntervals': graph. (line 222)
+* 'OmitTick': graph. (line 223)
+* 'OmitTickInterval': graph. (line 223)
+* 'OmitTickIntervals': graph. (line 223)
* 'opacity': Pens. (line 233)
* open: Files. (line 12)
* 'OpenGL': three. (line 138)
@@ -9451,14 +9449,14 @@ Index
* 'paperwidth': Configuring. (line 59)
* 'parallelogram': flowchart. (line 47)
* parametric surface: graph3. (line 99)
-* parametrized curve: graph. (line 638)
+* parametrized curve: graph. (line 639)
* 'partialsum': math. (line 53)
* 'partialsum' <1>: math. (line 56)
* patch-dependent colors: three. (line 79)
* 'path': Paths and guides. (line 7)
* 'path' <1>: three. (line 42)
* 'path' <2>: flowchart. (line 77)
-* path markers: graph. (line 479)
+* path markers: graph. (line 480)
* 'path3': three. (line 6)
* 'path3' <1>: three. (line 42)
* 'path[]': Tutorial. (line 130)
@@ -9497,7 +9495,7 @@ Index
* 'point' <2>: three. (line 480)
* 'polar': Data types. (line 147)
* 'polargraph': graph. (line 88)
-* 'polygon': graph. (line 479)
+* 'polygon': graph. (line 480)
* 'pop': Arrays. (line 39)
* 'Portrait': Frames and pictures.
(line 104)
@@ -9594,10 +9592,10 @@ Index
* 'rgb' <1>: Pens. (line 58)
* Riemann zeta function: Mathematical functions.
(line 48)
-* 'Right': graph. (line 271)
+* 'Right': graph. (line 272)
* 'RightSide': label. (line 60)
-* 'RightTicks': graph. (line 159)
-* 'RightTicks' <1>: graph. (line 232)
+* 'RightTicks': graph. (line 160)
+* 'RightTicks' <1>: graph. (line 233)
* 'RightView': three. (line 366)
* 'Rotate': label. (line 36)
* 'rotate': three. (line 434)
@@ -9621,21 +9619,21 @@ Index
* 'scale': Pens. (line 119)
* 'scale' <1>: Transforms. (line 34)
* 'scale' <2>: Transforms. (line 36)
-* 'scale' <3>: graph. (line 689)
-* 'Scale' <1>: graph. (line 706)
+* 'scale' <3>: graph. (line 690)
+* 'Scale' <1>: graph. (line 707)
* 'scale' <4>: three. (line 433)
* 'scale3': three. (line 431)
-* scaled graph: graph. (line 669)
-* scientific graph: graph. (line 386)
+* scaled graph: graph. (line 670)
+* scientific graph: graph. (line 387)
* 'scroll': Files. (line 109)
* 'search': Arrays. (line 154)
* 'search' <1>: Arrays. (line 160)
* search paths: Search paths. (line 6)
* 'Seascape': Frames and pictures.
(line 110)
-* secondary axis: graph. (line 832)
-* 'secondaryX': graph. (line 832)
-* 'secondaryY': graph. (line 832)
+* secondary axis: graph. (line 833)
+* 'secondaryX': graph. (line 833)
+* 'secondaryY': graph. (line 833)
* 'seconds': Data types. (line 321)
* 'seek': Files. (line 93)
* 'seekeof': Files. (line 93)
@@ -9788,7 +9786,7 @@ Index
(line 309)
* 'texreset': Frames and pictures.
(line 313)
-* textbook graph: graph. (line 359)
+* textbook graph: graph. (line 360)
* 'tgz': UNIX binary distributions.
(line 6)
* 'thick': three. (line 121)
@@ -9798,10 +9796,10 @@ Index
* 'ThreeViews': three. (line 381)
* 'ThreeViewsFR': three. (line 381)
* 'ThreeViewsUS': three. (line 381)
-* tick: graph. (line 329)
-* 'ticks': graph. (line 159)
-* 'Ticks': graph. (line 159)
-* 'Ticks' <1>: graph. (line 232)
+* tick: graph. (line 330)
+* 'ticks': graph. (line 160)
+* 'Ticks': graph. (line 160)
+* 'Ticks' <1>: graph. (line 233)
* 'tildeframe': markers. (line 24)
* tile: Pens. (line 265)
* tilings: Pens. (line 251)
@@ -9811,10 +9809,10 @@ Index
* 'time' <3>: math. (line 34)
* 'times': Paths and guides. (line 220)
* 'times' <1>: Paths and guides. (line 224)
-* 'Top': graph. (line 134)
+* 'Top': graph. (line 135)
* 'TopView': three. (line 366)
* 'trace': Debugger. (line 50)
-* 'trailingzero': graph. (line 174)
+* 'trailingzero': graph. (line 175)
* 'transform': Transforms. (line 6)
* 'transform' <1>: three. (line 455)
* 'transform3': three. (line 418)
@@ -9884,8 +9882,8 @@ Index
(line 55)
* variable initializers: Variable initializers.
(line 6)
-* 'vectorfield': graph. (line 1003)
-* 'vectorfield' <1>: graph. (line 1042)
+* 'vectorfield': graph. (line 1004)
+* 'vectorfield' <1>: graph. (line 1043)
* 'vectorfield3': graph3. (line 157)
* vectorization: Arrays. (line 312)
* verbatim: Frames and pictures.
@@ -9916,22 +9914,22 @@ Index
* 'xaxis3': graph3. (line 7)
* 'xdr': Files. (line 76)
* 'xelatex': Options. (line 146)
-* 'XEquals': graph. (line 264)
-* 'xequals': graph. (line 277)
-* 'xlimits': graph. (line 638)
+* 'XEquals': graph. (line 265)
+* 'xequals': graph. (line 278)
+* 'xlimits': graph. (line 639)
* 'XOR': Arithmetic & logical.
(line 63)
* 'xpart': Data types. (line 93)
* 'xpart' <1>: Data types. (line 183)
* 'xscale': Transforms. (line 30)
* 'xscale3': three. (line 425)
-* xtick: graph. (line 329)
+* xtick: graph. (line 330)
* 'XY': three. (line 440)
* 'XY' <1>: three. (line 455)
* 'XYEquals': graph3. (line 21)
* 'XYZero': graph3. (line 21)
* 'XZEquals': graph3. (line 21)
-* 'XZero': graph. (line 259)
+* 'XZero': graph. (line 260)
* 'XZZero': graph3. (line 21)
* 'Y': Mathematical functions.
(line 6)
@@ -9939,18 +9937,18 @@ Index
(line 48)
* 'Y' <2>: three. (line 255)
* 'yaxis3': graph3. (line 7)
-* 'YEquals': graph. (line 127)
-* 'yequals': graph. (line 277)
-* 'ylimits': graph. (line 638)
+* 'YEquals': graph. (line 128)
+* 'yequals': graph. (line 278)
+* 'ylimits': graph. (line 639)
* 'ypart': Data types. (line 96)
* 'ypart' <1>: Data types. (line 186)
* 'yscale': Transforms. (line 32)
* 'yscale3': three. (line 427)
-* ytick: graph. (line 329)
+* ytick: graph. (line 330)
* 'YX': three. (line 455)
* 'YZ': three. (line 455)
* 'YZEquals': graph3. (line 21)
-* 'YZero': graph. (line 122)
+* 'YZero': graph. (line 123)
* 'YZZero': graph3. (line 21)
* 'Z': three. (line 255)
* 'zaxis3': graph3. (line 7)
@@ -9981,141 +9979,141 @@ Node: Description6852
Node: Installation10467
Node: UNIX binary distributions11502
Node: MacOS X binary distributions12607
-Node: Microsoft Windows13495
-Ref: psview14203
-Node: Configuring15139
-Node: Search paths19379
-Node: Compiling from UNIX source20218
-Node: Editing modes23128
-Node: Subversion25556
-Node: Uninstall26004
-Node: Tutorial26354
-Ref: unitcircle30896
-Node: Drawing commands33039
-Node: draw34754
-Ref: arrows35911
-Node: fill41159
-Ref: gradient shading42205
-Node: clip46767
-Node: label47363
-Ref: Label47963
-Node: Bezier curves53806
-Node: Programming57699
-Ref: array iteration58514
-Node: Data types59619
-Ref: format70021
-Node: Paths and guides74322
-Ref: circle74576
-Ref: extension84257
-Node: Pens91035
-Ref: fillrule98540
-Ref: basealign99444
-Ref: transparency102278
-Ref: makepen105821
-Ref: overwrite106698
-Node: Transforms107912
-Node: Frames and pictures109694
-Ref: envelope110852
-Ref: size111945
-Ref: unitsize112932
-Ref: shipout114005
-Ref: filltype116356
-Ref: add119528
-Ref: add about120477
-Ref: tex123480
-Node: Files124375
-Ref: cd125362
-Ref: scroll130047
-Node: Variable initializers132965
-Node: Structures135682
-Node: Operators143160
-Node: Arithmetic & logical143474
-Node: Self & prefix operators145415
-Node: User-defined operators146204
-Node: Implicit scaling147114
-Node: Functions147677
-Ref: stack overflow150462
-Node: Default arguments151027
-Node: Named arguments151765
-Node: Rest arguments154335
-Node: Mathematical functions157456
-Node: Arrays162119
-Ref: sort169101
-Ref: tridiagonal171530
-Ref: solve172761
-Node: Slices176954
-Node: Casts180847
-Node: Import182818
-Node: Static188065
-Node: LaTeX usage190958
-Node: Base modules197438
-Node: plain199938
-Node: simplex200591
-Node: math200865
-Node: interpolate203574
-Node: geometry203853
-Node: trembling204447
-Node: stats204716
-Node: patterns204976
-Node: markers205212
-Node: tree207070
-Node: binarytree207255
-Node: drawtree207920
-Node: syzygy208121
-Node: feynman208395
-Node: roundedpath208670
-Node: animation208953
-Ref: animate209374
-Node: embed210491
-Node: slide211446
-Node: MetaPost211787
-Node: unicode212506
-Node: latin1213380
-Node: babel213749
-Node: labelpath213979
-Node: labelpath3214800
-Node: annotate215111
-Node: CAD215581
-Node: graph215892
-Ref: ticks223030
-Ref: pathmarkers236620
-Ref: marker237090
-Ref: markuniform237444
-Ref: errorbars239242
-Ref: automatic scaling243521
-Node: palette254813
-Ref: images254931
-Ref: image259105
-Ref: logimage259624
-Ref: penimage260728
-Ref: penfunctionimage260989
-Node: three261759
-Ref: PostScript3D288548
-Node: obj290286
-Node: graph3290535
-Ref: GaussianSurface295811
-Node: grid3296959
-Node: solids297742
-Node: tube298733
-Node: flowchart300967
-Node: contour305574
-Node: contour3310876
-Node: slopefield311183
-Node: ode312664
-Node: Options312921
-Ref: configuration file319061
-Ref: settings319061
-Ref: texengines320304
-Ref: convert320304
-Node: Interactive mode323627
-Ref: history325776
-Node: GUI327080
-Node: GUI installation327584
-Node: GUI usage328709
-Node: PostScript to Asymptote329617
-Node: Help330375
-Node: Debugger332082
-Node: Credits333838
-Node: Index334772
+Node: Microsoft Windows13161
+Ref: psview13886
+Node: Configuring14822
+Node: Search paths19057
+Node: Compiling from UNIX source19896
+Node: Editing modes22911
+Node: Subversion25339
+Node: Uninstall25787
+Node: Tutorial26137
+Ref: unitcircle30685
+Node: Drawing commands32830
+Node: draw34545
+Ref: arrows35702
+Node: fill40950
+Ref: gradient shading41996
+Node: clip46558
+Node: label47154
+Ref: Label47754
+Node: Bezier curves53598
+Node: Programming57495
+Ref: array iteration58310
+Node: Data types59415
+Ref: format69817
+Node: Paths and guides74118
+Ref: circle74372
+Ref: extension84054
+Node: Pens90833
+Ref: fillrule98340
+Ref: basealign99244
+Ref: transparency102078
+Ref: makepen105623
+Ref: overwrite106501
+Node: Transforms107715
+Node: Frames and pictures109497
+Ref: envelope110655
+Ref: size111748
+Ref: unitsize112735
+Ref: shipout113808
+Ref: filltype116159
+Ref: add119331
+Ref: add about120280
+Ref: tex123284
+Node: Files124179
+Ref: cd125166
+Ref: scroll129851
+Node: Variable initializers132769
+Node: Structures135486
+Node: Operators142964
+Node: Arithmetic & logical143278
+Node: Self & prefix operators145219
+Node: User-defined operators146008
+Node: Implicit scaling146918
+Node: Functions147481
+Ref: stack overflow150266
+Node: Default arguments150831
+Node: Named arguments151569
+Node: Rest arguments154139
+Node: Mathematical functions157260
+Node: Arrays161923
+Ref: sort168905
+Ref: tridiagonal171334
+Ref: solve172565
+Node: Slices176758
+Node: Casts180651
+Node: Import182622
+Node: Static187869
+Node: LaTeX usage190762
+Node: Base modules197242
+Node: plain199742
+Node: simplex200395
+Node: math200669
+Node: interpolate203378
+Node: geometry203657
+Node: trembling204251
+Node: stats204520
+Node: patterns204780
+Node: markers205016
+Node: tree206876
+Node: binarytree207061
+Node: drawtree207727
+Node: syzygy207928
+Node: feynman208202
+Node: roundedpath208477
+Node: animation208760
+Ref: animate209181
+Node: embed210298
+Node: slide211253
+Node: MetaPost211594
+Node: unicode212313
+Node: latin1213187
+Node: babel213556
+Node: labelpath213786
+Node: labelpath3214607
+Node: annotate214918
+Node: CAD215388
+Node: graph215699
+Ref: ticks222838
+Ref: pathmarkers236433
+Ref: marker236903
+Ref: markuniform237257
+Ref: errorbars239055
+Ref: automatic scaling243339
+Node: palette254645
+Ref: images254763
+Ref: image258937
+Ref: logimage259457
+Ref: penimage260562
+Ref: penfunctionimage260824
+Node: three261595
+Ref: PostScript3D288387
+Node: obj290126
+Node: graph3290375
+Ref: GaussianSurface295654
+Node: grid3296803
+Node: solids297587
+Node: tube298579
+Node: flowchart300813
+Node: contour305421
+Node: contour3310728
+Node: slopefield311035
+Node: ode312517
+Node: Options312774
+Ref: configuration file318914
+Ref: settings318914
+Ref: texengines320157
+Ref: convert320157
+Node: Interactive mode323480
+Ref: history325629
+Node: GUI326933
+Node: GUI installation327437
+Node: GUI usage328562
+Node: PostScript to Asymptote329470
+Node: Help330228
+Node: Debugger331918
+Node: Credits333674
+Node: Index334608

End Tag Table
diff --git a/Build/source/utils/asymptote/patches/README b/Build/source/utils/asymptote/patches/README
index f277e200cfb..0be17d675a1 100644
--- a/Build/source/utils/asymptote/patches/README
+++ b/Build/source/utils/asymptote/patches/README
@@ -17,4 +17,4 @@ out-of-memory errors.
The file fixmem.reg patches the Microsoft Windows registry so that the
cygwin1.dll library can allocate more than 384MB. It is applied
automatically by the Asymptote setup.exe file but may also be applied manually:
-regedit/s fixmem.reg
+regedit /s fixmem.reg
diff --git a/Build/source/utils/asymptote/patches/cygwin_xdr.patch b/Build/source/utils/asymptote/patches/cygwin_xdr.patch
deleted file mode 100644
index b0ece108abf..00000000000
--- a/Build/source/utils/asymptote/patches/cygwin_xdr.patch
+++ /dev/null
@@ -1,385 +0,0 @@
-diff -rub rpc.broken/auth.h rpc/auth.h
---- rpc.broken/auth.h 2005-03-10 14:32:50.001000000 -0700
-+++ rpc/auth.h 2010-05-04 18:46:19.890625000 -0700
-@@ -62,7 +62,7 @@
- AUTH_FAILED=7 /* some unknown reason */
- };
-
--#if (mc68000 || sparc || vax || i386)
-+#if (mc68000 || sparc || vax || __i386__)
- typedef u_long u_int32; /* 32-bit unsigned integers */
- #endif
-
-diff -rub rpc.broken/svc.h rpc/svc.h
---- rpc.broken/svc.h 2005-03-10 14:32:51.001000000 -0700
-+++ rpc/svc.h 2010-05-04 18:46:47.343750000 -0700
-@@ -37,6 +37,8 @@
- #ifndef __SVC_HEADER__
- #define __SVC_HEADER__
-
-+#include <netinet/in.h>
-+
- /*
- * This interface must manage two items concerning remote procedure calling:
- *
-diff -rub rpc.broken/xdr.h rpc/xdr.h
---- rpc.broken/xdr.h 2005-03-10 14:32:52.001000000 -0700
-+++ rpc/xdr.h 2010-05-04 18:46:19.906250000 -0700
-@@ -1,4 +1,3 @@
--/* @(#)xdr.h 2.2 88/07/29 4.0 RPCSRC */
- /*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
-@@ -27,7 +26,6 @@
- * 2550 Garcia Avenue
- * Mountain View, California 94043
- */
--/* @(#)xdr.h 1.19 87/04/22 SMI */
-
- /*
- * xdr.h, External Data Representation Serialization Routines.
-@@ -35,8 +33,17 @@
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
--#ifndef __XDR_HEADER__
--#define __XDR_HEADER__
-+#ifndef _RPC_XDR_H
-+#define _RPC_XDR_H 1
-+
-+#include <features.h>
-+#include <sys/types.h>
-+#include <rpc/types.h>
-+
-+/* We need FILE. */
-+#include <stdio.h>
-+
-+__BEGIN_DECLS
-
- /*
- * XDR provides a conventional way for converting between C data
-@@ -74,17 +81,66 @@
- * request.
- */
- enum xdr_op {
-- XDR_ENCODE=0,
-- XDR_DECODE=1,
-- XDR_FREE=2
-+ XDR_ENCODE = 0,
-+ XDR_DECODE = 1,
-+ XDR_FREE = 2
- };
-
- /*
- * This is the number of bytes per unit of external data.
- */
- #define BYTES_PER_XDR_UNIT (4)
-+/*
-+ * This only works if the above is a power of 2. But it's defined to be
-+ * 4 by the appropriate RFCs. So it will work. And it's normally quicker
-+ * than the old routine.
-+ */
-+#if 1
-+#define RNDUP(x) (((x) + BYTES_PER_XDR_UNIT - 1) & ~(BYTES_PER_XDR_UNIT - 1))
-+#else /* this is the old routine */
- #define RNDUP(x) ((((x) + BYTES_PER_XDR_UNIT - 1) / BYTES_PER_XDR_UNIT) \
- * BYTES_PER_XDR_UNIT)
-+#endif
-+
-+/*
-+ * The XDR handle.
-+ * Contains operation which is being applied to the stream,
-+ * an operations vector for the particular implementation (e.g. see xdr_mem.c),
-+ * and two private fields for the use of the particular implementation.
-+ */
-+typedef struct XDR XDR;
-+struct XDR
-+ {
-+ enum xdr_op x_op; /* operation; fast additional param */
-+ struct xdr_ops
-+ {
-+ bool_t (*x_getlong) (XDR *__xdrs, long *__lp);
-+ /* get a long from underlying stream */
-+ bool_t (*x_putlong) (XDR *__xdrs, __const long *__lp);
-+ /* put a long to " */
-+ bool_t (*x_getbytes) (XDR *__xdrs, caddr_t __addr, u_int __len);
-+ /* get some bytes from " */
-+ bool_t (*x_putbytes) (XDR *__xdrs, __const char *__addr, u_int __len);
-+ /* put some bytes to " */
-+ u_int (*x_getpostn) (__const XDR *__xdrs);
-+ /* returns bytes off from beginning */
-+ bool_t (*x_setpostn) (XDR *__xdrs, u_int __pos);
-+ /* lets you reposition the stream */
-+ int32_t *(*x_inline) (XDR *__xdrs, u_int __len);
-+ /* buf quick ptr to buffered data */
-+ void (*x_destroy) (XDR *__xdrs);
-+ /* free privates of this xdr_stream */
-+ bool_t (*x_getint32) (XDR *__xdrs, int32_t *__ip);
-+ /* get a int from underlying stream */
-+ bool_t (*x_putint32) (XDR *__xdrs, __const int32_t *__ip);
-+ /* put a int to " */
-+ }
-+ *x_ops;
-+ caddr_t x_public; /* users' data */
-+ caddr_t x_private; /* pointer to private data */
-+ caddr_t x_base; /* private used for position info */
-+ u_int x_handy; /* extra private word */
-+ };
-
- /*
- * A xdrproc_t exists for each data type which is to be encoded or decoded.
-@@ -95,41 +151,29 @@
- * allocate dynamic storage of the appropriate size and return it.
- * bool_t (*xdrproc_t)(XDR *, caddr_t *);
- */
--typedef bool_t (*xdrproc_t)();
-+typedef bool_t (*xdrproc_t) (XDR *, void *,...);
-
--/*
-- * The XDR handle.
-- * Contains operation which is being applied to the stream,
-- * an operations vector for the paticular implementation (e.g. see xdr_mem.c),
-- * and two private fields for the use of the particular impelementation.
-- */
--typedef struct {
-- enum xdr_op x_op; /* operation; fast additional param */
-- struct xdr_ops {
-- bool_t (*x_getlong)(); /* get a long from underlying stream */
-- bool_t (*x_putlong)(); /* put a long to " */
-- bool_t (*x_getbytes)();/* get some bytes from " */
-- bool_t (*x_putbytes)();/* put some bytes to " */
-- u_int (*x_getpostn)();/* returns bytes off from beginning */
-- bool_t (*x_setpostn)();/* lets you reposition the stream */
-- long * (*x_inline)(); /* buf quick ptr to buffered data */
-- void (*x_destroy)(); /* free privates of this xdr_stream */
-- } *x_ops;
-- caddr_t x_public; /* users' data */
-- caddr_t x_private; /* pointer to private data */
-- caddr_t x_base; /* private used for position info */
-- int x_handy; /* extra private word */
--} XDR;
-
- /*
- * Operations defined on a XDR handle
- *
- * XDR *xdrs;
-+ * int32_t *int32p;
- * long *longp;
- * caddr_t addr;
- * u_int len;
- * u_int pos;
- */
-+#define XDR_GETINT32(xdrs, int32p) \
-+ (*(xdrs)->x_ops->x_getint32)(xdrs, int32p)
-+#define xdr_getint32(xdrs, int32p) \
-+ (*(xdrs)->x_ops->x_getint32)(xdrs, int32p)
-+
-+#define XDR_PUTINT32(xdrs, int32p) \
-+ (*(xdrs)->x_ops->x_putint32)(xdrs, int32p)
-+#define xdr_putint32(xdrs, int32p) \
-+ (*(xdrs)->x_ops->x_putint32)(xdrs, int32p)
-+
- #define XDR_GETLONG(xdrs, longp) \
- (*(xdrs)->x_ops->x_getlong)(xdrs, longp)
- #define xdr_getlong(xdrs, longp) \
-@@ -166,11 +210,15 @@
- (*(xdrs)->x_ops->x_inline)(xdrs, len)
-
- #define XDR_DESTROY(xdrs) \
-+ do { \
- if ((xdrs)->x_ops->x_destroy) \
-- (*(xdrs)->x_ops->x_destroy)(xdrs)
-+ (*(xdrs)->x_ops->x_destroy)(xdrs); \
-+ } while (0)
- #define xdr_destroy(xdrs) \
-+ do { \
- if ((xdrs)->x_ops->x_destroy) \
-- (*(xdrs)->x_ops->x_destroy)(xdrs)
-+ (*(xdrs)->x_ops->x_destroy)(xdrs); \
-+ } while (0)
-
- /*
- * Support struct for discriminated unions.
-@@ -183,13 +231,14 @@
- * If there is no match and no default routine it is an error.
- */
- #define NULL_xdrproc_t ((xdrproc_t)0)
--struct xdr_discrim {
-+struct xdr_discrim
-+{
- int value;
- xdrproc_t proc;
- };
-
- /*
-- * In-line routines for fast encode/decode of primitve data types.
-+ * Inline routines for fast encode/decode of primitive data types.
- * Caveat emptor: these use single memory cycles to get the
- * data from the underlying buffer, and will fail to operate
- * properly if the data is not aligned. The standard way to use these
-@@ -203,73 +252,122 @@
- * N.B. and frozen for all time: each data type here uses 4 bytes
- * of external representation.
- */
--#define IXDR_GET_LONG(buf) ((long)ntohl((u_long)*(buf)++))
--#define IXDR_PUT_LONG(buf, v) (*(buf)++ = (long)htonl((u_long)v))
-+
-+#define IXDR_GET_INT32(buf) ((int32_t)ntohl((uint32_t)*(buf)++))
-+#define IXDR_PUT_INT32(buf, v) (*(buf)++ = (int32_t)htonl((uint32_t)(v)))
-+#define IXDR_GET_U_INT32(buf) ((uint32_t)IXDR_GET_INT32(buf))
-+#define IXDR_PUT_U_INT32(buf, v) IXDR_PUT_INT32(buf, (int32_t)(v))
-+
-+/* WARNING: The IXDR_*_LONG defines are removed by Sun for new platforms
-+ * and shouldn't be used any longer. Code which use this defines or longs
-+ * in the RPC code will not work on 64bit Solaris platforms !
-+ */
-+#define IXDR_GET_LONG(buf) ((long)IXDR_GET_U_INT32(buf))
-+#define IXDR_PUT_LONG(buf, v) ((long)IXDR_PUT_INT32(buf, (long)(v)))
-+#define IXDR_GET_U_LONG(buf) ((u_long)IXDR_GET_LONG(buf))
-+#define IXDR_PUT_U_LONG(buf, v) IXDR_PUT_LONG(buf, (long)(v))
-+
-
- #define IXDR_GET_BOOL(buf) ((bool_t)IXDR_GET_LONG(buf))
- #define IXDR_GET_ENUM(buf, t) ((t)IXDR_GET_LONG(buf))
--#define IXDR_GET_U_LONG(buf) ((u_long)IXDR_GET_LONG(buf))
- #define IXDR_GET_SHORT(buf) ((short)IXDR_GET_LONG(buf))
- #define IXDR_GET_U_SHORT(buf) ((u_short)IXDR_GET_LONG(buf))
-
--#define IXDR_PUT_BOOL(buf, v) IXDR_PUT_LONG((buf), ((long)(v)))
--#define IXDR_PUT_ENUM(buf, v) IXDR_PUT_LONG((buf), ((long)(v)))
--#define IXDR_PUT_U_LONG(buf, v) IXDR_PUT_LONG((buf), ((long)(v)))
--#define IXDR_PUT_SHORT(buf, v) IXDR_PUT_LONG((buf), ((long)(v)))
--#define IXDR_PUT_U_SHORT(buf, v) IXDR_PUT_LONG((buf), ((long)(v)))
-+#define IXDR_PUT_BOOL(buf, v) IXDR_PUT_LONG(buf, (long)(v))
-+#define IXDR_PUT_ENUM(buf, v) IXDR_PUT_LONG(buf, (long)(v))
-+#define IXDR_PUT_SHORT(buf, v) IXDR_PUT_LONG(buf, (long)(v))
-+#define IXDR_PUT_U_SHORT(buf, v) IXDR_PUT_LONG(buf, (long)(v))
-
- /*
- * These are the "generic" xdr routines.
-- */
--extern bool_t xdr_void();
--extern bool_t xdr_int();
--extern bool_t xdr_u_int();
--extern bool_t xdr_long();
--extern bool_t xdr_u_long();
--extern bool_t xdr_short();
--extern bool_t xdr_u_short();
--extern bool_t xdr_int64_t();
--extern bool_t xdr_u_int64_t();
--extern bool_t xdr_bool();
--extern bool_t xdr_enum();
--extern bool_t xdr_array();
--extern bool_t xdr_bytes();
--extern bool_t xdr_opaque();
--extern bool_t xdr_string();
--extern bool_t xdr_union();
--extern bool_t xdr_char();
--extern bool_t xdr_u_char();
--extern bool_t xdr_vector();
--extern bool_t xdr_float();
--extern bool_t xdr_double();
--extern bool_t xdr_reference();
--extern bool_t xdr_pointer();
--extern bool_t xdr_wrapstring();
-+ * None of these can have const applied because it's not possible to
-+ * know whether the call is a read or a write to the passed parameter
-+ * also, the XDR structure is always updated by some of these calls.
-+ */
-+extern bool_t xdr_void (void);
-+extern bool_t xdr_short (XDR *__xdrs, short *__sp);
-+extern bool_t xdr_u_short (XDR *__xdrs, u_short *__usp);
-+extern bool_t xdr_int (XDR *__xdrs, int *__ip);
-+extern bool_t xdr_u_int (XDR *__xdrs, u_int *__up);
-+extern bool_t xdr_long (XDR *__xdrs, long *__lp);
-+extern bool_t xdr_u_long (XDR *__xdrs, u_long *__ulp);
-+extern bool_t xdr_int8_t (XDR *__xdrs, int8_t *__ip);
-+extern bool_t xdr_uint8_t (XDR *__xdrs, uint8_t *__up);
-+extern bool_t xdr_int16_t (XDR *__xdrs, int16_t *__ip);
-+extern bool_t xdr_uint16_t (XDR *__xdrs, uint16_t *__up);
-+extern bool_t xdr_int32_t (XDR *__xdrs, int32_t *__ip);
-+extern bool_t xdr_uint32_t (XDR *__xdrs, uint32_t *__up);
-+extern bool_t xdr_int64_t (XDR *__xdrs, int64_t *__ip);
-+extern bool_t xdr_uint64_t (XDR *__xdrs, uint64_t *__up);
-+extern bool_t xdr_bool (XDR *__xdrs, bool_t *__bp);
-+extern bool_t xdr_enum (XDR *__xdrs, enum_t *__ep);
-+extern bool_t xdr_array (XDR * _xdrs, caddr_t *__addrp, u_int *__sizep,
-+ u_int __maxsize, u_int __elsize, xdrproc_t __elproc)
-+ ;
-+extern bool_t xdr_bytes (XDR *__xdrs, char **__cpp, u_int *__sizep,
-+ u_int __maxsize);
-+extern bool_t xdr_opaque (XDR *__xdrs, caddr_t __cp, u_int __cnt);
-+extern bool_t xdr_string (XDR *__xdrs, char **__cpp, u_int __maxsize);
-+extern bool_t xdr_union (XDR *__xdrs, enum_t *__dscmp, char *__unp,
-+ __const struct xdr_discrim *__choices,
-+ xdrproc_t dfault);
-+extern bool_t xdr_char (XDR *__xdrs, char *__cp);
-+extern bool_t xdr_u_char (XDR *__xdrs, u_char *__cp);
-+extern bool_t xdr_vector (XDR *__xdrs, char *__basep, u_int __nelem,
-+ u_int __elemsize, xdrproc_t __xdr_elem);
-+extern bool_t xdr_float (XDR *__xdrs, float *__fp);
-+extern bool_t xdr_double (XDR *__xdrs, double *__dp);
-+extern bool_t xdr_reference (XDR *__xdrs, caddr_t *__xpp, u_int __size,
-+ xdrproc_t __proc);
-+extern bool_t xdr_pointer (XDR *__xdrs, char **__objpp,
-+ u_int __obj_size, xdrproc_t __xdr_obj);
-+extern bool_t xdr_wrapstring (XDR *__xdrs, char **__cpp);
-+extern u_long xdr_sizeof (xdrproc_t, void *);
-
- /*
- * Common opaque bytes objects used by many rpc protocols;
- * declared here due to commonality.
- */
- #define MAX_NETOBJ_SZ 1024
--struct netobj {
-+struct netobj
-+{
- u_int n_len;
- char *n_bytes;
- };
- typedef struct netobj netobj;
--extern bool_t xdr_netobj();
-+extern bool_t xdr_netobj (XDR *__xdrs, struct netobj *__np);
-
- /*
- * These are the public routines for the various implementations of
- * xdr streams.
- */
--extern void xdrmem_create(); /* XDR using memory buffers */
--extern void xdrstdio_create(); /* XDR using stdio library */
--extern void xdrrec_create(); /* XDR pseudo records for tcp */
--extern bool_t xdrrec_endofrecord(); /* make end of xdr record */
--extern bool_t xdrrec_skiprecord(); /* move to beginning of next record */
--extern bool_t xdrrec_eof(); /* true if no more input */
-+
-+/* XDR using memory buffers */
-+extern void xdrmem_create (XDR *__xdrs, __const caddr_t __addr,
-+ u_int __size, enum xdr_op __xop);
-+
-+/* XDR using stdio library */
-+extern void xdrstdio_create (XDR *__xdrs, FILE *__file, enum xdr_op __xop)
-+ ;
-+
-+/* XDR pseudo records for tcp */
-+extern void xdrrec_create (XDR *__xdrs, u_int __sendsize,
-+ u_int __recvsize, caddr_t __tcp_handle,
-+ int (*__readit) (char *, char *, int),
-+ int (*__writeit) (char *, char *, int));
-+
-+/* make end of xdr record */
-+extern bool_t xdrrec_endofrecord (XDR *__xdrs, bool_t __sendnow);
-+
-+/* move to beginning of next record */
-+extern bool_t xdrrec_skiprecord (XDR *__xdrs);
-+
-+/* true if no more input */
-+extern bool_t xdrrec_eof (XDR *__xdrs);
-
- /* free memory buffers for xdr */
--extern void xdr_free(xdrproc_t proc, char *objp);
-+extern void xdr_free (xdrproc_t __proc, char *__objp);
-+
-+__END_DECLS
-
--#endif /* !__XDR_HEADER__ */
-+#endif /* rpc/xdr.h */
diff --git a/Build/source/utils/asymptote/runlabel.cc b/Build/source/utils/asymptote/runlabel.cc
index e19997b9982..ed0ab4734ff 100644
--- a/Build/source/utils/asymptote/runlabel.cc
+++ b/Build/source/utils/asymptote/runlabel.cc
@@ -332,7 +332,7 @@ void gen_runlabel3(stack *Stack)
string dviname=auxname(prefix,"dvi");
bbox b;
string texengine=getSetting<string>("tex");
- bool xe=settings::xe(texengine);
+ bool xe=settings::xe(texengine) || settings::context(texengine);
texfile tex(texname,b,true);
tex.miniprologue();
@@ -366,6 +366,8 @@ void gen_runlabel3(stack *Stack)
int status=opentex(texname,prefix,!xe);
string pdfname,pdfname2,psname2;
+ bool keep=getSetting<bool>("keep");
+
if(!status) {
if(xe) {
pdfname=auxname(prefix,"pdf");
@@ -397,12 +399,20 @@ void gen_runlabel3(stack *Stack)
cmd.push_back("-dBATCH");
if(safe) cmd.push_back("-dSAFER");
cmd.push_back("-sDEVICE=eps2write");
- cmd.push_back("-sOutputFile="+psname2);
+ // Work around eps2write bug that forces all postscript to first page.
+ cmd.push_back("-sOutputFile="+psname2+"%d");
cmd.push_back(pdfname2);
status=System(cmd,0,true,"gs");
- std::ifstream in(psname2.c_str(),std::ios::binary);
- ps << in.rdbuf();
+ for(unsigned int i=1; i <= n ; ++i) {
+ ostringstream buf;
+ buf << psname2.c_str() << i;
+ const char *name=buf.str().c_str();
+ std::ifstream in(name,std::ios::binary);
+ ps << in.rdbuf();
+ ps << "(>\n) print flush\n";
+ if(!keep) unlink(name);
+ }
ps.close();
}
} else {
@@ -423,7 +433,6 @@ void gen_runlabel3(stack *Stack)
if(status != 0)
error("texpath failed");
- bool keep=getSetting<bool>("keep");
if(!keep) { // Delete temporary files.
unlink(texname.c_str());
if(!getSetting<bool>("keepaux"))
@@ -432,12 +441,12 @@ void gen_runlabel3(stack *Stack)
if(xe) {
unlink(pdfname.c_str());
unlink(pdfname2.c_str());
- unlink(psname2.c_str());
} else
unlink(dviname.c_str());
if(settings::context(texengine)) {
unlink(auxname(prefix,"top").c_str());
unlink(auxname(prefix,"tua").c_str());
+ unlink(auxname(prefix,"tuc").c_str());
unlink(auxname(prefix,"tui").c_str());
}
}
@@ -445,13 +454,13 @@ void gen_runlabel3(stack *Stack)
readpath(psname,keep,false,0.12,-1.0)); return;}
}
-#line 375 "runlabel.in"
+#line 384 "runlabel.in"
// patharray2* textpath(stringarray *s, penarray *p);
void gen_runlabel4(stack *Stack)
{
penarray * p=vm::pop<penarray *>(Stack);
stringarray * s=vm::pop<stringarray *>(Stack);
-#line 376 "runlabel.in"
+#line 385 "runlabel.in"
size_t n=checkArrays(s,p);
if(n == 0) {Stack->push<patharray2*>(new array(0)); return;}
@@ -524,13 +533,13 @@ void gen_runlabel4(stack *Stack)
{Stack->push<patharray2*>(readpath(psname,keep,false,0.1)); return;}
}
-#line 449 "runlabel.in"
+#line 458 "runlabel.in"
// patharray* _strokepath(path g, pen p=CURRENTPEN);
void gen_runlabel5(stack *Stack)
{
pen p=vm::pop<pen>(Stack,CURRENTPEN);
path g=vm::pop<path>(Stack);
-#line 450 "runlabel.in"
+#line 459 "runlabel.in"
array *P=new array(0);
if(g.size() == 0) {Stack->push<patharray*>(P); return;}
@@ -568,9 +577,9 @@ void gen_runlabel_venv(venv &ve)
addFunc(ve, run::gen_runlabel2, realArray(), SYM(texsize), formal(primString(), SYM(s), false, false), formal(primPen(), SYM(p), true, false));
#line 251 "runlabel.in"
addFunc(ve, run::gen_runlabel3, pathArray2() , SYM(_texpath), formal(stringArray() , SYM(s), false, false), formal(penArray() , SYM(p), false, false));
-#line 375 "runlabel.in"
+#line 384 "runlabel.in"
addFunc(ve, run::gen_runlabel4, pathArray2() , SYM(textpath), formal(stringArray() , SYM(s), false, false), formal(penArray() , SYM(p), false, false));
-#line 449 "runlabel.in"
+#line 458 "runlabel.in"
addFunc(ve, run::gen_runlabel5, pathArray() , SYM(_strokepath), formal(primPath(), SYM(g), false, false), formal(primPen(), SYM(p), true, false));
}
diff --git a/Build/source/utils/asymptote/runlabel.in b/Build/source/utils/asymptote/runlabel.in
index b4595741251..3b1d5f360cc 100644
--- a/Build/source/utils/asymptote/runlabel.in
+++ b/Build/source/utils/asymptote/runlabel.in
@@ -259,7 +259,7 @@ patharray2 *_texpath(stringarray *s, penarray *p)
string dviname=auxname(prefix,"dvi");
bbox b;
string texengine=getSetting<string>("tex");
- bool xe=settings::xe(texengine);
+ bool xe=settings::xe(texengine) || settings::context(texengine);
texfile tex(texname,b,true);
tex.miniprologue();
@@ -293,6 +293,8 @@ patharray2 *_texpath(stringarray *s, penarray *p)
int status=opentex(texname,prefix,!xe);
string pdfname,pdfname2,psname2;
+ bool keep=getSetting<bool>("keep");
+
if(!status) {
if(xe) {
pdfname=auxname(prefix,"pdf");
@@ -324,12 +326,20 @@ patharray2 *_texpath(stringarray *s, penarray *p)
cmd.push_back("-dBATCH");
if(safe) cmd.push_back("-dSAFER");
cmd.push_back("-sDEVICE=eps2write");
- cmd.push_back("-sOutputFile="+psname2);
+ // Work around eps2write bug that forces all postscript to first page.
+ cmd.push_back("-sOutputFile="+psname2+"%d");
cmd.push_back(pdfname2);
status=System(cmd,0,true,"gs");
- std::ifstream in(psname2.c_str(),std::ios::binary);
- ps << in.rdbuf();
+ for(unsigned int i=1; i <= n ; ++i) {
+ ostringstream buf;
+ buf << psname2.c_str() << i;
+ const char *name=buf.str().c_str();
+ std::ifstream in(name,std::ios::binary);
+ ps << in.rdbuf();
+ ps << "(>\n) print flush\n";
+ if(!keep) unlink(name);
+ }
ps.close();
}
} else {
@@ -350,7 +360,6 @@ patharray2 *_texpath(stringarray *s, penarray *p)
if(status != 0)
error("texpath failed");
- bool keep=getSetting<bool>("keep");
if(!keep) { // Delete temporary files.
unlink(texname.c_str());
if(!getSetting<bool>("keepaux"))
@@ -359,12 +368,12 @@ patharray2 *_texpath(stringarray *s, penarray *p)
if(xe) {
unlink(pdfname.c_str());
unlink(pdfname2.c_str());
- unlink(psname2.c_str());
} else
unlink(dviname.c_str());
if(settings::context(texengine)) {
unlink(auxname(prefix,"top").c_str());
unlink(auxname(prefix,"tua").c_str());
+ unlink(auxname(prefix,"tuc").c_str());
unlink(auxname(prefix,"tui").c_str());
}
}
diff --git a/Build/source/utils/asymptote/tests/Makefile b/Build/source/utils/asymptote/tests/Makefile
index ec7827ca476..659737bfd4d 100644
--- a/Build/source/utils/asymptote/tests/Makefile
+++ b/Build/source/utils/asymptote/tests/Makefile
@@ -1,6 +1,7 @@
.NOTPARALLEL:
-TESTDIRS = string arith frames types imp array pic
+TESTDIRS = string arith frames types imp array pic gs
+
EXTRADIRS = gsl output
test: $(TESTDIRS)
diff --git a/Build/source/utils/asymptote/tests/gs/ghostscript.asy b/Build/source/utils/asymptote/tests/gs/ghostscript.asy
new file mode 100644
index 00000000000..6d341b1cd4c
--- /dev/null
+++ b/Build/source/utils/asymptote/tests/gs/ghostscript.asy
@@ -0,0 +1,12 @@
+import TestLib;
+
+StartTest("Ghostscript");
+bool uptodate=texpath("A").length != 0;
+if(!uptodate) {
+ write();
+ write();
+ write("Please install Ghostscript version 9.14 or later.");
+ write();
+}
+assert(uptodate);
+EndTest();