summaryrefslogtreecommitdiff
path: root/Build
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2016-05-12 22:54:35 +0000
committerKarl Berry <karl@freefriends.org>2016-05-12 22:54:35 +0000
commitf0e23ed3daf4d57345cfa284164276b520302c03 (patch)
tree3e5b0729899d1e124eec7996df94fd9f7e688d05 /Build
parentbd459bc63bbacb77224c9d858759541096c095c8 (diff)
asy 2.38 sources
git-svn-id: svn://tug.org/texlive/trunk@41074 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build')
-rw-r--r--Build/source/utils/README2
-rw-r--r--Build/source/utils/asymptote/ChangeLog89
-rw-r--r--Build/source/utils/asymptote/Makefile.in4
-rw-r--r--Build/source/utils/asymptote/README5
-rw-r--r--Build/source/utils/asymptote/ReleaseNotes8
-rw-r--r--Build/source/utils/asymptote/asy-keywords.el2
-rw-r--r--Build/source/utils/asymptote/asy.list408
-rw-r--r--Build/source/utils/asymptote/asymptote.spec2
-rw-r--r--Build/source/utils/asymptote/base/solids.asy3
-rw-r--r--Build/source/utils/asymptote/beziertriangle.cc35
-rw-r--r--Build/source/utils/asymptote/builtin.cc1
-rw-r--r--Build/source/utils/asymptote/camp.l4
-rw-r--r--Build/source/utils/asymptote/camp.tab.cc1715
-rw-r--r--Build/source/utils/asymptote/camp.y5
-rw-r--r--Build/source/utils/asymptote/config.sub4
-rwxr-xr-xBuild/source/utils/asymptote/configure234
-rw-r--r--Build/source/utils/asymptote/configure.ac19
-rw-r--r--Build/source/utils/asymptote/doc/CAD.pdfbin66753 -> 67492 bytes
-rw-r--r--Build/source/utils/asymptote/doc/FAQ/asy-faq.info2
-rw-r--r--Build/source/utils/asymptote/doc/TeXShopAndAsymptote.pdfbin32164 -> 31451 bytes
-rw-r--r--Build/source/utils/asymptote/doc/asy-latex.pdfbin194740 -> 194740 bytes
-rw-r--r--Build/source/utils/asymptote/doc/asyRefCard.pdfbin54949 -> 53672 bytes
-rw-r--r--Build/source/utils/asymptote/doc/asymptote.pdfbin1288038 -> 1288922 bytes
-rw-r--r--Build/source/utils/asymptote/doc/asymptote.texi29
-rw-r--r--Build/source/utils/asymptote/doc/png/asymptote.info368
-rwxr-xr-xBuild/source/utils/asymptote/install-sh387
-rw-r--r--Build/source/utils/asymptote/lex.yy.cc776
-rw-r--r--Build/source/utils/asymptote/mathop.h10
-rw-r--r--Build/source/utils/asymptote/revision.cc2
-rw-r--r--Build/source/utils/asymptote/runmath.cc221
-rw-r--r--Build/source/utils/asymptote/runmath.in5
-rw-r--r--Build/source/utils/asymptote/settings.cc7
32 files changed, 2256 insertions, 2091 deletions
diff --git a/Build/source/utils/README b/Build/source/utils/README
index 134b21f3fec..665d9ce5fd9 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.37 - checked 14mar16
+asymptote 2.38 - checked 13may16
(this version for dev build testing only, not to be installed)
update to TL from CTAN, to include prebuilt doc.
see http://tug.org/texlive/build.html#asymptote
diff --git a/Build/source/utils/asymptote/ChangeLog b/Build/source/utils/asymptote/ChangeLog
index 8bc0ad37562..5ad283d654a 100644
--- a/Build/source/utils/asymptote/ChangeLog
+++ b/Build/source/utils/asymptote/ChangeLog
@@ -1,3 +1,92 @@
+commit 3f044f05ca7f3d30d3f61edcf1d991bd6ccc69dd
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu May 12 02:16:25 2016 -0600
+
+ Move bug tracking to github.
+
+commit b9ca1650f3086a265eb9d39649261680fe032ba5
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu May 12 02:05:12 2016 -0600
+
+ Require ncurses library only with --enable-readline.
+ Implement --disable-sigsegv configuration option.
+
+commit da2c3f8c7af68645c6cff8c04f555676413e47ba
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu May 12 01:08:40 2016 -0600
+
+ Minor optimization.
+
+commit 8a956632265c5b540b21249d8411216788812e30
+Author: John Bowman <bowman@ualberta.ca>
+Date: Wed May 11 08:55:31 2016 -0600
+
+ Use # operator for integer division.
+
+commit 11f06b200a9ca5382e2c15d251140e44902f0f04
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon May 9 13:55:55 2016 -0600
+
+ Update CXXFLAGS and LDFLAGS documentation.
+
+commit 563d53bf8eba994e903e460361f30d93f6a5da14
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun May 8 22:19:25 2016 -0600
+
+ Port Makefile.in to Bourne shell.
+
+commit 04b86da8e09ed0772d46520e43e4875878aff4f8
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat May 7 20:34:12 2016 -0600
+
+ Fix longitudinal splitting in revolution.
+
+commit 0d7435b299f721fbe4d788edc3f5334f8bddabb9
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri May 6 20:49:46 2016 -0600
+
+ Pass CC and CXX to gc configure.
+
+commit a40b6c087091bdc15ffe44d00c51ca15cb1d4877
+Merge: 656cf97 0f1f6d1
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri May 6 09:45:34 2016 -0600
+
+ Merge pull request #21 from mojca/posix-test
+
+ Makefile.in: replace 'test ! -e' => 'test ! -s'
+
+commit 0f1f6d1c73ebc6b494fc23d76a1f00966de9f5fb
+Author: Mojca Miklavec <mojca.miklavec.lists@gmail.com>
+Date: Fri May 6 16:49:41 2016 +0200
+
+ Makefile.in: replace 'test ! -e' => 'test ! -s'
+ for compatibility with older shell (on systems like Solaris)
+
+commit 656cf9764dc937aa12bd50fe8dc2e0354c7c5e64
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri Mar 18 16:42:22 2016 -0600
+
+ Minor optimization.
+
+commit ee9839887c7006a4e5138afe8b039669082c904a
+Author: Orest Shardt <shardtor@gmail.com>
+Date: Tue Mar 15 15:14:38 2016 -0400
+
+ correct parsing of control points
+
+commit 1032cd60aedd0dec0f376410e5fdf525eda65f39
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon Mar 14 17:11:21 2016 -0600
+
+ Update copyright and FSF address.
+
+commit 24628251a11faf6d4e4ed0034c716cc6b4289cb6
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon Mar 14 01:09:15 2016 -0600
+
+ Increment version to 2.38.
+
commit 0240be5ed61de2394cc5cc614a9c4b480f2f51d1
Author: John Bowman <bowman@ualberta.ca>
Date: Sun Mar 13 23:31:54 2016 -0600
diff --git a/Build/source/utils/asymptote/Makefile.in b/Build/source/utils/asymptote/Makefile.in
index de8d08125e7..864175958d6 100644
--- a/Build/source/utils/asymptote/Makefile.in
+++ b/Build/source/utils/asymptote/Makefile.in
@@ -94,7 +94,7 @@ latexdir = $(DESTDIR)@latexdir@
contextdir = $(DESTDIR)@contextdir@
INSTALL = @INSTALL@
REVISION = "const char *REVISION="
-last = $(shell cat revision.cc | sed -e 's/.*\"\(.*\)\";/\\1/')
+last = $(shell cat revision.cc | sed -e 's/.*\"\(.*\)\";/\1/')
usinggit = $(shell if test -d ".git"; then echo yes; fi)
ifeq ($(usinggit),yes)
revision = $(shell LC_ALL="C" git describe | sed -e 's/git//' \
@@ -160,7 +160,7 @@ $(GCLIB): $(GC).tar.gz
mv gc-7.2 gc-7.2d; \
fi
cd $(GC) && \
- ./configure $(GCOPTIONS); \
+ ./configure CC="$(CC)" CXX="$(CXX)" $(GCOPTIONS); \
$(MAKE) check
$(GCPPLIB): $(GCLIB)
diff --git a/Build/source/utils/asymptote/README b/Build/source/utils/asymptote/README
index 858e2f1ee06..0ec295744ae 100644
--- a/Build/source/utils/asymptote/README
+++ b/Build/source/utils/asymptote/README
@@ -1,5 +1,5 @@
ASYMPTOTE
- Copyright 2004-15 Andy Hammerlindl, John Bowman, and Tom Prince
+ Copyright 2004-16 Andy Hammerlindl, John Bowman, and Tom Prince
Asymptote is a powerful descriptive vector graphics language for technical
drawing, inspired by MetaPost but with an improved C++-like
@@ -37,8 +37,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+along with this program. If not, see <http://www.gnu.org/licenses/>.
========================================================================
diff --git a/Build/source/utils/asymptote/ReleaseNotes b/Build/source/utils/asymptote/ReleaseNotes
index 69427e64eec..518863053ad 100644
--- a/Build/source/utils/asymptote/ReleaseNotes
+++ b/Build/source/utils/asymptote/ReleaseNotes
@@ -1,3 +1,11 @@
+Release Notes for Version 2.38
+
+An integer division operator # was added. Control points in xasy are now
+correctly parsed. Longitudinal splitting in the revolution structure of
+the solids module was fixed. Portability fixes were implemented.
+The ncurses library is now only required with --enable-readline.
+A --disable-sigsegv configuration option was added.
+
Release Notes for Version 2.37
The xasy graphical user interface now runs under both Python 2.7 and Python 3.
diff --git a/Build/source/utils/asymptote/asy-keywords.el b/Build/source/utils/asymptote/asy-keywords.el
index 2b6e9e561d4..4d166f4cab8 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.37")
+(defvar asy-keywords-version "2.38")
(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 6df7c4735e3..5267a638b21 100644
--- a/Build/source/utils/asymptote/asy.list
+++ b/Build/source/utils/asymptote/asy.list
@@ -240,9 +240,9 @@ pair min(frame f);
pair min(explicit path p);
pair min(path[] p);
triple min(path3 p);
-pair min(picture pic, bool user=<default>);
real min(... real[] a);
real min(real m, scaling s, coord[] c);
+pair min(picture pic, bool user=<default>);
real min(real m, scaling s, coord[] c);
int min(... int[] a);
filltype RadialShade(pen penc, pen penr);
@@ -255,19 +255,19 @@ 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(pair[] a, pair key, bool less(pair, pair));
+int search(coord[] a, coord key, bool less(coord, coord));
int search(object[] a, object key, bool less(object, object));
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));
int search(int[] a, int key, bool less(int, int));
int search(bool3[] a, bool3 key, bool less(bool3, bool3));
-int search(picture[] a, picture key, bool less(picture, picture));
int search(marker[] a, marker key, bool less(marker, marker));
int search(string[] a, string key, bool less(string, string));
int search(path[] a, path key, bool less(path, path));
int search(pen[] a, pen key, bool less(pen, pen));
int search(bool[] a, bool key, bool less(bool, bool));
int search(triple[] a, triple key, bool less(triple, triple));
+int search(picture[] a, picture key, bool less(picture, picture));
filltype RadialShadeDraw(real xmargin=<default>, real ymargin=<default>, pen penc, pen penr, pen drawpen=<default>);
real sin(real x);
real[] sin(real[] a);
@@ -342,11 +342,11 @@ pair max(frame f);
pair max(explicit path p);
pair max(path[] p);
triple max(path3 p);
-real max(real M, scaling s, coord[] c);
+pair max(picture pic, bool user=<default>);
real max(real M, scaling s, coord[] c);
int max(... int[] a);
-pair max(picture pic, bool user=<default>);
real max(... real[] a);
+real max(real M, scaling s, coord[] c);
Label Label(Label L, pair position, align align=<default>, pen p=<default>, transform embed(transform)=<default>, filltype filltype=<default>);
Label Label(string s, string size=<default>, explicit position position, align align=<default>, pen p=<default>, transform embed(transform)=<default>, filltype filltype=<default>);
Label Label(Label L, explicit position position, align align=<default>, pen p=<default>, transform embed(transform)=<default>, filltype filltype=<default>);
@@ -521,7 +521,7 @@ bool[] copy(bool[] a, int depth=<default>);
real[][] copy(real[][] a, int depth=<default>);
pen[] copy(pen[] a, int depth=<default>);
coord[] copy(coord[] a, int depth=<default>);
-coord[] copy(coord[] a, int depth=<default>);
+picture[] copy(picture[] a, int depth=<default>);
marker[] copy(marker[] a, int depth=<default>);
Label[] copy(Label[] a, int depth=<default>);
pen[][] copy(pen[][] a, int depth=<default>);
@@ -533,8 +533,8 @@ string[][] copy(string[][] a, int depth=<default>);
frame[] copy(frame[] a, int depth=<default>);
pair[] copy(pair[] a, int depth=<default>);
bool3[] copy(bool3[] a, int depth=<default>);
+coord[] copy(coord[] 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);
@@ -569,13 +569,12 @@ pen palered;
real[] map(real f(pair), pair[] a);
int[] map(int f(real), real[] a);
bool3[] map(bool3 f(bool3), bool3[] a);
-picture[] map(picture f(picture), picture[] a);
frame[] map(frame f(frame), frame[] a);
-coord[] map(coord f(coord), coord[] a);
Label[] map(Label f(Label), Label[] a);
pen[][] map(pen[] f(pen[]), pen[][] a);
triple[] map(triple f(triple), triple[] a);
pen[] map(pen f(pen), pen[] a);
+coord[] map(coord f(coord), coord[] a);
object[] map(object f(object), object[] a);
pair[] map(pair f(pair), pair[] a);
coord[] map(coord f(coord), coord[] a);
@@ -584,6 +583,7 @@ Legend[] map(Legend f(Legend), Legend[] a);
void()()[] map(void f()()(void()()), void()()[] a);
pair[][] map(pair[] f(pair[]), pair[][] a);
real[] map(real f(real), real[] a);
+picture[] map(picture f(picture), picture[] a);
int[] map(int f(int), int[] a);
string[][] map(string[] f(string[]), string[][] a);
bool[] map(bool f(bool), bool[] a);
@@ -605,7 +605,7 @@ pair minratio(path3 g);
int[] sequence(int n);
pen[][] sequence(pen[] f(int), int n);
coord[] sequence(coord f(int), int n);
-coord[] sequence(coord f(int), int n);
+picture[] sequence(picture f(int), int n);
marker[] sequence(marker f(int), int n);
Label[] sequence(Label f(int), int n);
int[] sequence(int f(int), int n);
@@ -618,8 +618,8 @@ bool[] sequence(bool f(int), int n);
string[] sequence(string f(int), int n);
pair[][] sequence(pair[] f(int), int n);
bool3[] sequence(bool3 f(int), int n);
+coord[] sequence(coord 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);
@@ -705,6 +705,7 @@ void add(picture pic=<default>, void d(frame f, transform t), bool exact=<defaul
void add(picture pic=<default>, void d(frame f, real[][] t, picture pic, projection P), bool exact=<default>);
void add(picture pic=<default>, void d(picture, real[][]), bool exact=<default>);
void add(picture dest, picture src, bool group=<default>, filltype filltype=<default>, bool above=<default>);
+void add(picture pic=<default>, Label L);
void add(picture dest, picture src, pair position, bool group=<default>, filltype filltype=<default>, bool above=<default>);
void add(picture dest=<default>, object F, pair position=<default>, bool group=<default>, filltype filltype=<default>, bool above=<default>);
void add(frame dest, frame src, filltype filltype, bool above=<default>);
@@ -712,7 +713,6 @@ void add(frame dest, frame src, bool group, filltype filltype=<default>, bool ab
void add(frame dest, frame src, pair position, bool group=<default>, filltype filltype=<default>, bool above=<default>);
void add(picture dest=<default>, frame src, pair position=<default>, bool group=<default>, filltype filltype=<default>, bool above=<default>);
void add(picture pic=<default>, void d(picture, transform), bool exact=<default>);
-void add(picture pic=<default>, Label L);
void add(frame f, transform t=<default>, Label L);
void add(picture src, pair position, bool group=<default>, filltype filltype=<default>, bool above=<default>);
plain plain;
@@ -743,8 +743,8 @@ bool[] array(int n, bool value, int depth=<default>);
string[] array(int n, string value, int depth=<default>);
pair[][] array(int n, pair[] value, int depth=<default>);
bool3[] array(int n, bool3 value, int depth=<default>);
+coord[] array(int n, coord 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>);
@@ -753,7 +753,7 @@ path[] array(int n, path value, int depth=<default>);
frame[] array(int n, frame value, int depth=<default>);
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>);
+picture[] array(int n, picture value, int depth=<default>);
marker[] array(int n, marker value, int depth=<default>);
Label[] array(int n, Label value, int depth=<default>);
int[] array(int n, int value, int depth=<default>);
@@ -941,19 +941,19 @@ pen dotted;
string blend(pen p);
arrowhead HookHead;
arrowhead HookHead(real dir=<default>, real barb=<default>);
+picture[] concat(... picture[][]);
real[] concat(... real[][]);
Legend[] concat(... Legend[][]);
pair[] concat(... pair[][]);
coord[] concat(... coord[][]);
pen[] concat(... pen[][]);
+coord[] concat(... coord[][]);
object[] concat(... object[][]);
path[] concat(... path[][]);
-coord[] concat(... coord[][]);
Label[] concat(... Label[][]);
int[] concat(... int[][]);
void()()[] concat(... void()()[][]);
bool3[] concat(... bool3[][]);
-picture[] concat(... picture[][]);
string[] concat(... string[][]);
marker[] concat(... marker[][]);
triple[] concat(... triple[][]);
@@ -967,13 +967,12 @@ real infinity;
bool alias(pair[][] a, pair[][] b);
bool alias(guide[] a, guide[] b);
bool alias(marginT a, marginT b);
-bool alias(coord[] a, coord[] b);
bool alias(light a, light b);
bool alias(side a, side b);
bool alias(marker a, marker b);
bool alias(Label[] a, Label[] b);
bool alias(pair[] a, pair[] b);
-bool alias(scaling a, scaling b);
+bool alias(coord a, coord b);
bool alias(bounds a, bounds b);
bool alias(autoscaleT a, autoscaleT b);
bool alias(pairOrTriple a, pairOrTriple b);
@@ -984,32 +983,32 @@ bool alias(string[][] a, string[][] b);
bool alias(slice a, slice b);
bool alias(coord[] a, coord[] b);
bool alias(coords2 a, coords2 b);
-bool alias(transformation a, transformation b);
+bool alias(picture a, picture b);
bool alias(framedTransformStack a, framedTransformStack b);
bool alias(real[][] a, real[][] b);
bool alias(bool3 a, bool3 b);
bool alias(bool3[] a, bool3[] b);
bool alias(coords3 a, coords3 b);
-bool alias(picture a, picture b);
bool alias(position a, position b);
-bool alias(picture[] a, picture[] b);
bool alias(arrowhead a, arrowhead b);
bool alias(string[] a, string[] b);
bool alias(frame[] a, frame[] b);
-bool alias(coords2 a, coords2 b);
+bool alias(scaling a, scaling b);
bool alias(coord a, coord b);
bool alias(ScaleT a, ScaleT b);
+bool alias(picture[] a, picture[] b);
bool alias(bool[] a, bool[] b);
bool alias(void()()[] a, void()()[] b);
bool alias(pen[][] a, pen[][] b);
bool alias(filltype a, filltype b);
+bool alias(coord[] a, coord[] b);
bool alias(freezableBounds a, freezableBounds b);
bool alias(projection a, projection b);
bool alias(align a, align b);
bool alias(object[] a, object[] b);
bool alias(path[] a, path[] b);
bool alias(triple[] a, triple[] b);
-bool alias(coord a, coord b);
+bool alias(transformation a, transformation b);
bool alias(scaleT a, scaleT b);
bool alias(Label a, Label b);
bool alias(marker[] a, marker[] b);
@@ -1017,6 +1016,7 @@ bool alias(processtime a, processtime b);
bool alias(real[] a, real[] b);
bool alias(pen[] a, pen[] b);
bool alias(hsv a, hsv b);
+bool alias(coords2 a, coords2 b);
bool alias(scaling a, scaling b);
bool alias(Legend a, Legend b);
bool alias(indexedTransform a, indexedTransform b);
@@ -1026,8 +1026,8 @@ int getint(string name=<default>, int default=<default>, string prompt=<default>
bool IgnoreAspect;
void postscript(frame f, string s);
void postscript(frame f, string s, pair min, pair max);
-void postscript(picture pic=<default>, string s);
void postscript(picture pic=<default>, string s, pair min, pair max);
+void postscript(picture pic=<default>, string s);
transform slant(real s);
void breakpoint(code s=<default>);
void breakpoints();
@@ -1048,6 +1048,7 @@ real[][] sort(real[][] a);
string[] sort(string[] a);
string[][] sort(string[][] a);
path[] sort(path[] a, bool less(path, path));
+picture[] sort(picture[] a, bool less(picture, picture));
pair[] sort(pair[] a, bool less(pair, pair));
void()()[] sort(void()()[] a, bool less(void()(), void()()));
real[] sort(real[] a, bool less(real, real));
@@ -1056,17 +1057,16 @@ Legend[] sort(Legend[] a, bool less(Legend, Legend));
coord[] sort(coord[] a, bool less(coord, coord));
pen[] sort(pen[] a, bool less(pen, pen));
pen[][] sort(pen[][] a, bool less(pen[], pen[]));
+coord[] sort(coord[] a, bool less(coord, coord));
object[] sort(object[] a, bool less(object, object));
guide[] sort(guide[] a, bool less(guide, guide));
real[][] sort(real[][] a, bool less(real[], real[]));
triple[] sort(triple[] a, bool less(triple, triple));
-coord[] sort(coord[] a, bool less(coord, coord));
Label[] sort(Label[] a, bool less(Label, Label));
string[] sort(string[] a, bool less(string, string));
int[] sort(int[] a, bool less(int, int));
string[][] sort(string[][] a, bool less(string[], string[]));
bool3[] sort(bool3[] a, bool less(bool3, bool3));
-picture[] sort(picture[] a, bool less(picture, picture));
pair[][] sort(pair[][] a, bool less(pair[], pair[]));
marker[] sort(marker[] a, bool less(marker, marker));
frame[] sort(frame[] a, bool less(frame, frame));
@@ -1356,15 +1356,15 @@ triple operator *(real[][] t, triple v);
triple operator *(real x, triple v);
triple operator *(triple v, real x);
path3 operator *(real[][] t, path3 g);
+picture operator *(transform t, picture orig);
side operator *(real x, side s);
Label operator *(real[][] t, Label L);
-picture operator *(real[][] t, picture orig);
path[] operator *(transform t, explicit path[] p);
bounds operator *(transform t, bounds b);
object operator *(transform t, explicit object F);
pair[] operator *(transform t, pair[] z);
Label operator *(transform t, Label L);
-picture operator *(transform t, picture orig);
+picture operator *(real[][] t, picture orig);
bool operator init();
int operator init();
real operator init();
@@ -1387,28 +1387,28 @@ projection operator init();
align operator init();
slice operator init();
coords2 operator init();
-transformation operator init();
+picture operator init();
framedTransformStack operator init();
hsv operator init();
+coords2 operator init();
scaling operator init();
Legend operator init();
indexedTransform operator init();
-coords2 operator init();
+scaling operator init();
coord operator init();
ScaleT operator init();
-scaling operator init();
+coord operator init();
bounds operator init();
autoscaleT operator init();
pairOrTriple operator init();
object operator init();
cputime operator init();
-coord operator init();
+transformation operator init();
scaleT operator init();
Label operator init();
processtime operator init();
bool3 operator init();
coords3 operator init();
-picture operator init();
position operator init();
arrowhead operator init();
real operator cast(int);
@@ -1515,6 +1515,10 @@ triple operator /(triple v, real x);
path[] texpath(string s, pen p, bool tex=<default>, bool bbox=<default>);
path[] texpath(Label L, bool tex=<default>, bool bbox=<default>);
bool uptodate();
+int operator #(int a, int b);
+int[] operator #(int a, int[] b);
+int[] operator #(int[] a, int b);
+int[] operator #(int[] a, int[] b);
int operator %(int a, int b);
int[] operator %(int a, int[] b);
int[] operator %(int[] a, int b);
@@ -1580,21 +1584,21 @@ bool operator ==(path a, path b);
bool operator ==(path3 a, path3 b);
bool operator ==(bool3 a, bool3 b);
bool operator ==(coords3 a, coords3 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 ==(scaling a, scaling b);
bool operator ==(coord a, coord b);
bool operator ==(ScaleT a, ScaleT b);
bool operator ==(filltype a, filltype b);
bool operator ==(freezableBounds a, freezableBounds b);
bool operator ==(projection a, projection b);
bool operator ==(align a, align b);
-bool operator ==(coord a, coord b);
+bool operator ==(transformation a, transformation b);
bool operator ==(scaleT a, scaleT b);
bool operator ==(Label a, Label b);
bool operator ==(processtime a, processtime b);
bool operator ==(hsv a, hsv b);
+bool operator ==(coords2 a, coords2 b);
bool operator ==(scaling a, scaling b);
bool operator ==(Legend a, Legend b);
bool operator ==(indexedTransform a, indexedTransform b);
@@ -1603,7 +1607,7 @@ bool operator ==(marginT a, marginT b);
bool operator ==(light a, light b);
bool operator ==(side a, side b);
bool operator ==(marker a, marker b);
-bool operator ==(scaling a, scaling b);
+bool operator ==(coord a, coord b);
bool operator ==(bounds a, bounds b);
bool operator ==(autoscaleT a, autoscaleT b);
bool operator ==(pairOrTriple a, pairOrTriple b);
@@ -1612,7 +1616,7 @@ bool operator ==(cputime a, cputime b);
bool operator ==(bool a, bool3 b);
bool operator ==(slice a, slice b);
bool operator ==(coords2 a, coords2 b);
-bool operator ==(transformation a, transformation b);
+bool operator ==(picture a, picture b);
bool operator ==(framedTransformStack a, framedTransformStack b);
bool operator !=(bool a, bool b);
bool[] operator !=(bool a, bool[] b);
@@ -1652,21 +1656,21 @@ bool operator !=(path a, path b);
bool operator !=(path3 a, path3 b);
bool operator !=(bool3 a, bool3 b);
bool operator !=(coords3 a, coords3 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 !=(scaling a, scaling b);
bool operator !=(coord a, coord b);
bool operator !=(ScaleT a, ScaleT b);
bool operator !=(filltype a, filltype b);
bool operator !=(freezableBounds a, freezableBounds b);
bool operator !=(projection a, projection b);
bool operator !=(align a, align b);
-bool operator !=(coord a, coord b);
+bool operator !=(transformation a, transformation b);
bool operator !=(scaleT a, scaleT b);
bool operator !=(Label a, Label b);
bool operator !=(processtime a, processtime b);
bool operator !=(hsv a, hsv b);
+bool operator !=(coords2 a, coords2 b);
bool operator !=(scaling a, scaling b);
bool operator !=(Legend a, Legend b);
bool operator !=(indexedTransform a, indexedTransform b);
@@ -1675,7 +1679,7 @@ bool operator !=(marginT a, marginT b);
bool operator !=(light a, light b);
bool operator !=(side a, side b);
bool operator !=(marker a, marker b);
-bool operator !=(scaling a, scaling b);
+bool operator !=(coord a, coord b);
bool operator !=(bounds a, bounds b);
bool operator !=(autoscaleT a, autoscaleT b);
bool operator !=(pairOrTriple a, pairOrTriple b);
@@ -1684,7 +1688,7 @@ bool operator !=(cputime a, cputime b);
bool operator !=(bool a, bool3 b);
bool operator !=(slice a, slice b);
bool operator !=(coords2 a, coords2 b);
-bool operator !=(transformation a, transformation b);
+bool operator !=(picture a, picture b);
bool operator !=(framedTransformStack a, framedTransformStack b);
bool operator <(int a, int b);
bool[] operator <(int a, int[] b);
@@ -1712,6 +1716,7 @@ bool[] operator <=(string[] a, string b);
bool[] operator <=(string[] a, string[] b);
bool operator <=(coord a, coord b);
bool operator <=(coord a, coord b);
+void srand(int seed);
bool operator >(int a, int b);
bool[] operator >(int a, int[] b);
bool[] operator >(int[] a, int b);
@@ -1724,7 +1729,6 @@ bool operator >(string a, string b);
bool[] operator >(string a, string[] b);
bool[] operator >(string[] a, string b);
bool[] operator >(string[] a, string[] b);
-void srand(int seed);
bool operator >=(int a, int b);
bool[] operator >=(int a, int[] b);
bool[] operator >=(int[] a, int b);
@@ -1741,29 +1745,31 @@ bool operator >=(coord a, coord b);
bool operator >=(coord a, coord b);
filltype UnFill(real xmargin=<default>, real ymargin=<default>);
filltype UnFill;
+real degrees(pair z, bool warn=<default>);
+real degrees(real radians);
bool[] operator !(bool[] a);
bool operator !(bool b);
path[] operator ^^(path p, path q);
path[] operator ^^(explicit path[] p, path q);
path[] operator ^^(path p, explicit path[] q);
path[] operator ^^(explicit path[] p, explicit path[] q);
-real degrees(pair z, bool warn=<default>);
-real degrees(real radians);
guide operator ::(... guide[]);
pen Helvetica(string series=<default>, string shape=<default>);
transform reflect(pair a, pair b);
bool Bars(picture, path, pen, marginT(path, pen));
bool Bars(picture, path, pen, marginT(path, pen))(real size=<default>);
-guide operator ..(... guide[]);
-guide operator ..(... guide[])(tensionSpecifier t);
void none(file file);
int factorial(int n);
real log(real x);
real[] log(real[] a);
pair log(explicit pair z);
-guide operator --(... guide[]);
+guide operator ..(... guide[]);
+guide operator ..(... guide[])(tensionSpecifier t);
path polygon(int n);
+guide operator --(... guide[]);
guide operator ---(... guide[]);
+pen NewCenturySchoolBook(string series=<default>, string shape=<default>);
+void()()[] saveFunctions;
bool operator &(bool a, bool b);
bool[] operator &(bool a, bool[] b);
bool[] operator &(bool[] a, bool b);
@@ -1771,20 +1777,18 @@ bool[] operator &(bool[] a, bool[] b);
path operator &(path p, path q);
path3 operator &(path3 p, path3 q);
path operator &(path p, cycleToken tok);
-pen NewCenturySchoolBook(string series=<default>, string shape=<default>);
-void()()[] saveFunctions;
bool operator |(bool a, bool b);
bool[] operator |(bool a, bool[] b);
bool[] operator |(bool[] a, bool b);
bool[] operator |(bool[] a, bool[] b);
+string texify(string s);
guide operator controls(pair zout, pair zin);
guide operator controls(pair z);
-string texify(string s);
+bool empty(frame f);
tensionSpecifier operator tension(real tout, real tin, bool atleast);
tensionSpecifier operator tension(real t, bool atLeast);
-bool empty(frame f);
-curlSpecifier operator curl(real gamma, int p);
void end(picture pic=<default>);
+curlSpecifier operator curl(real gamma, int p);
guide operator spec(pair z, int p);
string substr(string s, int pos, int n=<default>);
pen paleyellow;
@@ -1887,9 +1891,9 @@ pair rectify(pair dir);
arrowhead TeXHead;
path[] margin(path[] g, real xmargin, real ymargin);
pair relative(picture pic=<default>, pair z);
-real expansionfactor;
real erfc(real x);
int windingnumber(path[] p, pair z);
+real expansionfactor;
void addArrow(picture pic, arrowhead arrowhead, path g, pen p, real size, real angle, filltype filltype, real position);
void exitfunction();
pen gray(pen p);
@@ -1941,8 +1945,8 @@ real braceinnerangle;
real braceouterangle;
void tex(frame f, string s);
void tex(frame f, string s, pair min, pair max);
-void tex(picture pic=<default>, string s);
void tex(picture pic=<default>, string s, pair min, pair max);
+void tex(picture pic=<default>, string s);
real bracedefaultratio;
bool prconly(string format=<default>);
pen Black;
@@ -1963,7 +1967,6 @@ 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);
@@ -2010,6 +2013,16 @@ 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>);
@@ -2029,15 +2042,6 @@ 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);
@@ -2443,6 +2447,9 @@ 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>);
@@ -2658,9 +2665,6 @@ 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);
@@ -2808,6 +2812,118 @@ 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);
@@ -2835,9 +2951,6 @@ 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>);
@@ -2852,7 +2965,10 @@ 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);
guide Straight(... guide[]);
+tickvalues OmitTick(tickvalues)(... real[] x);
int Min;
string trailingzero;
void label(picture pic, Label L, pair z, real x, align align, string format, pen p);
@@ -2862,11 +2978,11 @@ 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 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>);
@@ -2875,11 +2991,7 @@ void ytick(picture pic=<default>, explicit pair z, pair dir=<default>, real size
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 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>);
picture secondaryX(picture primary=<default>, void f(picture));
-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 secondaryY(picture primary=<default>, void f(picture));
Label Break;
tickvalues Break(tickvalues)(real, real);
@@ -2887,6 +2999,10 @@ 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);
@@ -2898,6 +3014,7 @@ 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>);
@@ -2930,7 +3047,6 @@ 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;
@@ -2967,118 +3083,6 @@ 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>);
-bool uperiodic(triple[][] a);
-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>);
-bool vperiodic(triple[][] a);
-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>);
-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;
@@ -3117,16 +3121,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);
-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>);
+position middle;
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>);
@@ -3163,16 +3167,16 @@ horner diffdiv(real[] x, real[] y);
horner hdiffdiv(real[] x, real[] y, real[] dy);
horner operator init();
real fhorner(real)(horner sh);
-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);
+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;
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);
@@ -3259,14 +3263,14 @@ 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>);
rootfinder_settings operator init();
-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 d823975c187..87aec0e4ba4 100644
--- a/Build/source/utils/asymptote/asymptote.spec
+++ b/Build/source/utils/asymptote/asymptote.spec
@@ -1,7 +1,7 @@
%{!?_texmf: %global _texmf %(eval "echo `kpsewhich -expand-var '$TEXMFLOCAL'`")}
Name: asymptote
-Version: 2.37
+Version: 2.38
Release: 1%{?dist}
Summary: Descriptive vector graphics language
diff --git a/Build/source/utils/asymptote/base/solids.asy b/Build/source/utils/asymptote/base/solids.asy
index 09bccd32aa9..90f01dc935f 100644
--- a/Build/source/utils/asymptote/base/solids.asy
+++ b/Build/source/utils/asymptote/base/solids.asy
@@ -300,7 +300,8 @@ struct revolution {
path3 p1=subpath(p,0,t);
path3 p2=subpath(p,t,length(p));
if(length(p1) > 0 &&
- abs(midpoint(p1)-camera) <= abs(midpoint(p2)-camera)) {
+ (length(p2) == 0 ||
+ abs(midpoint(p1)-camera) <= abs(midpoint(p2)-camera))) {
s.longitudinal.front.push(p1);
s.longitudinal.back.push(p2);
} else {
diff --git a/Build/source/utils/asymptote/beziertriangle.cc b/Build/source/utils/asymptote/beziertriangle.cc
index d68bed31382..65bd68d3fbc 100644
--- a/Build/source/utils/asymptote/beziertriangle.cc
+++ b/Build/source/utils/asymptote/beziertriangle.cc
@@ -1,3 +1,4 @@
+
/*****
* drawbeziertriangle.cc
* Authors: Jesse Frohlich and John C. Bowman
@@ -40,7 +41,7 @@ inline triple displacement2(const triple& z, const triple& u, const triple& n)
return n != triple(0,0,0) ? dot(Z,n)*n : Z;
}
-triple displacement(const triple *controls)
+inline triple displacement(const triple *controls)
{
triple z0=controls[0];
triple z1=controls[6];
@@ -184,13 +185,9 @@ struct Render
void mesh(const triple *p, const GLuint *I)
{
// Draw the frame of the control points of a cubic Bezier mesh
- GLuint I0=I[0];
- GLuint I1=I[1];
- GLuint I2=I[2];
-
- indices.push_back(I0);
- indices.push_back(I1);
- indices.push_back(I2);
+ indices.push_back(I[0]);
+ indices.push_back(I[1]);
+ indices.push_back(I[2]);
}
// Pi is the full precision value indexed by Ii.
@@ -378,32 +375,34 @@ struct Render
void render(const triple *p, double res, GLfloat *c0, int n) {
this->res=res;
- triple po=p[0];
+ triple p0=p[0];
epsilon=0;
for(int i=1; i < 10; ++i)
- epsilon=max(epsilon,abs2(p[i]-po));
+ epsilon=max(epsilon,abs2(p[i]-p0));
epsilon *= Fuzz2;
GLuint i0,i1,i2;
+ triple p6=p[6];
+ triple p9=p[9];
if(c0) {
GLfloat *c1=c0+4;
GLfloat *c2=c0+8;
- i0=vertex(p[0],normal(p[9],p[5],p[2],p[0],p[1],p[3],p[6]),c0);
- i1=vertex(p[6],normal(p[0],p[1],p[3],p[6],p[7],p[8],p[9]),c1);
- i2=vertex(p[9],normal(p[6],p[7],p[8],p[9],p[5],p[2],p[0]),c2);
+ i0=vertex(p0,normal(p9,p[5],p[2],p0,p[1],p[3],p6),c0);
+ i1=vertex(p6,normal(p0,p[1],p[3],p6,p[7],p[8],p9),c1);
+ i2=vertex(p9,normal(p6,p[7],p[8],p9,p[5],p[2],p0),c2);
if(n > 0)
- render(p,n,i0,i1,i2,p[0],p[6],p[9],false,false,false,c0,c1,c2);
+ render(p,n,i0,i1,i2,p0,p6,p9,false,false,false,c0,c1,c2);
} else {
- i0=vertex(p[0],normal(p[9],p[5],p[2],p[0],p[1],p[3],p[6]));
- i1=vertex(p[6],normal(p[0],p[1],p[3],p[6],p[7],p[8],p[9]));
- i2=vertex(p[9],normal(p[6],p[7],p[8],p[9],p[5],p[2],p[0]));
+ i0=vertex(p0,normal(p9,p[5],p[2],p0,p[1],p[3],p6));
+ i1=vertex(p6,normal(p0,p[1],p[3],p6,p[7],p[8],p9));
+ i2=vertex(p9,normal(p6,p[7],p[8],p9,p[5],p[2],p0));
if(n > 0)
- render(p,n,i0,i1,i2,p[0],p[6],p[9],false,false,false);
+ render(p,n,i0,i1,i2,p0,p6,p9,false,false,false);
}
if(n == 0) {
diff --git a/Build/source/utils/asymptote/builtin.cc b/Build/source/utils/asymptote/builtin.cc
index a9d5192361f..dd5f82c8f60 100644
--- a/Build/source/utils/asymptote/builtin.cc
+++ b/Build/source/utils/asymptote/builtin.cc
@@ -740,6 +740,7 @@ void addOperators(venv &ve)
stringArray3());
addOps<Int,mod>(ve,primInt(),SYM_MOD,IntArray());
+ addOps<Int,quotient>(ve,primInt(),SYM_QUOTIENT,IntArray());
addOps<double,mod>(ve,primReal(),SYM_MOD,realArray());
addRestFunc(ve,diagonal<Int>,IntArray2(),SYM(diagonal),IntArray());
diff --git a/Build/source/utils/asymptote/camp.l b/Build/source/utils/asymptote/camp.l
index 1aed3fdae5c..72681d30ae5 100644
--- a/Build/source/utils/asymptote/camp.l
+++ b/Build/source/utils/asymptote/camp.l
@@ -312,6 +312,7 @@ EXTRAOPS <<|>>|$|$$|@|@@|~
"-" {DEFSYMBOL(SYM_MINUS); return '-'; }
"*" {DEFSYMBOL(SYM_TIMES); return '*'; }
"/" {DEFSYMBOL(SYM_DIVIDE); return '/'; }
+"#" {DEFSYMBOL(SYM_QUOTIENT); return '#'; }
"%" {DEFSYMBOL(SYM_MOD); return '%'; }
"^" {DEFSYMBOL(SYM_CARET); return '^'; }
"**" {savesymbol(SYM_CARET); return '^'; }
@@ -340,6 +341,7 @@ EXTRAOPS <<|>>|$|$$|@|@@|~
"-=" {savesymbol(SYM_MINUS); return SELFOP; }
"*=" {savesymbol(SYM_TIMES); return SELFOP; }
"/=" {savesymbol(SYM_DIVIDE); return SELFOP; }
+"#=" {savesymbol(SYM_QUOTIENT); return SELFOP; }
"%=" {savesymbol(SYM_MOD); return SELFOP; }
"^=" {savesymbol(SYM_CARET); return SELFOP; }
@@ -413,7 +415,7 @@ operator {adjust(); BEGIN opname; }
BEGIN INITIAL;
return ID;
}
-[-+*/%^!<>]|==|!=|<=|>=|&|\||\^\^|\.\.|::|--|---|\+\+|{EXTRAOPS} {
+[-+*/#%^!<>]|==|!=|<=|>=|&|\||\^\^|\.\.|::|--|---|\+\+|{EXTRAOPS} {
makeopsymbol();
BEGIN INITIAL;
return ID;}
diff --git a/Build/source/utils/asymptote/camp.tab.cc b/Build/source/utils/asymptote/camp.tab.cc
index 80c7b0c07df..de1e5fbe165 100644
--- a/Build/source/utils/asymptote/camp.tab.cc
+++ b/Build/source/utils/asymptote/camp.tab.cc
@@ -525,16 +525,16 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 3
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 1860
+#define YYLAST 1979
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 75
+#define YYNTOKENS 76
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 50
/* YYNRULES -- Number of rules. */
-#define YYNRULES 199
+#define YYNRULES 200
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 374
+#define YYNSTATES 376
/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
by yylex, with out-of-bounds checking. */
@@ -551,16 +551,16 @@ static const yytype_uint8 yytranslate[] =
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 29, 2, 2,
- 41, 42, 27, 25, 44, 26, 43, 28, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 35, 47,
- 2, 2, 2, 34, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 30, 2, 29, 2, 2,
+ 42, 43, 27, 25, 45, 26, 44, 28, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 36, 48,
+ 2, 2, 2, 35, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 45, 2, 46, 30, 2, 2, 2, 2, 2,
+ 2, 46, 2, 47, 31, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 39, 2, 40, 2, 2, 2, 2,
+ 2, 2, 2, 40, 2, 41, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -576,10 +576,10 @@ static const yytype_uint8 yytranslate[] =
2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
- 31, 32, 33, 36, 37, 38, 48, 49, 50, 51,
- 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
- 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
- 72, 73, 74
+ 32, 33, 34, 37, 38, 39, 49, 50, 51, 52,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
+ 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
+ 73, 74, 75
};
#if YYDEBUG
@@ -599,13 +599,14 @@ static const yytype_uint16 yyrline[] =
440, 441, 445, 446, 448, 450, 456, 457, 461, 462,
463, 464, 466, 467, 469, 471, 473, 475, 476, 477,
478, 479, 480, 481, 482, 483, 484, 485, 486, 487,
- 488, 489, 490, 491, 492, 493, 494, 495, 497, 499,
- 501, 503, 505, 507, 512, 514, 519, 521, 522, 523,
- 525, 531, 533, 536, 538, 539, 546, 547, 549, 552,
- 555, 561, 562, 563, 566, 572, 573, 575, 577, 578,
- 582, 584, 587, 590, 596, 597, 602, 603, 604, 605,
- 607, 609, 611, 613, 615, 617, 618, 619, 620, 624,
- 628, 632, 633, 634, 638, 639, 643, 644, 648, 649
+ 488, 489, 490, 491, 492, 493, 494, 495, 496, 498,
+ 500, 502, 504, 506, 508, 513, 515, 520, 522, 523,
+ 524, 526, 532, 534, 537, 539, 540, 547, 548, 550,
+ 553, 556, 562, 563, 564, 567, 573, 574, 576, 578,
+ 579, 583, 585, 588, 591, 597, 598, 603, 604, 605,
+ 606, 608, 610, 612, 614, 616, 618, 619, 620, 621,
+ 625, 629, 633, 634, 635, 639, 640, 644, 645, 649,
+ 650
};
#endif
@@ -617,13 +618,13 @@ static const char *const yytname[] =
"$end", "error", "$undefined", "ID", "SELFOP", "DOTS", "COLONS",
"DASHES", "INCR", "LONGDASH", "CONTROLS", "TENSION", "ATLEAST", "CURL",
"COR", "CAND", "BAR", "AMPERSAND", "EQ", "NEQ", "LT", "LE", "GT", "GE",
- "CARETS", "'+'", "'-'", "'*'", "'/'", "'%'", "'^'", "OPERATOR", "LOOSE",
- "ASSIGN", "'?'", "':'", "DIRTAG", "JOIN_PREC", "AND", "'{'", "'}'",
- "'('", "')'", "'.'", "','", "'['", "']'", "';'", "ELLIPSIS", "ACCESS",
- "UNRAVEL", "IMPORT", "INCLUDE", "FROM", "QUOTE", "STRUCT", "TYPEDEF",
- "NEW", "IF", "ELSE", "WHILE", "DO", "FOR", "BREAK", "CONTINUE",
- "RETURN_", "THIS", "EXPLICIT", "GARBAGE", "LIT", "STRING", "PERM",
- "MODIFIER", "UNARY", "EXP_IN_PARENS_RULE", "$accept", "file",
+ "CARETS", "'+'", "'-'", "'*'", "'/'", "'%'", "'#'", "'^'", "OPERATOR",
+ "LOOSE", "ASSIGN", "'?'", "':'", "DIRTAG", "JOIN_PREC", "AND", "'{'",
+ "'}'", "'('", "')'", "'.'", "','", "'['", "']'", "';'", "ELLIPSIS",
+ "ACCESS", "UNRAVEL", "IMPORT", "INCLUDE", "FROM", "QUOTE", "STRUCT",
+ "TYPEDEF", "NEW", "IF", "ELSE", "WHILE", "DO", "FOR", "BREAK",
+ "CONTINUE", "RETURN_", "THIS", "EXPLICIT", "GARBAGE", "LIT", "STRING",
+ "PERM", "MODIFIER", "UNARY", "EXP_IN_PARENS_RULE", "$accept", "file",
"fileblock", "bareblock", "name", "runnable", "modifiers", "dec",
"idpair", "idpairlist", "strid", "stridpair", "stridpairlist", "vardec",
"barevardec", "type", "celltype", "dims", "dimexps", "decidlist",
@@ -643,18 +644,18 @@ static const yytype_uint16 yytoknum[] =
0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
275, 276, 277, 278, 279, 43, 45, 42, 47, 37,
- 94, 280, 281, 282, 63, 58, 283, 284, 285, 123,
- 125, 40, 41, 46, 44, 91, 93, 59, 286, 287,
- 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
- 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
- 308, 309, 310, 311, 312
+ 35, 94, 280, 281, 282, 63, 58, 283, 284, 285,
+ 123, 125, 40, 41, 46, 44, 91, 93, 59, 286,
+ 287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
+ 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
+ 307, 308, 309, 310, 311, 312
};
# endif
-#define YYPACT_NINF -282
+#define YYPACT_NINF -285
#define yypact_value_is_default(Yystate) \
- (!!((Yystate) == (-282)))
+ (!!((Yystate) == (-285)))
#define YYTABLE_NINF -45
@@ -665,44 +666,44 @@ static const yytype_uint16 yytoknum[] =
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- -282, 30, 398, -282, -282, 846, 846, 846, 846, -282,
- 846, -282, 846, -282, 13, 20, 13, 17, 8, 12,
- 53, 20, 20, 108, 126, 538, 131, 112, 143, 664,
- -282, 11, -282, -282, -282, 60, -282, 468, -282, -282,
- 157, 190, -282, -282, -282, -282, 220, 1493, -282, 165,
- -282, 228, 192, 192, 192, 192, 1821, 145, 191, 1,
- 1104, 226, -282, 232, -282, 51, 95, 198, 205, 211,
- 213, 19, 215, -282, 229, 137, -282, 273, 235, 105,
- 846, 846, 225, 846, -282, -282, -282, 924, 192, 218,
- 283, 607, 248, -282, -282, -282, -282, -282, 146, 250,
- -282, 263, 637, 292, 694, 846, 245, -282, -282, 11,
- -282, 846, 846, 846, 846, 846, 846, 846, 846, 846,
- 846, 846, 846, 846, 846, 846, 846, 846, 846, 846,
- 846, 724, 846, -282, 267, -282, 694, -282, -282, 11,
- 88, -282, 846, -282, 846, 305, 13, -282, -282, -282,
- -282, -282, 37, 39, 328, -282, 264, 182, -21, 751,
- 49, 266, 1227, 1266, 268, -282, 309, -282, 269, 270,
- -282, 282, -282, 857, -282, 103, 1493, -282, 846, -282,
- 272, 960, 275, -9, 248, 273, 793, -282, 113, -282,
- 276, 996, 1493, 846, 804, 315, 318, 300, 1705, 1732,
- 1759, 1786, 1813, 1813, 274, 274, 274, 274, 405, 262,
- 262, 192, 192, 192, 192, 1821, 1493, 1457, 846, 1145,
- 300, 267, -282, -282, 846, 1493, 1493, -282, -282, 329,
- 290, -282, 193, 291, 194, -282, -7, 229, 278, -282,
- 118, 20, -282, 1032, 580, 6, -282, 751, 248, 538,
- 538, 846, 44, 846, 846, 846, -282, -282, 857, 857,
- 1493, -282, 846, -282, -282, 229, 121, -282, -282, -282,
- 1493, -282, -282, -282, 1527, 846, 1563, -282, -282, 846,
- 1383, -282, 846, -282, -282, 337, -282, 338, -282, -282,
- -282, -282, 135, -282, -282, 229, 278, 278, 340, -282,
- -282, -282, 793, -282, -4, 302, 229, 176, 1068, 289,
- -282, 1305, 846, 1493, 303, -282, 1493, -282, -282, 1493,
- -282, 229, 846, 1599, 846, 1670, -282, 1186, -282, -282,
- -282, -282, -282, -282, 16, 319, 316, -282, 793, 793,
- -282, 229, -282, 538, 308, 1344, 846, -282, 1635, 846,
- 1635, -282, 846, 325, 793, -282, 320, -282, -282, -282,
- -282, 538, 321, 270, 1635, 1420, 793, -282, -282, -282,
- 538, -282, -282, -282
+ -285, 41, 472, -285, -285, 873, 873, 873, 873, -285,
+ 873, -285, 873, -285, 14, 20, 14, 16, 8, 23,
+ 31, 20, 20, 26, 49, 614, 56, 86, 91, 687,
+ -285, 141, -285, -285, -285, 18, -285, 543, -285, -285,
+ 100, 53, -285, -285, -285, -285, 122, 1545, -285, 125,
+ -285, 224, 148, 148, 148, 148, 1931, 330, 203, 60,
+ 1146, 190, -285, 194, -285, 88, 0, 155, 161, 166,
+ 168, -1, 169, -285, 180, 34, -285, 236, 207, 15,
+ 873, 873, 193, 873, -285, -285, -285, 961, 148, 235,
+ 254, 616, 212, -285, -285, -285, -285, -285, 35, 217,
+ -285, 229, 685, 262, 741, 873, 79, -285, -285, 141,
+ -285, 873, 873, 873, 873, 873, 873, 873, 873, 873,
+ 873, 873, 873, 873, 873, 873, 873, 873, 873, 873,
+ 873, 873, 761, 873, -285, 231, -285, 741, -285, -285,
+ 141, 114, -285, 873, -285, 873, 270, 14, -285, -285,
+ -285, -285, -285, 24, 39, 401, -285, 227, 134, -14,
+ 797, 105, 234, 1272, 1312, 233, -285, 278, -285, 243,
+ 237, -285, 249, -285, 893, -285, 107, 1545, -285, 873,
+ -285, 245, 998, 247, -10, 212, 236, 817, -285, 118,
+ -285, 248, 1035, 1545, 873, 853, 291, 292, 197, 1763,
+ 1791, 1819, 1847, 1875, 1875, 1903, 1903, 1903, 1903, 1939,
+ 258, 258, 148, 148, 148, 148, 148, 1931, 1545, 1508,
+ 873, 1188, 197, 231, -285, -285, 873, 1545, 1545, -285,
+ -285, 295, 252, -285, 136, 253, 162, -285, -3, 180,
+ 239, -285, 149, 20, -285, 1072, 146, 94, -285, 797,
+ 212, 614, 614, 873, 46, 873, 873, 873, -285, -285,
+ 893, 893, 1545, -285, 873, -285, -285, 180, 157, -285,
+ -285, -285, 1545, -285, -285, -285, 1580, 873, 1617, -285,
+ -285, 873, 1432, -285, 873, -285, -285, 300, -285, 301,
+ -285, -285, -285, -285, 186, -285, -285, 180, 239, 239,
+ 305, -285, -285, -285, 817, -285, 4, 265, 180, 191,
+ 1109, 251, -285, 1352, 873, 1545, 264, -285, 1545, -285,
+ -285, 1545, -285, 180, 873, 1654, 873, 1727, -285, 1230,
+ -285, -285, -285, -285, -285, -285, 27, 279, 273, -285,
+ 817, 817, -285, 180, -285, 614, 267, 1392, 873, -285,
+ 1691, 873, 1691, -285, 873, 282, 817, -285, 276, -285,
+ -285, -285, -285, 614, 275, 237, 1691, 1470, 817, -285,
+ -285, -285, 614, -285, -285, -285
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -711,63 +712,63 @@ static const yytype_int16 yypact[] =
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, 5, 0, 177, 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, 0, 42, 191, 19, 20, 109, 190, 11, 0,
+ 178, 108, 153, 152, 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,
+ 7, 0, 0, 3, 0, 44, 83, 0, 44, 138,
+ 0, 0, 0, 192, 186, 187, 188, 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,
+ 49, 51, 0, 0, 0, 0, 166, 169, 157, 154,
+ 170, 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
+ 0, 0, 0, 0, 151, 158, 179, 0, 59, 6,
+ 98, 0, 149, 0, 97, 0, 0, 0, 21, 24,
+ 27, 28, 29, 0, 0, 0, 82, 0, 53, 74,
+ 0, 141, 139, 0, 0, 0, 194, 0, 199, 0,
+ 193, 189, 7, 93, 0, 102, 0, 100, 8, 84,
+ 45, 0, 0, 0, 74, 54, 0, 0, 95, 0,
+ 88, 0, 0, 155, 0, 0, 0, 0, 137, 132,
+ 131, 135, 134, 129, 130, 125, 126, 127, 128, 133,
+ 118, 119, 120, 121, 122, 123, 124, 136, 148, 0,
+ 0, 0, 150, 159, 160, 113, 0, 107, 106, 37,
+ 39, 30, 0, 32, 0, 0, 0, 156, 74, 0,
+ 74, 73, 0, 0, 69, 0, 0, 74, 142, 0,
+ 140, 0, 0, 0, 53, 195, 0, 0, 103, 94,
+ 0, 0, 86, 91, 85, 89, 46, 55, 0, 50,
+ 52, 58, 57, 96, 92, 90, 175, 0, 171, 167,
+ 168, 0, 0, 163, 0, 161, 114, 0, 23, 0,
+ 22, 26, 25, 55, 0, 143, 70, 0, 74, 74,
+ 75, 47, 60, 64, 0, 67, 0, 65, 0, 0,
+ 0, 180, 182, 0, 0, 196, 0, 200, 101, 104,
+ 105, 87, 80, 56, 0, 173, 0, 147, 162, 0,
+ 31, 33, 56, 145, 71, 72, 53, 76, 0, 62,
+ 0, 66, 144, 0, 48, 0, 0, 0, 197, 81,
+ 176, 0, 172, 164, 0, 78, 0, 61, 0, 68,
+ 146, 181, 183, 0, 0, 198, 174, 0, 0, 77,
+ 63, 185, 0, 165, 79, 184
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -282, -282, 293, -282, 10, 307, -282, 333, 75, 212,
- 353, -6, -282, 351, 304, -13, 352, -20, -282, -282,
- 188, -281, -210, 322, 216, -282, -282, -154, -282, -225,
- -282, -282, 298, -282, -123, 301, -282, -5, -282, -125,
- 271, -282, -282, -19, -79, -163, -282, -282, -282, 61
+ -285, -285, 250, -285, 10, 263, -285, 285, 36, 170,
+ 309, -6, -285, 307, 246, -13, 308, -20, -285, -285,
+ 145, -284, -210, 260, 171, -285, -285, -164, -285, -227,
+ -285, -285, 238, -285, -165, 241, -285, -5, -285, -121,
+ 205, -285, -285, -19, -79, -138, -285, -285, -285, -8
};
/* 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
+ -1, 1, 2, 57, 51, 36, 37, 38, 233, 234,
+ 63, 64, 65, 39, 40, 41, 42, 185, 162, 99,
+ 100, 101, 270, 43, 271, 306, 307, 242, 243, 244,
+ 44, 45, 181, 46, 175, 176, 59, 47, 133, 134,
+ 135, 196, 197, 48, 49, 50, 169, 316, 364, 170
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -775,453 +776,476 @@ static const yytype_int16 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
- 52, 53, 54, 55, 167, 56, 82, 60, 77, 222,
- 67, 70, 35, 294, 4, 92, 61, 335, 96, 157,
- 68, 237, 58, 4, 87, 66, 88, 238, 71, 266,
- 3, 75, 78, 265, 303, 291, 337, 9, 140, 238,
- 229, 238, 229, 141, 338, 142, 239, 35, 306, 9,
- 256, 73, 12, 353, 238, 92, 74, 236, 239, 160,
- 239, 156, 90, -44, 230, 19, 233, 35, 22, 152,
- 166, 332, 333, 239, 293, 162, 163, 30, 62, 312,
- 31, 32, 292, 62, 176, 236, 181, 69, 244, 156,
- 245, 307, 336, 35, 182, 146, 283, 176, 147, 191,
- 192, 89, 320, 90, 197, 91, 198, 199, 200, 201,
- 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
- 212, 213, 214, 215, 216, 217, 219, 220, 356, 357,
- 224, 181, 331, 182, 223, 317, 318, 225, 90, 226,
- 228, 248, 148, 340, 367, 257, 158, 258, 4, 80,
- 159, 259, 5, 6, 243, 271, 372, 258, 347, 84,
- 295, 259, 296, 321, 35, 296, 297, 81, 176, 297,
- 7, 8, 83, 260, 9, 315, 10, 330, 358, 296,
- 90, 270, 156, 297, 11, 137, 12, 183, 274, 276,
- 85, 156, 13, 98, 14, 15, 16, 17, 18, 19,
- 20, 21, 22, 23, 97, 24, 25, 26, 27, 28,
- 29, 30, 135, 280, 31, 32, 33, 34, 341, 284,
- 296, 171, 127, 236, 297, 5, 6, 156, 298, -34,
- 309, 310, 89, 139, 90, 145, 91, 287, 287, 270,
- 288, 290, 308, 7, 8, 149, 311, 9, 313, 10,
- 316, 75, 150, 176, 176, 193, 194, 319, 151, 12,
- 172, 102, -34, 103, 153, 104, 173, 167, 11, 89,
- 323, 90, 19, 136, 325, 22, 157, 327, 90, 106,
- 107, 108, 109, 110, 30, 164, 177, 31, 32, 124,
- 125, 126, 127, 182, 185, 189, 186, 270, 121, 122,
- 123, 124, 125, 126, 127, 128, 131, 345, 227, 251,
- 179, 247, 252, 131, 254, 255, 253, 348, 261, 350,
- 277, 264, 272, 278, 359, 122, 123, 124, 125, 126,
- 127, 4, 285, 270, 270, 5, 6, 286, 289, 131,
- 328, 229, 369, 334, 364, 239, 339, 365, 343, 270,
- 346, 373, 354, 7, 8, 360, 355, 9, 366, 10,
- 368, 270, 329, 370, 138, 234, 154, 11, 235, 12,
- 95, 72, 76, 267, 79, 13, 246, 14, 15, 16,
- 17, 18, 19, 20, 21, 22, 23, 165, 24, 25,
- 26, 27, 28, 29, 30, 0, 155, 31, 32, 33,
- 34, 4, 190, 188, 221, 5, 6, 363, 0, 0,
- 106, 107, 108, 109, 110, 0, 0, 0, 0, 0,
- 0, 0, 0, 7, 8, 0, 0, 9, 0, 10,
- 122, 123, 124, 125, 126, 127, 0, 11, 0, 12,
- 0, 0, 0, 0, 131, 13, 0, 14, 15, 16,
- 17, 18, 19, 20, 21, 22, 23, 0, 24, 25,
- 26, 27, 28, 29, 30, 0, 0, 31, 32, 33,
- 34, 4, 0, 0, 0, 5, 6, 0, 0, 0,
+ 52, 53, 54, 55, 168, 56, 82, 60, 77, 258,
+ 67, 70, 35, 296, 224, 92, 337, 61, 96, 68,
+ 268, -44, 58, 4, 87, 66, 88, 231, 71, 239,
+ 158, 75, 78, 267, 74, 240, 305, 9, 141, 240,
+ 293, 3, 231, 90, 90, 339, 240, 35, 149, 9,
+ 153, 232, 355, 340, 241, 92, 98, 159, 241, 161,
+ 89, 160, 90, 73, 91, 241, 235, 35, 80, 238,
+ 167, 334, 335, 157, 294, 163, 164, 184, 90, 62,
+ 157, 157, 314, 309, 177, 62, 182, 69, 238, 194,
+ 195, 81, 157, 35, 338, 319, 320, 177, 83, 192,
+ 193, 295, 285, 142, 198, 143, 199, 200, 201, 202,
+ 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
+ 213, 214, 215, 216, 217, 218, 219, 221, 222, 322,
+ 358, 359, 182, 147, 84, 225, 148, 308, 227, 85,
+ 228, 230, 250, 240, 4, 246, 369, 247, 97, 4,
+ 259, 183, 260, 5, 6, 245, 261, 226, 374, 333,
+ 183, 273, 241, 260, 102, 35, 103, 261, 104, 177,
+ 342, 7, 8, 136, 262, 9, 238, 317, 10, 128,
+ 157, 289, 272, 12, 290, 349, 246, 302, 12, 276,
+ 278, 303, 297, -34, 298, 304, 19, 146, 299, 22,
+ 323, 19, 298, 150, 22, 360, 299, 289, 30, 151,
+ 292, 31, 32, 30, 152, 282, 31, 32, -34, 154,
+ 11, 286, 122, 123, 124, 125, 126, 127, 128, 332,
+ 300, 298, 311, 312, 343, 299, 298, 132, 172, 158,
+ 299, 272, 5, 6, 310, 89, 140, 90, 313, 91,
+ 315, 90, 318, 75, 165, 177, 177, 178, 183, 321,
+ 7, 8, 186, 187, 9, 190, 89, 10, 90, 168,
+ 137, 132, 325, 229, 180, 253, 327, 12, 173, 329,
+ 249, 254, 256, 257, 174, 124, 125, 126, 127, 128,
+ 19, 255, 263, 22, 266, 274, 279, 280, 287, 272,
+ 288, 291, 30, 330, 231, 31, 32, 241, 336, 347,
+ 341, 345, 348, 356, 357, 362, 368, 370, 372, 350,
+ 139, 352, 95, 155, 236, 331, 361, 72, 76, 166,
+ 79, 269, 248, 4, 156, 272, 272, 5, 6, 223,
+ 365, 0, 191, 189, 371, 0, 366, 0, 0, 367,
+ 0, 272, 0, 375, 0, 7, 8, 0, 0, 9,
+ 0, 0, 10, 272, 0, 0, 0, 0, 0, 0,
+ 11, 138, 12, 0, 0, 0, 0, 0, 13, 0,
+ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
+ 0, 24, 25, 26, 27, 28, 29, 30, 0, 0,
+ 31, 32, 33, 34, 4, 0, 0, 0, 5, 6,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7, 8, 0, 0, 9, 0, 10,
- 0, 0, 0, 0, 0, 0, 0, 11, 0, 12,
- 0, 0, 0, 0, 0, 13, 0, 14, 15, 16,
- 17, 18, 19, 20, 21, 22, 23, 0, 24, 25,
- 26, 27, 28, 29, 30, 0, 0, 31, 32, 93,
- 94, 4, 0, 0, 0, 5, 6, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 7, 8, 0, 0,
+ 9, 0, 0, 10, 0, 0, 0, 0, 0, 0,
+ 0, 11, 237, 12, 0, 0, 0, 0, 0, 13,
+ 0, 14, 15, 16, 17, 18, 19, 20, 21, 22,
+ 23, 0, 24, 25, 26, 27, 28, 29, 30, 0,
+ 0, 31, 32, 33, 34, 4, 0, 0, 0, 5,
+ 6, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 7, 8, 0,
+ 0, 9, 0, 0, 10, 0, 0, 0, 0, 0,
+ 0, 0, 11, 0, 12, 0, 0, 0, 0, 0,
+ 13, 0, 14, 15, 16, 17, 18, 19, 20, 21,
+ 22, 23, 0, 24, 25, 26, 27, 28, 29, 30,
+ 0, 0, 31, 32, 33, 34, 4, 0, 0, 0,
+ 5, 6, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 7, 8,
+ 0, 0, 9, 0, 0, 10, 0, 0, 0, 0,
+ 0, 0, 0, 11, 0, 12, 0, 0, 0, 0,
+ 0, 13, 0, 14, 15, 16, 17, 18, 19, 20,
+ 21, 22, 23, 0, 24, 25, 26, 27, 28, 29,
+ 30, 0, 0, 31, 32, 93, 94, 4, 0, 4,
+ 0, 5, 6, 5, 6, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,
+ 8, 7, 8, 9, 0, 9, 10, 0, 10, 0,
+ 0, 0, 179, 0, 11, 0, 12, 0, 12, 0,
+ 0, 0, 13, 180, 0, 0, 0, 0, 0, 19,
+ 0, 19, 22, 23, 22, 24, 25, 26, 27, 28,
+ 29, 30, 0, 30, 31, 32, 31, 32, 172, 0,
+ 4, 0, 5, 6, 5, 6, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7, 8, 0, 0, 9, 0, 10,
- 0, 0, 0, 0, 0, 0, 0, 11, 0, 12,
- 0, 0, 0, 4, 0, 13, 0, 5, 6, 0,
- 0, 0, 19, 0, 0, 22, 23, 0, 24, 25,
- 26, 27, 28, 29, 30, 7, 8, 31, 32, 9,
- 4, 10, 0, 0, 5, 6, 0, 0, 0, 244,
- 300, 12, 0, 0, 301, 0, 0, 0, 302, 0,
- 0, 0, 7, 8, 19, 0, 9, 22, 10, 0,
- 171, 0, 178, 0, 5, 6, 30, 0, 12, 31,
- 32, 0, 0, 179, 0, 0, 0, 0, 0, 0,
- 0, 19, 7, 8, 22, 0, 9, 4, 10, 0,
- 0, 5, 6, 30, 0, 0, 31, 32, 12, 187,
- 0, 0, 0, 0, 0, 173, 0, 0, 0, 7,
- 8, 19, 0, 9, 22, 10, 0, 4, 0, 0,
- 0, 5, 6, 30, 0, 12, 31, 32, 0, 0,
- 0, 86, 0, 0, 0, 0, 0, 0, 19, 7,
- 8, 22, 0, 9, 0, 10, 0, 4, 0, 178,
- 30, 5, 6, 31, 32, 12, 0, 218, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 19, 7,
- 8, 22, 0, 9, 4, 10, 0, 0, 5, 6,
- 30, 0, 0, 31, 32, 12, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7, 8, 19, 0,
- 9, 22, 10, 0, 0, 0, 0, 0, 0, 0,
- 30, 0, 12, 31, 32, 0, 4, 179, 0, 0,
- 5, 6, 0, 0, 0, 19, 0, 4, 22, 0,
- 0, 5, 6, 0, 0, 0, 275, 30, 7, 8,
- 31, 32, 9, 0, 10, 0, 0, 0, 0, 7,
- 8, 0, 244, 9, 12, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 12, 0, 19, 0, 4,
- 22, 0, 0, 5, 6, 0, 0, 0, 19, 30,
- 171, 22, 31, 32, 5, 6, 0, 0, 0, 0,
- 30, 7, 8, 31, 32, 9, 0, 10, 0, 0,
- 0, 0, 7, 8, 0, 0, 9, 12, 10, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 12, 0,
- 19, 0, 0, 22, 0, 0, 0, 0, 0, 0,
- 0, 19, 30, 0, 22, 31, 32, 0, 0, 0,
- 0, 0, 0, 30, 0, 0, 31, 32, 105, 106,
- 107, 108, 109, 110, 0, 0, 0, 0, 111, 112,
- 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
- 123, 124, 125, 126, 127, 128, 0, 129, 130, 0,
- 0, 0, 0, 131, 105, 106, 107, 108, 109, 110,
- 0, 170, 0, 0, 111, 112, 113, 114, 115, 116,
- 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
- 127, 128, 0, 129, 130, 262, 0, 0, 0, 131,
- 105, 106, 107, 108, 109, 110, 263, 0, 0, 0,
- 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
- 121, 122, 123, 124, 125, 126, 127, 128, 0, 129,
- 130, 262, 0, 0, 0, 131, 105, 106, 107, 108,
- 109, 110, 273, 0, 0, 0, 111, 112, 113, 114,
- 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
- 125, 126, 127, 128, 0, 129, 130, 0, 0, 0,
- 0, 131, 105, 106, 107, 108, 109, 110, 299, 0,
+ 7, 8, 7, 8, 9, 0, 9, 10, 0, 10,
+ 0, 0, 0, 0, 0, 0, 0, 12, 188, 12,
+ 0, 0, 0, 0, 174, 86, 0, 0, 0, 0,
+ 19, 0, 19, 22, 4, 22, 0, 0, 5, 6,
+ 0, 0, 30, 0, 30, 31, 32, 31, 32, 0,
+ 0, 0, 0, 0, 4, 0, 7, 8, 5, 6,
+ 9, 0, 0, 10, 220, 0, 0, 179, 0, 0,
+ 0, 0, 0, 12, 0, 0, 7, 8, 0, 0,
+ 9, 0, 0, 10, 0, 0, 19, 0, 0, 22,
+ 4, 0, 0, 12, 5, 6, 0, 0, 30, 0,
+ 0, 31, 32, 0, 0, 0, 19, 0, 0, 22,
+ 4, 0, 7, 8, 5, 6, 9, 0, 30, 10,
+ 0, 31, 32, 0, 0, 0, 0, 0, 0, 12,
+ 0, 0, 7, 8, 180, 0, 9, 0, 0, 10,
+ 0, 0, 19, 0, 0, 22, 4, 246, 0, 12,
+ 5, 6, 0, 0, 30, 277, 0, 31, 32, 0,
+ 0, 0, 19, 0, 0, 22, 4, 0, 7, 8,
+ 5, 6, 9, 0, 30, 10, 0, 31, 32, 0,
+ 0, 0, 0, 0, 0, 12, 172, 0, 7, 8,
+ 5, 6, 9, 0, 0, 10, 0, 0, 19, 0,
+ 0, 22, 0, 0, 0, 12, 0, 0, 7, 8,
+ 30, 0, 9, 31, 32, 10, 0, 0, 19, 0,
+ 0, 22, 0, 0, 0, 12, 0, 0, 0, 0,
+ 30, 0, 0, 31, 32, 0, 0, 0, 19, 0,
+ 0, 22, 0, 0, 0, 0, 0, 0, 0, 0,
+ 30, 0, 0, 31, 32, 105, 106, 107, 108, 109,
+ 110, 0, 0, 0, 0, 111, 112, 113, 114, 115,
+ 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
+ 126, 127, 128, 129, 0, 130, 131, 0, 0, 0,
+ 0, 132, 105, 106, 107, 108, 109, 110, 0, 171,
0, 0, 111, 112, 113, 114, 115, 116, 117, 118,
119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
- 0, 129, 130, 0, 0, 0, 0, 131, 105, 106,
- 107, 108, 109, 110, 342, 0, 0, 0, 111, 112,
- 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
- 123, 124, 125, 126, 127, 128, 0, 129, 130, 0,
- 0, 0, 0, 131, 0, 0, 143, 0, 144, 105,
- 106, 107, 108, 109, 110, 0, 0, 0, 0, 111,
+ 129, 0, 130, 131, 264, 0, 0, 0, 132, 105,
+ 106, 107, 108, 109, 110, 265, 0, 0, 0, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
- 122, 123, 124, 125, 126, 127, 128, 0, 129, 130,
- 0, 0, 0, 0, 131, 281, 0, 0, 0, 282,
- 105, 106, 107, 108, 109, 110, 0, 0, 0, 0,
- 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
- 121, 122, 123, 124, 125, 126, 127, 128, 0, 129,
- 130, 0, 0, 0, 0, 131, 351, 0, 0, 0,
- 352, 105, 106, 107, 108, 109, 110, 0, 0, 0,
- 0, 111, 112, 113, 114, 115, 116, 117, 118, 119,
- 120, 121, 122, 123, 124, 125, 126, 127, 128, 0,
- 129, 130, 0, 0, 0, 0, 131, 0, 0, 249,
- 105, 106, 107, 108, 109, 110, 0, 0, 0, 0,
+ 122, 123, 124, 125, 126, 127, 128, 129, 0, 130,
+ 131, 264, 0, 0, 0, 132, 105, 106, 107, 108,
+ 109, 110, 275, 0, 0, 0, 111, 112, 113, 114,
+ 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
+ 125, 126, 127, 128, 129, 0, 130, 131, 0, 0,
+ 0, 0, 132, 105, 106, 107, 108, 109, 110, 301,
+ 0, 0, 0, 111, 112, 113, 114, 115, 116, 117,
+ 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
+ 128, 129, 0, 130, 131, 0, 0, 0, 0, 132,
+ 105, 106, 107, 108, 109, 110, 344, 0, 0, 0,
111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
- 121, 122, 123, 124, 125, 126, 127, 128, 0, 129,
- 130, 0, 0, 0, 0, 131, 0, 0, 250, 105,
+ 121, 122, 123, 124, 125, 126, 127, 128, 129, 0,
+ 130, 131, 0, 0, 0, 0, 132, 0, 0, 144,
+ 0, 145, 105, 106, 107, 108, 109, 110, 0, 0,
+ 0, 0, 111, 112, 113, 114, 115, 116, 117, 118,
+ 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
+ 129, 0, 130, 131, 0, 0, 0, 0, 132, 283,
+ 0, 0, 0, 284, 105, 106, 107, 108, 109, 110,
+ 0, 0, 0, 0, 111, 112, 113, 114, 115, 116,
+ 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
+ 127, 128, 129, 0, 130, 131, 0, 0, 0, 0,
+ 132, 353, 0, 0, 0, 354, 105, 106, 107, 108,
+ 109, 110, 0, 0, 0, 0, 111, 112, 113, 114,
+ 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
+ 125, 126, 127, 128, 129, 0, 130, 131, 0, 0,
+ 0, 0, 132, 0, 0, 251, 105, 106, 107, 108,
+ 109, 110, 0, 0, 0, 0, 111, 112, 113, 114,
+ 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
+ 125, 126, 127, 128, 129, 0, 130, 131, 0, 0,
+ 0, 0, 132, 0, 0, 252, 105, 106, 107, 108,
+ 109, 110, 0, 0, 0, 0, 111, 112, 113, 114,
+ 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
+ 125, 126, 127, 128, 129, 0, 130, 131, 0, 0,
+ 0, 0, 132, 0, 0, 346, 105, 106, 107, 108,
+ 109, 110, 0, 0, 0, 0, 111, 112, 113, 114,
+ 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
+ 125, 126, 127, 128, 129, 0, 130, 131, 0, 0,
+ 0, 0, 132, 0, 0, 363, 105, 106, 107, 108,
+ 109, 110, 0, 0, 0, 0, 111, 112, 113, 114,
+ 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
+ 125, 126, 127, 128, 129, 0, 130, 131, 0, 0,
+ 0, 0, 132, 328, 105, 106, 107, 108, 109, 110,
+ 0, 0, 0, 0, 111, 112, 113, 114, 115, 116,
+ 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
+ 127, 128, 129, 0, 130, 131, 0, 0, 0, 0,
+ 132, 373, 105, 106, 107, 108, 109, 110, 0, 0,
+ 0, 0, 111, 112, 113, 114, 115, 116, 117, 118,
+ 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
+ 129, 0, 130, 131, 281, 0, 0, 0, 132, 105,
106, 107, 108, 109, 110, 0, 0, 0, 0, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
- 122, 123, 124, 125, 126, 127, 128, 0, 129, 130,
- 0, 0, 0, 0, 131, 0, 0, 344, 105, 106,
- 107, 108, 109, 110, 0, 0, 0, 0, 111, 112,
- 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
- 123, 124, 125, 126, 127, 128, 0, 129, 130, 0,
- 0, 0, 0, 131, 0, 0, 361, 105, 106, 107,
- 108, 109, 110, 0, 0, 0, 0, 111, 112, 113,
- 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
- 124, 125, 126, 127, 128, 0, 129, 130, 0, 0,
- 0, 0, 131, 326, 105, 106, 107, 108, 109, 110,
+ 122, 123, 124, 125, 126, 127, 128, 129, 0, 130,
+ 131, 0, 0, 0, 105, 132, 107, 108, 109, 110,
0, 0, 0, 0, 111, 112, 113, 114, 115, 116,
117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
- 127, 128, 0, 129, 130, 0, 0, 0, 0, 131,
- 371, 105, 106, 107, 108, 109, 110, 0, 0, 0,
+ 127, 128, 129, 0, 130, 131, 0, 0, 0, 324,
+ 132, 105, 0, 107, 108, 109, 110, 0, 0, 0,
0, 111, 112, 113, 114, 115, 116, 117, 118, 119,
- 120, 121, 122, 123, 124, 125, 126, 127, 128, 0,
- 129, 130, 279, 0, 0, 0, 131, 105, 106, 107,
- 108, 109, 110, 0, 0, 0, 0, 111, 112, 113,
- 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
- 124, 125, 126, 127, 128, 0, 129, 130, 0, 0,
- 0, 105, 131, 107, 108, 109, 110, 0, 0, 0,
+ 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
+ 0, 130, 131, 0, 0, 0, 326, 132, 105, 0,
+ 107, 108, 109, 110, 0, 0, 0, 0, 111, 112,
+ 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
+ 123, 124, 125, 126, 127, 128, 129, 0, 130, 131,
+ 0, 0, 0, 351, 132, 105, 0, 107, 108, 109,
+ 110, 0, 0, 0, 0, 111, 112, 113, 114, 115,
+ 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
+ 126, 127, 128, 129, 0, 130, 131, 0, 0, 0,
+ 0, 132, 106, 107, 108, 109, 110, 0, 0, 0,
0, 111, 112, 113, 114, 115, 116, 117, 118, 119,
- 120, 121, 122, 123, 124, 125, 126, 127, 128, 0,
- 129, 130, 0, 0, 0, 322, 131, 105, 0, 107,
- 108, 109, 110, 0, 0, 0, 0, 111, 112, 113,
+ 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
+ 0, 0, 131, 0, 0, 0, 0, 132, 106, 107,
+ 108, 109, 110, 0, 0, 0, 0, 0, 112, 113,
114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
- 124, 125, 126, 127, 128, 0, 129, 130, 0, 0,
- 0, 324, 131, 105, 0, 107, 108, 109, 110, 0,
- 0, 0, 0, 111, 112, 113, 114, 115, 116, 117,
- 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
- 128, 0, 129, 130, 0, 0, 0, 349, 131, 105,
- 0, 107, 108, 109, 110, 0, 0, 0, 0, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
- 122, 123, 124, 125, 126, 127, 128, 0, 129, 130,
- 0, 0, 0, 0, 131, 106, 107, 108, 109, 110,
- 0, 0, 0, 0, 111, 112, 113, 114, 115, 116,
- 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
- 127, 128, 0, 0, 130, 0, 0, 0, 0, 131,
- 106, 107, 108, 109, 110, 0, 0, 0, 0, 0,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
- 122, 123, 124, 125, 126, 127, 128, 106, 107, 108,
- 109, 110, 0, 0, 131, 0, 0, 0, 113, 114,
- 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
- 125, 126, 127, 128, 106, 107, 108, 109, 110, 0,
- 0, 131, 0, 0, 0, 0, 114, 115, 116, 117,
+ 124, 125, 126, 127, 128, 129, 106, 107, 108, 109,
+ 110, 0, 0, 132, 0, 0, 0, 113, 114, 115,
+ 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
+ 126, 127, 128, 129, 106, 107, 108, 109, 110, 0,
+ 0, 132, 0, 0, 0, 0, 114, 115, 116, 117,
118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
- 128, 106, 107, 108, 109, 110, 0, 0, 131, 0,
- 0, 0, 0, 0, 115, 116, 117, 118, 119, 120,
- 121, 122, 123, 124, 125, 126, 127, 128, 106, 107,
- 108, 109, 110, 0, 0, 131, 106, 107, 108, 109,
- 110, 0, 0, 117, 118, 119, 120, 121, 122, 123,
- 124, 125, 126, 127, 128, 121, 122, 123, 124, 125,
- 126, 127, 131, 0, 0, 0, 0, 0, 0, 0,
- 131
+ 128, 129, 106, 107, 108, 109, 110, 0, 0, 132,
+ 0, 0, 0, 0, 0, 115, 116, 117, 118, 119,
+ 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
+ 106, 107, 108, 109, 110, 0, 0, 132, 0, 0,
+ 0, 0, 0, 0, 0, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 106, 107,
+ 108, 109, 110, 0, 0, 132, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 121, 122, 123,
+ 124, 125, 126, 127, 128, 129, 106, 107, 108, 109,
+ 110, 0, 0, 132, 106, 107, 108, 109, 110, 0,
+ 0, 0, 0, 0, 0, 121, 122, 123, 124, 125,
+ 126, 127, 128, 0, 122, 123, 124, 125, 126, 127,
+ 128, 132, 0, 0, 0, 0, 0, 0, 0, 132
};
static const yytype_int16 yycheck[] =
{
- 5, 6, 7, 8, 83, 10, 25, 12, 21, 134,
- 16, 3, 2, 238, 3, 35, 3, 298, 37, 3,
- 3, 42, 12, 3, 29, 15, 31, 48, 18, 183,
- 0, 21, 22, 42, 244, 42, 40, 29, 58, 48,
- 3, 48, 3, 42, 48, 44, 67, 37, 42, 29,
- 173, 39, 41, 334, 48, 75, 3, 41, 67, 79,
- 67, 45, 43, 3, 27, 54, 27, 57, 57, 50,
- 83, 296, 297, 67, 237, 80, 81, 66, 70, 35,
- 69, 70, 236, 70, 89, 41, 91, 70, 39, 45,
- 41, 245, 302, 83, 45, 44, 221, 102, 47, 104,
- 105, 41, 265, 43, 109, 45, 111, 112, 113, 114,
+ 5, 6, 7, 8, 83, 10, 25, 12, 21, 174,
+ 16, 3, 2, 240, 135, 35, 300, 3, 37, 3,
+ 184, 3, 12, 3, 29, 15, 31, 3, 18, 43,
+ 3, 21, 22, 43, 3, 49, 246, 29, 58, 49,
+ 43, 0, 3, 44, 44, 41, 49, 37, 48, 29,
+ 51, 27, 336, 49, 68, 75, 3, 42, 68, 79,
+ 42, 46, 44, 40, 46, 68, 27, 57, 42, 42,
+ 83, 298, 299, 46, 238, 80, 81, 42, 44, 71,
+ 46, 46, 36, 247, 89, 71, 91, 71, 42, 10,
+ 11, 42, 46, 83, 304, 260, 261, 102, 42, 104,
+ 105, 239, 223, 43, 109, 45, 111, 112, 113, 114,
115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
- 125, 126, 127, 128, 129, 130, 131, 132, 338, 339,
- 42, 136, 295, 45, 139, 258, 259, 142, 43, 144,
- 146, 161, 47, 306, 354, 42, 41, 44, 3, 41,
- 45, 48, 7, 8, 159, 42, 366, 44, 321, 47,
- 42, 48, 44, 42, 154, 44, 48, 41, 173, 48,
- 25, 26, 41, 178, 29, 254, 31, 42, 341, 44,
- 43, 186, 45, 48, 39, 40, 41, 41, 193, 194,
- 47, 45, 47, 3, 49, 50, 51, 52, 53, 54,
- 55, 56, 57, 58, 47, 60, 61, 62, 63, 64,
- 65, 66, 47, 218, 69, 70, 71, 72, 42, 224,
- 44, 3, 30, 41, 48, 7, 8, 45, 241, 3,
- 249, 250, 41, 42, 43, 3, 45, 44, 44, 244,
- 47, 47, 247, 25, 26, 47, 251, 29, 253, 31,
- 255, 241, 47, 258, 259, 10, 11, 262, 47, 41,
- 42, 41, 49, 43, 49, 45, 48, 346, 39, 41,
- 275, 43, 54, 45, 279, 57, 3, 282, 43, 5,
- 6, 7, 8, 9, 66, 60, 3, 69, 70, 27,
- 28, 29, 30, 45, 44, 3, 33, 302, 24, 25,
- 26, 27, 28, 29, 30, 31, 39, 312, 3, 41,
- 46, 45, 3, 39, 44, 33, 47, 322, 46, 324,
- 5, 46, 46, 5, 343, 25, 26, 27, 28, 29,
- 30, 3, 3, 338, 339, 7, 8, 47, 47, 39,
- 3, 3, 361, 3, 349, 67, 44, 352, 59, 354,
- 47, 370, 33, 25, 26, 47, 40, 29, 33, 31,
- 40, 366, 287, 42, 57, 153, 73, 39, 40, 41,
- 37, 18, 21, 185, 22, 47, 160, 49, 50, 51,
- 52, 53, 54, 55, 56, 57, 58, 83, 60, 61,
- 62, 63, 64, 65, 66, -1, 74, 69, 70, 71,
- 72, 3, 104, 102, 133, 7, 8, 346, -1, -1,
- 5, 6, 7, 8, 9, -1, -1, -1, -1, -1,
- -1, -1, -1, 25, 26, -1, -1, 29, -1, 31,
- 25, 26, 27, 28, 29, 30, -1, 39, -1, 41,
- -1, -1, -1, -1, 39, 47, -1, 49, 50, 51,
- 52, 53, 54, 55, 56, 57, 58, -1, 60, 61,
- 62, 63, 64, 65, 66, -1, -1, 69, 70, 71,
- 72, 3, -1, -1, -1, 7, 8, -1, -1, -1,
+ 125, 126, 127, 128, 129, 130, 131, 132, 133, 267,
+ 340, 341, 137, 45, 48, 140, 48, 43, 143, 48,
+ 145, 147, 162, 49, 3, 40, 356, 42, 48, 3,
+ 43, 46, 45, 7, 8, 160, 49, 43, 368, 297,
+ 46, 43, 68, 45, 42, 155, 44, 49, 46, 174,
+ 308, 25, 26, 48, 179, 29, 42, 256, 32, 31,
+ 46, 45, 187, 42, 48, 323, 40, 41, 42, 194,
+ 195, 45, 43, 3, 45, 49, 55, 3, 49, 58,
+ 43, 55, 45, 48, 58, 343, 49, 45, 67, 48,
+ 48, 70, 71, 67, 48, 220, 70, 71, 50, 50,
+ 40, 226, 25, 26, 27, 28, 29, 30, 31, 43,
+ 243, 45, 251, 252, 43, 49, 45, 40, 3, 3,
+ 49, 246, 7, 8, 249, 42, 43, 44, 253, 46,
+ 255, 44, 257, 243, 61, 260, 261, 3, 46, 264,
+ 25, 26, 45, 34, 29, 3, 42, 32, 44, 348,
+ 46, 40, 277, 3, 47, 42, 281, 42, 43, 284,
+ 46, 3, 45, 34, 49, 27, 28, 29, 30, 31,
+ 55, 48, 47, 58, 47, 47, 5, 5, 3, 304,
+ 48, 48, 67, 3, 3, 70, 71, 68, 3, 314,
+ 45, 60, 48, 34, 41, 48, 34, 41, 43, 324,
+ 57, 326, 37, 73, 154, 289, 345, 18, 21, 83,
+ 22, 186, 161, 3, 74, 340, 341, 7, 8, 134,
+ 348, -1, 104, 102, 363, -1, 351, -1, -1, 354,
+ -1, 356, -1, 372, -1, 25, 26, -1, -1, 29,
+ -1, -1, 32, 368, -1, -1, -1, -1, -1, -1,
+ 40, 41, 42, -1, -1, -1, -1, -1, 48, -1,
+ 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
+ -1, 61, 62, 63, 64, 65, 66, 67, -1, -1,
+ 70, 71, 72, 73, 3, -1, -1, -1, 7, 8,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 25, 26, -1, -1, 29, -1, 31,
- -1, -1, -1, -1, -1, -1, -1, 39, -1, 41,
- -1, -1, -1, -1, -1, 47, -1, 49, 50, 51,
- 52, 53, 54, 55, 56, 57, 58, -1, 60, 61,
- 62, 63, 64, 65, 66, -1, -1, 69, 70, 71,
- 72, 3, -1, -1, -1, 7, 8, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 25, 26, -1, -1,
+ 29, -1, -1, 32, -1, -1, -1, -1, -1, -1,
+ -1, 40, 41, 42, -1, -1, -1, -1, -1, 48,
+ -1, 50, 51, 52, 53, 54, 55, 56, 57, 58,
+ 59, -1, 61, 62, 63, 64, 65, 66, 67, -1,
+ -1, 70, 71, 72, 73, 3, -1, -1, -1, 7,
+ 8, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 25, 26, -1,
+ -1, 29, -1, -1, 32, -1, -1, -1, -1, -1,
+ -1, -1, 40, -1, 42, -1, -1, -1, -1, -1,
+ 48, -1, 50, 51, 52, 53, 54, 55, 56, 57,
+ 58, 59, -1, 61, 62, 63, 64, 65, 66, 67,
+ -1, -1, 70, 71, 72, 73, 3, -1, -1, -1,
+ 7, 8, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 25, 26,
+ -1, -1, 29, -1, -1, 32, -1, -1, -1, -1,
+ -1, -1, -1, 40, -1, 42, -1, -1, -1, -1,
+ -1, 48, -1, 50, 51, 52, 53, 54, 55, 56,
+ 57, 58, 59, -1, 61, 62, 63, 64, 65, 66,
+ 67, -1, -1, 70, 71, 72, 73, 3, -1, 3,
+ -1, 7, 8, 7, 8, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 25,
+ 26, 25, 26, 29, -1, 29, 32, -1, 32, -1,
+ -1, -1, 36, -1, 40, -1, 42, -1, 42, -1,
+ -1, -1, 48, 47, -1, -1, -1, -1, -1, 55,
+ -1, 55, 58, 59, 58, 61, 62, 63, 64, 65,
+ 66, 67, -1, 67, 70, 71, 70, 71, 3, -1,
+ 3, -1, 7, 8, 7, 8, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 25, 26, -1, -1, 29, -1, 31,
- -1, -1, -1, -1, -1, -1, -1, 39, -1, 41,
- -1, -1, -1, 3, -1, 47, -1, 7, 8, -1,
- -1, -1, 54, -1, -1, 57, 58, -1, 60, 61,
- 62, 63, 64, 65, 66, 25, 26, 69, 70, 29,
- 3, 31, -1, -1, 7, 8, -1, -1, -1, 39,
- 40, 41, -1, -1, 44, -1, -1, -1, 48, -1,
- -1, -1, 25, 26, 54, -1, 29, 57, 31, -1,
- 3, -1, 35, -1, 7, 8, 66, -1, 41, 69,
- 70, -1, -1, 46, -1, -1, -1, -1, -1, -1,
- -1, 54, 25, 26, 57, -1, 29, 3, 31, -1,
- -1, 7, 8, 66, -1, -1, 69, 70, 41, 42,
- -1, -1, -1, -1, -1, 48, -1, -1, -1, 25,
- 26, 54, -1, 29, 57, 31, -1, 3, -1, -1,
- -1, 7, 8, 66, -1, 41, 69, 70, -1, -1,
- -1, 47, -1, -1, -1, -1, -1, -1, 54, 25,
- 26, 57, -1, 29, -1, 31, -1, 3, -1, 35,
- 66, 7, 8, 69, 70, 41, -1, 13, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 54, 25,
- 26, 57, -1, 29, 3, 31, -1, -1, 7, 8,
- 66, -1, -1, 69, 70, 41, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 25, 26, 54, -1,
- 29, 57, 31, -1, -1, -1, -1, -1, -1, -1,
- 66, -1, 41, 69, 70, -1, 3, 46, -1, -1,
- 7, 8, -1, -1, -1, 54, -1, 3, 57, -1,
- -1, 7, 8, -1, -1, -1, 12, 66, 25, 26,
- 69, 70, 29, -1, 31, -1, -1, -1, -1, 25,
- 26, -1, 39, 29, 41, 31, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 41, -1, 54, -1, 3,
- 57, -1, -1, 7, 8, -1, -1, -1, 54, 66,
- 3, 57, 69, 70, 7, 8, -1, -1, -1, -1,
- 66, 25, 26, 69, 70, 29, -1, 31, -1, -1,
- -1, -1, 25, 26, -1, -1, 29, 41, 31, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 41, -1,
- 54, -1, -1, 57, -1, -1, -1, -1, -1, -1,
- -1, 54, 66, -1, 57, 69, 70, -1, -1, -1,
- -1, -1, -1, 66, -1, -1, 69, 70, 4, 5,
- 6, 7, 8, 9, -1, -1, -1, -1, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
- 26, 27, 28, 29, 30, 31, -1, 33, 34, -1,
- -1, -1, -1, 39, 4, 5, 6, 7, 8, 9,
- -1, 47, -1, -1, 14, 15, 16, 17, 18, 19,
- 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
- 30, 31, -1, 33, 34, 35, -1, -1, -1, 39,
- 4, 5, 6, 7, 8, 9, 46, -1, -1, -1,
- 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31, -1, 33,
- 34, 35, -1, -1, -1, 39, 4, 5, 6, 7,
- 8, 9, 46, -1, -1, -1, 14, 15, 16, 17,
- 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
- 28, 29, 30, 31, -1, 33, 34, -1, -1, -1,
- -1, 39, 4, 5, 6, 7, 8, 9, 46, -1,
+ 25, 26, 25, 26, 29, -1, 29, 32, -1, 32,
+ -1, -1, -1, -1, -1, -1, -1, 42, 43, 42,
+ -1, -1, -1, -1, 49, 48, -1, -1, -1, -1,
+ 55, -1, 55, 58, 3, 58, -1, -1, 7, 8,
+ -1, -1, 67, -1, 67, 70, 71, 70, 71, -1,
+ -1, -1, -1, -1, 3, -1, 25, 26, 7, 8,
+ 29, -1, -1, 32, 13, -1, -1, 36, -1, -1,
+ -1, -1, -1, 42, -1, -1, 25, 26, -1, -1,
+ 29, -1, -1, 32, -1, -1, 55, -1, -1, 58,
+ 3, -1, -1, 42, 7, 8, -1, -1, 67, -1,
+ -1, 70, 71, -1, -1, -1, 55, -1, -1, 58,
+ 3, -1, 25, 26, 7, 8, 29, -1, 67, 32,
+ -1, 70, 71, -1, -1, -1, -1, -1, -1, 42,
+ -1, -1, 25, 26, 47, -1, 29, -1, -1, 32,
+ -1, -1, 55, -1, -1, 58, 3, 40, -1, 42,
+ 7, 8, -1, -1, 67, 12, -1, 70, 71, -1,
+ -1, -1, 55, -1, -1, 58, 3, -1, 25, 26,
+ 7, 8, 29, -1, 67, 32, -1, 70, 71, -1,
+ -1, -1, -1, -1, -1, 42, 3, -1, 25, 26,
+ 7, 8, 29, -1, -1, 32, -1, -1, 55, -1,
+ -1, 58, -1, -1, -1, 42, -1, -1, 25, 26,
+ 67, -1, 29, 70, 71, 32, -1, -1, 55, -1,
+ -1, 58, -1, -1, -1, 42, -1, -1, -1, -1,
+ 67, -1, -1, 70, 71, -1, -1, -1, 55, -1,
+ -1, 58, -1, -1, -1, -1, -1, -1, -1, -1,
+ 67, -1, -1, 70, 71, 4, 5, 6, 7, 8,
+ 9, -1, -1, -1, -1, 14, 15, 16, 17, 18,
+ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
+ 29, 30, 31, 32, -1, 34, 35, -1, -1, -1,
+ -1, 40, 4, 5, 6, 7, 8, 9, -1, 48,
-1, -1, 14, 15, 16, 17, 18, 19, 20, 21,
22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- -1, 33, 34, -1, -1, -1, -1, 39, 4, 5,
- 6, 7, 8, 9, 46, -1, -1, -1, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
- 26, 27, 28, 29, 30, 31, -1, 33, 34, -1,
- -1, -1, -1, 39, -1, -1, 42, -1, 44, 4,
- 5, 6, 7, 8, 9, -1, -1, -1, -1, 14,
+ 32, -1, 34, 35, 36, -1, -1, -1, 40, 4,
+ 5, 6, 7, 8, 9, 47, -1, -1, -1, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 28, 29, 30, 31, -1, 33, 34,
- -1, -1, -1, -1, 39, 40, -1, -1, -1, 44,
- 4, 5, 6, 7, 8, 9, -1, -1, -1, -1,
- 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31, -1, 33,
- 34, -1, -1, -1, -1, 39, 40, -1, -1, -1,
- 44, 4, 5, 6, 7, 8, 9, -1, -1, -1,
- -1, 14, 15, 16, 17, 18, 19, 20, 21, 22,
- 23, 24, 25, 26, 27, 28, 29, 30, 31, -1,
- 33, 34, -1, -1, -1, -1, 39, -1, -1, 42,
- 4, 5, 6, 7, 8, 9, -1, -1, -1, -1,
+ 25, 26, 27, 28, 29, 30, 31, 32, -1, 34,
+ 35, 36, -1, -1, -1, 40, 4, 5, 6, 7,
+ 8, 9, 47, -1, -1, -1, 14, 15, 16, 17,
+ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
+ 28, 29, 30, 31, 32, -1, 34, 35, -1, -1,
+ -1, -1, 40, 4, 5, 6, 7, 8, 9, 47,
+ -1, -1, -1, 14, 15, 16, 17, 18, 19, 20,
+ 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+ 31, 32, -1, 34, 35, -1, -1, -1, -1, 40,
+ 4, 5, 6, 7, 8, 9, 47, -1, -1, -1,
14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31, -1, 33,
- 34, -1, -1, -1, -1, 39, -1, -1, 42, 4,
+ 24, 25, 26, 27, 28, 29, 30, 31, 32, -1,
+ 34, 35, -1, -1, -1, -1, 40, -1, -1, 43,
+ -1, 45, 4, 5, 6, 7, 8, 9, -1, -1,
+ -1, -1, 14, 15, 16, 17, 18, 19, 20, 21,
+ 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, -1, 34, 35, -1, -1, -1, -1, 40, 41,
+ -1, -1, -1, 45, 4, 5, 6, 7, 8, 9,
+ -1, -1, -1, -1, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
+ 30, 31, 32, -1, 34, 35, -1, -1, -1, -1,
+ 40, 41, -1, -1, -1, 45, 4, 5, 6, 7,
+ 8, 9, -1, -1, -1, -1, 14, 15, 16, 17,
+ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
+ 28, 29, 30, 31, 32, -1, 34, 35, -1, -1,
+ -1, -1, 40, -1, -1, 43, 4, 5, 6, 7,
+ 8, 9, -1, -1, -1, -1, 14, 15, 16, 17,
+ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
+ 28, 29, 30, 31, 32, -1, 34, 35, -1, -1,
+ -1, -1, 40, -1, -1, 43, 4, 5, 6, 7,
+ 8, 9, -1, -1, -1, -1, 14, 15, 16, 17,
+ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
+ 28, 29, 30, 31, 32, -1, 34, 35, -1, -1,
+ -1, -1, 40, -1, -1, 43, 4, 5, 6, 7,
+ 8, 9, -1, -1, -1, -1, 14, 15, 16, 17,
+ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
+ 28, 29, 30, 31, 32, -1, 34, 35, -1, -1,
+ -1, -1, 40, -1, -1, 43, 4, 5, 6, 7,
+ 8, 9, -1, -1, -1, -1, 14, 15, 16, 17,
+ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
+ 28, 29, 30, 31, 32, -1, 34, 35, -1, -1,
+ -1, -1, 40, 41, 4, 5, 6, 7, 8, 9,
+ -1, -1, -1, -1, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
+ 30, 31, 32, -1, 34, 35, -1, -1, -1, -1,
+ 40, 41, 4, 5, 6, 7, 8, 9, -1, -1,
+ -1, -1, 14, 15, 16, 17, 18, 19, 20, 21,
+ 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, -1, 34, 35, 36, -1, -1, -1, 40, 4,
5, 6, 7, 8, 9, -1, -1, -1, -1, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 28, 29, 30, 31, -1, 33, 34,
- -1, -1, -1, -1, 39, -1, -1, 42, 4, 5,
- 6, 7, 8, 9, -1, -1, -1, -1, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
- 26, 27, 28, 29, 30, 31, -1, 33, 34, -1,
- -1, -1, -1, 39, -1, -1, 42, 4, 5, 6,
- 7, 8, 9, -1, -1, -1, -1, 14, 15, 16,
- 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
- 27, 28, 29, 30, 31, -1, 33, 34, -1, -1,
- -1, -1, 39, 40, 4, 5, 6, 7, 8, 9,
+ 25, 26, 27, 28, 29, 30, 31, 32, -1, 34,
+ 35, -1, -1, -1, 4, 40, 6, 7, 8, 9,
-1, -1, -1, -1, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
- 30, 31, -1, 33, 34, -1, -1, -1, -1, 39,
- 40, 4, 5, 6, 7, 8, 9, -1, -1, -1,
+ 30, 31, 32, -1, 34, 35, -1, -1, -1, 39,
+ 40, 4, -1, 6, 7, 8, 9, -1, -1, -1,
-1, 14, 15, 16, 17, 18, 19, 20, 21, 22,
- 23, 24, 25, 26, 27, 28, 29, 30, 31, -1,
- 33, 34, 35, -1, -1, -1, 39, 4, 5, 6,
- 7, 8, 9, -1, -1, -1, -1, 14, 15, 16,
- 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
- 27, 28, 29, 30, 31, -1, 33, 34, -1, -1,
- -1, 4, 39, 6, 7, 8, 9, -1, -1, -1,
+ 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
+ -1, 34, 35, -1, -1, -1, 39, 40, 4, -1,
+ 6, 7, 8, 9, -1, -1, -1, -1, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
+ 26, 27, 28, 29, 30, 31, 32, -1, 34, 35,
+ -1, -1, -1, 39, 40, 4, -1, 6, 7, 8,
+ 9, -1, -1, -1, -1, 14, 15, 16, 17, 18,
+ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
+ 29, 30, 31, 32, -1, 34, 35, -1, -1, -1,
+ -1, 40, 5, 6, 7, 8, 9, -1, -1, -1,
-1, 14, 15, 16, 17, 18, 19, 20, 21, 22,
- 23, 24, 25, 26, 27, 28, 29, 30, 31, -1,
- 33, 34, -1, -1, -1, 38, 39, 4, -1, 6,
- 7, 8, 9, -1, -1, -1, -1, 14, 15, 16,
+ 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
+ -1, -1, 35, -1, -1, -1, -1, 40, 5, 6,
+ 7, 8, 9, -1, -1, -1, -1, -1, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
- 27, 28, 29, 30, 31, -1, 33, 34, -1, -1,
- -1, 38, 39, 4, -1, 6, 7, 8, 9, -1,
- -1, -1, -1, 14, 15, 16, 17, 18, 19, 20,
- 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
- 31, -1, 33, 34, -1, -1, -1, 38, 39, 4,
- -1, 6, 7, 8, 9, -1, -1, -1, -1, 14,
- 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 28, 29, 30, 31, -1, 33, 34,
- -1, -1, -1, -1, 39, 5, 6, 7, 8, 9,
- -1, -1, -1, -1, 14, 15, 16, 17, 18, 19,
- 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
- 30, 31, -1, -1, 34, -1, -1, -1, -1, 39,
- 5, 6, 7, 8, 9, -1, -1, -1, -1, -1,
- 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 28, 29, 30, 31, 5, 6, 7,
- 8, 9, -1, -1, 39, -1, -1, -1, 16, 17,
- 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
- 28, 29, 30, 31, 5, 6, 7, 8, 9, -1,
- -1, 39, -1, -1, -1, -1, 17, 18, 19, 20,
+ 27, 28, 29, 30, 31, 32, 5, 6, 7, 8,
+ 9, -1, -1, 40, -1, -1, -1, 16, 17, 18,
+ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
+ 29, 30, 31, 32, 5, 6, 7, 8, 9, -1,
+ -1, 40, -1, -1, -1, -1, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
- 31, 5, 6, 7, 8, 9, -1, -1, 39, -1,
- -1, -1, -1, -1, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31, 5, 6,
- 7, 8, 9, -1, -1, 39, 5, 6, 7, 8,
- 9, -1, -1, 20, 21, 22, 23, 24, 25, 26,
- 27, 28, 29, 30, 31, 24, 25, 26, 27, 28,
- 29, 30, 39, -1, -1, -1, -1, -1, -1, -1,
- 39
+ 31, 32, 5, 6, 7, 8, 9, -1, -1, 40,
+ -1, -1, -1, -1, -1, 18, 19, 20, 21, 22,
+ 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
+ 5, 6, 7, 8, 9, -1, -1, 40, -1, -1,
+ -1, -1, -1, -1, -1, 20, 21, 22, 23, 24,
+ 25, 26, 27, 28, 29, 30, 31, 32, 5, 6,
+ 7, 8, 9, -1, -1, 40, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 24, 25, 26,
+ 27, 28, 29, 30, 31, 32, 5, 6, 7, 8,
+ 9, -1, -1, 40, 5, 6, 7, 8, 9, -1,
+ -1, -1, -1, -1, -1, 24, 25, 26, 27, 28,
+ 29, 30, 31, -1, 25, 26, 27, 28, 29, 30,
+ 31, 40, -1, -1, -1, -1, -1, -1, -1, 40
};
/* 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,
- 31, 39, 41, 47, 49, 50, 51, 52, 53, 54,
- 55, 56, 57, 58, 60, 61, 62, 63, 64, 65,
- 66, 69, 70, 71, 72, 79, 80, 81, 82, 88,
- 89, 90, 91, 98, 105, 106, 108, 112, 118, 119,
- 120, 79, 112, 112, 112, 112, 112, 78, 79, 111,
- 112, 3, 70, 85, 86, 87, 79, 86, 3, 70,
- 3, 79, 85, 39, 3, 79, 88, 90, 79, 91,
- 41, 41, 118, 41, 47, 47, 47, 112, 112, 41,
- 43, 45, 92, 71, 72, 82, 118, 47, 3, 94,
- 95, 96, 41, 43, 45, 4, 5, 6, 7, 8,
+ 0, 77, 78, 0, 3, 7, 8, 25, 26, 29,
+ 32, 40, 42, 48, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 61, 62, 63, 64, 65, 66,
+ 67, 70, 71, 72, 73, 80, 81, 82, 83, 89,
+ 90, 91, 92, 99, 106, 107, 109, 113, 119, 120,
+ 121, 80, 113, 113, 113, 113, 113, 79, 80, 112,
+ 113, 3, 71, 86, 87, 88, 80, 87, 3, 71,
+ 3, 80, 86, 40, 3, 80, 89, 91, 80, 92,
+ 42, 42, 119, 42, 48, 48, 48, 113, 113, 42,
+ 44, 46, 93, 72, 73, 83, 119, 48, 3, 95,
+ 96, 97, 42, 44, 46, 4, 5, 6, 7, 8,
9, 14, 15, 16, 17, 18, 19, 20, 21, 22,
- 23, 24, 25, 26, 27, 28, 29, 30, 31, 33,
- 34, 39, 113, 114, 115, 47, 45, 40, 80, 42,
- 92, 42, 44, 42, 44, 3, 44, 47, 47, 47,
- 47, 47, 50, 49, 77, 98, 45, 3, 41, 45,
- 92, 93, 112, 112, 60, 89, 90, 119, 121, 124,
- 47, 3, 42, 48, 109, 110, 112, 3, 35, 46,
- 107, 112, 45, 41, 92, 44, 33, 42, 110, 3,
- 107, 112, 112, 10, 11, 116, 117, 112, 112, 112,
- 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
- 112, 112, 112, 112, 112, 112, 112, 112, 13, 112,
- 112, 115, 114, 112, 42, 112, 112, 3, 86, 3,
- 27, 83, 84, 27, 84, 40, 41, 42, 48, 67,
- 102, 103, 104, 112, 39, 41, 99, 45, 92, 42,
- 42, 41, 3, 47, 44, 33, 109, 42, 44, 48,
- 112, 46, 35, 46, 46, 42, 102, 95, 97, 99,
- 112, 42, 46, 46, 112, 12, 112, 5, 5, 35,
- 112, 40, 44, 114, 112, 3, 47, 44, 47, 47,
- 47, 42, 102, 120, 104, 42, 44, 48, 90, 46,
- 40, 44, 48, 97, 100, 101, 42, 102, 112, 118,
- 118, 112, 35, 112, 122, 119, 112, 109, 109, 112,
- 120, 42, 38, 112, 38, 112, 40, 112, 3, 83,
- 42, 120, 104, 104, 3, 96, 97, 40, 48, 44,
- 120, 42, 46, 59, 42, 112, 47, 120, 112, 38,
- 112, 40, 44, 96, 33, 40, 97, 97, 120, 118,
- 47, 42, 123, 124, 112, 112, 33, 97, 40, 118,
- 42, 40, 97, 118
+ 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
+ 34, 35, 40, 114, 115, 116, 48, 46, 41, 81,
+ 43, 93, 43, 45, 43, 45, 3, 45, 48, 48,
+ 48, 48, 48, 51, 50, 78, 99, 46, 3, 42,
+ 46, 93, 94, 113, 113, 61, 90, 91, 120, 122,
+ 125, 48, 3, 43, 49, 110, 111, 113, 3, 36,
+ 47, 108, 113, 46, 42, 93, 45, 34, 43, 111,
+ 3, 108, 113, 113, 10, 11, 117, 118, 113, 113,
+ 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
+ 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
+ 13, 113, 113, 116, 115, 113, 43, 113, 113, 3,
+ 87, 3, 27, 84, 85, 27, 85, 41, 42, 43,
+ 49, 68, 103, 104, 105, 113, 40, 42, 100, 46,
+ 93, 43, 43, 42, 3, 48, 45, 34, 110, 43,
+ 45, 49, 113, 47, 36, 47, 47, 43, 103, 96,
+ 98, 100, 113, 43, 47, 47, 113, 12, 113, 5,
+ 5, 36, 113, 41, 45, 115, 113, 3, 48, 45,
+ 48, 48, 48, 43, 103, 121, 105, 43, 45, 49,
+ 91, 47, 41, 45, 49, 98, 101, 102, 43, 103,
+ 113, 119, 119, 113, 36, 113, 123, 120, 113, 110,
+ 110, 113, 121, 43, 39, 113, 39, 113, 41, 113,
+ 3, 84, 43, 121, 105, 105, 3, 97, 98, 41,
+ 49, 45, 121, 43, 47, 60, 43, 113, 48, 121,
+ 113, 39, 113, 41, 45, 97, 34, 41, 98, 98,
+ 121, 119, 48, 43, 124, 125, 113, 113, 34, 98,
+ 41, 119, 43, 41, 98, 119
};
/* 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
+ 0, 76, 77, 78, 78, 79, 79, 80, 80, 80,
+ 81, 81, 81, 81, 82, 82, 82, 82, 83, 83,
+ 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
+ 84, 84, 85, 85, 86, 86, 87, 87, 88, 88,
+ 89, 90, 91, 91, 92, 93, 93, 94, 94, 95,
+ 95, 96, 96, 97, 97, 97, 97, 98, 98, 99,
+ 100, 100, 100, 100, 101, 101, 101, 102, 102, 103,
+ 103, 103, 103, 104, 104, 105, 105, 105, 105, 105,
+ 106, 106, 107, 107, 108, 108, 108, 108, 109, 109,
+ 109, 109, 109, 109, 109, 109, 109, 109, 109, 109,
+ 110, 110, 111, 111, 111, 111, 112, 112, 113, 113,
+ 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
+ 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
+ 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
+ 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
+ 113, 113, 113, 113, 113, 113, 113, 114, 114, 114,
+ 114, 114, 115, 115, 115, 115, 116, 116, 116, 116,
+ 116, 117, 117, 117, 117, 118, 118, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
+ 120, 121, 122, 122, 122, 123, 123, 124, 124, 125,
+ 125
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@@ -1240,13 +1264,14 @@ static const yytype_uint8 yyr2[] =
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
+ 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
};
@@ -1925,555 +1950,555 @@ yyreduce:
case 2:
#line 191 "camp.y" /* yacc.c:1646 */
{ absyntax::root = (yyvsp[0].b); }
-#line 1929 "camp.tab.c" /* yacc.c:1646 */
+#line 1954 "camp.tab.c" /* yacc.c:1646 */
break;
case 3:
#line 195 "camp.y" /* yacc.c:1646 */
{ (yyval.b) = new file(lexerPos(), false); }
-#line 1935 "camp.tab.c" /* yacc.c:1646 */
+#line 1960 "camp.tab.c" /* yacc.c:1646 */
break;
case 4:
#line 197 "camp.y" /* yacc.c:1646 */
{ (yyval.b) = (yyvsp[-1].b); (yyval.b)->add((yyvsp[0].run)); }
-#line 1941 "camp.tab.c" /* yacc.c:1646 */
+#line 1966 "camp.tab.c" /* yacc.c:1646 */
break;
case 5:
#line 201 "camp.y" /* yacc.c:1646 */
{ (yyval.b) = new block(lexerPos(), true); }
-#line 1947 "camp.tab.c" /* yacc.c:1646 */
+#line 1972 "camp.tab.c" /* yacc.c:1646 */
break;
case 6:
#line 203 "camp.y" /* yacc.c:1646 */
{ (yyval.b) = (yyvsp[-1].b); (yyval.b)->add((yyvsp[0].run)); }
-#line 1953 "camp.tab.c" /* yacc.c:1646 */
+#line 1978 "camp.tab.c" /* yacc.c:1646 */
break;
case 7:
#line 207 "camp.y" /* yacc.c:1646 */
{ (yyval.n) = new simpleName((yyvsp[0].ps).pos, (yyvsp[0].ps).sym); }
-#line 1959 "camp.tab.c" /* yacc.c:1646 */
+#line 1984 "camp.tab.c" /* yacc.c:1646 */
break;
case 8:
#line 208 "camp.y" /* yacc.c:1646 */
{ (yyval.n) = new qualifiedName((yyvsp[-1].pos), (yyvsp[-2].n), (yyvsp[0].ps).sym); }
-#line 1965 "camp.tab.c" /* yacc.c:1646 */
+#line 1990 "camp.tab.c" /* yacc.c:1646 */
break;
case 9:
#line 209 "camp.y" /* yacc.c:1646 */
{ (yyval.n) = new simpleName((yyvsp[0].ps).pos,
symbol::trans("operator answer")); }
-#line 1972 "camp.tab.c" /* yacc.c:1646 */
+#line 1997 "camp.tab.c" /* yacc.c:1646 */
break;
case 10:
#line 214 "camp.y" /* yacc.c:1646 */
{ (yyval.run) = (yyvsp[0].d); }
-#line 1978 "camp.tab.c" /* yacc.c:1646 */
+#line 2003 "camp.tab.c" /* yacc.c:1646 */
break;
case 11:
#line 215 "camp.y" /* yacc.c:1646 */
{ (yyval.run) = (yyvsp[0].s); }
-#line 1984 "camp.tab.c" /* yacc.c:1646 */
+#line 2009 "camp.tab.c" /* yacc.c:1646 */
break;
case 12:
#line 217 "camp.y" /* yacc.c:1646 */
{ (yyval.run) = new modifiedRunnable((yyvsp[-1].ml)->getPos(), (yyvsp[-1].ml), (yyvsp[0].d)); }
-#line 1990 "camp.tab.c" /* yacc.c:1646 */
+#line 2015 "camp.tab.c" /* yacc.c:1646 */
break;
case 13:
#line 219 "camp.y" /* yacc.c:1646 */
{ (yyval.run) = new modifiedRunnable((yyvsp[-1].ml)->getPos(), (yyvsp[-1].ml), (yyvsp[0].s)); }
-#line 1996 "camp.tab.c" /* yacc.c:1646 */
+#line 2021 "camp.tab.c" /* yacc.c:1646 */
break;
case 14:
#line 223 "camp.y" /* yacc.c:1646 */
{ (yyval.ml) = new modifierList((yyvsp[0].mod).pos); (yyval.ml)->add((yyvsp[0].mod).val); }
-#line 2002 "camp.tab.c" /* yacc.c:1646 */
+#line 2027 "camp.tab.c" /* yacc.c:1646 */
break;
case 15:
#line 224 "camp.y" /* yacc.c:1646 */
{ (yyval.ml) = new modifierList((yyvsp[0].perm).pos); (yyval.ml)->add((yyvsp[0].perm).val); }
-#line 2008 "camp.tab.c" /* yacc.c:1646 */
+#line 2033 "camp.tab.c" /* yacc.c:1646 */
break;
case 16:
#line 226 "camp.y" /* yacc.c:1646 */
{ (yyval.ml) = (yyvsp[-1].ml); (yyval.ml)->add((yyvsp[0].mod).val); }
-#line 2014 "camp.tab.c" /* yacc.c:1646 */
+#line 2039 "camp.tab.c" /* yacc.c:1646 */
break;
case 17:
#line 228 "camp.y" /* yacc.c:1646 */
{ (yyval.ml) = (yyvsp[-1].ml); (yyval.ml)->add((yyvsp[0].perm).val); }
-#line 2020 "camp.tab.c" /* yacc.c:1646 */
+#line 2045 "camp.tab.c" /* yacc.c:1646 */
break;
case 18:
#line 232 "camp.y" /* yacc.c:1646 */
{ (yyval.d) = (yyvsp[0].vd); }
-#line 2026 "camp.tab.c" /* yacc.c:1646 */
+#line 2051 "camp.tab.c" /* yacc.c:1646 */
break;
case 19:
#line 233 "camp.y" /* yacc.c:1646 */
{ (yyval.d) = (yyvsp[0].d); }
-#line 2032 "camp.tab.c" /* yacc.c:1646 */
+#line 2057 "camp.tab.c" /* yacc.c:1646 */
break;
case 20:
#line 234 "camp.y" /* yacc.c:1646 */
{ (yyval.d) = (yyvsp[0].d); }
-#line 2038 "camp.tab.c" /* yacc.c:1646 */
+#line 2063 "camp.tab.c" /* yacc.c:1646 */
break;
case 21:
#line 236 "camp.y" /* yacc.c:1646 */
{ (yyval.d) = new accessdec((yyvsp[-2].pos), (yyvsp[-1].ipl)); }
-#line 2044 "camp.tab.c" /* yacc.c:1646 */
+#line 2069 "camp.tab.c" /* yacc.c:1646 */
break;
case 22:
#line 238 "camp.y" /* yacc.c:1646 */
{ (yyval.d) = new unraveldec((yyvsp[-4].pos), (yyvsp[-3].n), (yyvsp[-1].ipl)); }
-#line 2050 "camp.tab.c" /* yacc.c:1646 */
+#line 2075 "camp.tab.c" /* yacc.c:1646 */
break;
case 23:
#line 240 "camp.y" /* yacc.c:1646 */
{ (yyval.d) = new unraveldec((yyvsp[-4].pos), (yyvsp[-3].n), WILDCARD); }
-#line 2056 "camp.tab.c" /* yacc.c:1646 */
+#line 2081 "camp.tab.c" /* yacc.c:1646 */
break;
case 24:
#line 241 "camp.y" /* yacc.c:1646 */
{ (yyval.d) = new unraveldec((yyvsp[-2].pos), (yyvsp[-1].n), WILDCARD); }
-#line 2062 "camp.tab.c" /* yacc.c:1646 */
+#line 2087 "camp.tab.c" /* yacc.c:1646 */
break;
case 25:
#line 243 "camp.y" /* yacc.c:1646 */
{ (yyval.d) = new fromaccessdec((yyvsp[-4].pos), (yyvsp[-3].ps).sym, (yyvsp[-1].ipl)); }
-#line 2068 "camp.tab.c" /* yacc.c:1646 */
+#line 2093 "camp.tab.c" /* yacc.c:1646 */
break;
case 26:
#line 245 "camp.y" /* yacc.c:1646 */
{ (yyval.d) = new fromaccessdec((yyvsp[-4].pos), (yyvsp[-3].ps).sym, WILDCARD); }
-#line 2074 "camp.tab.c" /* yacc.c:1646 */
+#line 2099 "camp.tab.c" /* yacc.c:1646 */
break;
case 27:
#line 247 "camp.y" /* yacc.c:1646 */
{ (yyval.d) = new importdec((yyvsp[-2].pos), (yyvsp[-1].ip)); }
-#line 2080 "camp.tab.c" /* yacc.c:1646 */
+#line 2105 "camp.tab.c" /* yacc.c:1646 */
break;
case 28:
#line 248 "camp.y" /* yacc.c:1646 */
{ (yyval.d) = new includedec((yyvsp[-2].pos), (yyvsp[-1].ps).sym); }
-#line 2086 "camp.tab.c" /* yacc.c:1646 */
+#line 2111 "camp.tab.c" /* yacc.c:1646 */
break;
case 29:
#line 250 "camp.y" /* yacc.c:1646 */
{ (yyval.d) = new includedec((yyvsp[-2].pos), (yyvsp[-1].stre)->getString()); }
-#line 2092 "camp.tab.c" /* yacc.c:1646 */
+#line 2117 "camp.tab.c" /* yacc.c:1646 */
break;
case 30:
#line 254 "camp.y" /* yacc.c:1646 */
{ (yyval.ip) = new idpair((yyvsp[0].ps).pos, (yyvsp[0].ps).sym); }
-#line 2098 "camp.tab.c" /* yacc.c:1646 */
+#line 2123 "camp.tab.c" /* yacc.c:1646 */
break;
case 31:
#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 2104 "camp.tab.c" /* yacc.c:1646 */
+#line 2129 "camp.tab.c" /* yacc.c:1646 */
break;
case 32:
#line 260 "camp.y" /* yacc.c:1646 */
{ (yyval.ipl) = new idpairlist(); (yyval.ipl)->add((yyvsp[0].ip)); }
-#line 2110 "camp.tab.c" /* yacc.c:1646 */
+#line 2135 "camp.tab.c" /* yacc.c:1646 */
break;
case 33:
#line 262 "camp.y" /* yacc.c:1646 */
{ (yyval.ipl) = (yyvsp[-2].ipl); (yyval.ipl)->add((yyvsp[0].ip)); }
-#line 2116 "camp.tab.c" /* yacc.c:1646 */
+#line 2141 "camp.tab.c" /* yacc.c:1646 */
break;
case 34:
#line 266 "camp.y" /* yacc.c:1646 */
{ (yyval.ps) = (yyvsp[0].ps); }
-#line 2122 "camp.tab.c" /* yacc.c:1646 */
+#line 2147 "camp.tab.c" /* yacc.c:1646 */
break;
case 35:
#line 267 "camp.y" /* yacc.c:1646 */
{ (yyval.ps).pos = (yyvsp[0].stre)->getPos();
(yyval.ps).sym = symbol::literalTrans((yyvsp[0].stre)->getString()); }
-#line 2129 "camp.tab.c" /* yacc.c:1646 */
+#line 2154 "camp.tab.c" /* yacc.c:1646 */
break;
case 36:
#line 272 "camp.y" /* yacc.c:1646 */
{ (yyval.ip) = new idpair((yyvsp[0].ps).pos, (yyvsp[0].ps).sym); }
-#line 2135 "camp.tab.c" /* yacc.c:1646 */
+#line 2160 "camp.tab.c" /* yacc.c:1646 */
break;
case 37:
#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 2141 "camp.tab.c" /* yacc.c:1646 */
+#line 2166 "camp.tab.c" /* yacc.c:1646 */
break;
case 38:
#line 278 "camp.y" /* yacc.c:1646 */
{ (yyval.ipl) = new idpairlist(); (yyval.ipl)->add((yyvsp[0].ip)); }
-#line 2147 "camp.tab.c" /* yacc.c:1646 */
+#line 2172 "camp.tab.c" /* yacc.c:1646 */
break;
case 39:
#line 280 "camp.y" /* yacc.c:1646 */
{ (yyval.ipl) = (yyvsp[-2].ipl); (yyval.ipl)->add((yyvsp[0].ip)); }
-#line 2153 "camp.tab.c" /* yacc.c:1646 */
+#line 2178 "camp.tab.c" /* yacc.c:1646 */
break;
case 40:
#line 284 "camp.y" /* yacc.c:1646 */
{ (yyval.vd) = (yyvsp[-1].vd); }
-#line 2159 "camp.tab.c" /* yacc.c:1646 */
+#line 2184 "camp.tab.c" /* yacc.c:1646 */
break;
case 41:
#line 288 "camp.y" /* yacc.c:1646 */
{ (yyval.vd) = new vardec((yyvsp[-1].t)->getPos(), (yyvsp[-1].t), (yyvsp[0].dil)); }
-#line 2165 "camp.tab.c" /* yacc.c:1646 */
+#line 2190 "camp.tab.c" /* yacc.c:1646 */
break;
case 42:
#line 292 "camp.y" /* yacc.c:1646 */
{ (yyval.t) = (yyvsp[0].t); }
-#line 2171 "camp.tab.c" /* yacc.c:1646 */
+#line 2196 "camp.tab.c" /* yacc.c:1646 */
break;
case 43:
#line 293 "camp.y" /* yacc.c:1646 */
{ (yyval.t) = new arrayTy((yyvsp[-1].n), (yyvsp[0].dim)); }
-#line 2177 "camp.tab.c" /* yacc.c:1646 */
+#line 2202 "camp.tab.c" /* yacc.c:1646 */
break;
case 44:
#line 297 "camp.y" /* yacc.c:1646 */
{ (yyval.t) = new nameTy((yyvsp[0].n)); }
-#line 2183 "camp.tab.c" /* yacc.c:1646 */
+#line 2208 "camp.tab.c" /* yacc.c:1646 */
break;
case 45:
#line 301 "camp.y" /* yacc.c:1646 */
{ (yyval.dim) = new dimensions((yyvsp[-1].pos)); }
-#line 2189 "camp.tab.c" /* yacc.c:1646 */
+#line 2214 "camp.tab.c" /* yacc.c:1646 */
break;
case 46:
#line 302 "camp.y" /* yacc.c:1646 */
{ (yyval.dim) = (yyvsp[-2].dim); (yyval.dim)->increase(); }
-#line 2195 "camp.tab.c" /* yacc.c:1646 */
+#line 2220 "camp.tab.c" /* yacc.c:1646 */
break;
case 47:
#line 306 "camp.y" /* yacc.c:1646 */
{ (yyval.elist) = new explist((yyvsp[-2].pos)); (yyval.elist)->add((yyvsp[-1].e)); }
-#line 2201 "camp.tab.c" /* yacc.c:1646 */
+#line 2226 "camp.tab.c" /* yacc.c:1646 */
break;
case 48:
#line 308 "camp.y" /* yacc.c:1646 */
{ (yyval.elist) = (yyvsp[-3].elist); (yyval.elist)->add((yyvsp[-1].e)); }
-#line 2207 "camp.tab.c" /* yacc.c:1646 */
+#line 2232 "camp.tab.c" /* yacc.c:1646 */
break;
case 49:
#line 312 "camp.y" /* yacc.c:1646 */
{ (yyval.dil) = new decidlist((yyvsp[0].di)->getPos()); (yyval.dil)->add((yyvsp[0].di)); }
-#line 2213 "camp.tab.c" /* yacc.c:1646 */
+#line 2238 "camp.tab.c" /* yacc.c:1646 */
break;
case 50:
#line 314 "camp.y" /* yacc.c:1646 */
{ (yyval.dil) = (yyvsp[-2].dil); (yyval.dil)->add((yyvsp[0].di)); }
-#line 2219 "camp.tab.c" /* yacc.c:1646 */
+#line 2244 "camp.tab.c" /* yacc.c:1646 */
break;
case 51:
#line 318 "camp.y" /* yacc.c:1646 */
{ (yyval.di) = new decid((yyvsp[0].dis)->getPos(), (yyvsp[0].dis)); }
-#line 2225 "camp.tab.c" /* yacc.c:1646 */
+#line 2250 "camp.tab.c" /* yacc.c:1646 */
break;
case 52:
#line 320 "camp.y" /* yacc.c:1646 */
{ (yyval.di) = new decid((yyvsp[-2].dis)->getPos(), (yyvsp[-2].dis), (yyvsp[0].vi)); }
-#line 2231 "camp.tab.c" /* yacc.c:1646 */
+#line 2256 "camp.tab.c" /* yacc.c:1646 */
break;
case 53:
#line 324 "camp.y" /* yacc.c:1646 */
{ (yyval.dis) = new decidstart((yyvsp[0].ps).pos, (yyvsp[0].ps).sym); }
-#line 2237 "camp.tab.c" /* yacc.c:1646 */
+#line 2262 "camp.tab.c" /* yacc.c:1646 */
break;
case 54:
#line 325 "camp.y" /* yacc.c:1646 */
{ (yyval.dis) = new decidstart((yyvsp[-1].ps).pos, (yyvsp[-1].ps).sym, (yyvsp[0].dim)); }
-#line 2243 "camp.tab.c" /* yacc.c:1646 */
+#line 2268 "camp.tab.c" /* yacc.c:1646 */
break;
case 55:
#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 2250 "camp.tab.c" /* yacc.c:1646 */
+#line 2275 "camp.tab.c" /* yacc.c:1646 */
break;
case 56:
#line 329 "camp.y" /* yacc.c:1646 */
{ (yyval.dis) = new fundecidstart((yyvsp[-3].ps).pos, (yyvsp[-3].ps).sym, 0, (yyvsp[-1].fls)); }
-#line 2256 "camp.tab.c" /* yacc.c:1646 */
+#line 2281 "camp.tab.c" /* yacc.c:1646 */
break;
case 57:
#line 333 "camp.y" /* yacc.c:1646 */
{ (yyval.vi) = (yyvsp[0].e); }
-#line 2262 "camp.tab.c" /* yacc.c:1646 */
+#line 2287 "camp.tab.c" /* yacc.c:1646 */
break;
case 58:
#line 334 "camp.y" /* yacc.c:1646 */
{ (yyval.vi) = (yyvsp[0].ai); }
-#line 2268 "camp.tab.c" /* yacc.c:1646 */
+#line 2293 "camp.tab.c" /* yacc.c:1646 */
break;
case 59:
#line 339 "camp.y" /* yacc.c:1646 */
{ (yyval.b) = (yyvsp[-1].b); }
-#line 2274 "camp.tab.c" /* yacc.c:1646 */
+#line 2299 "camp.tab.c" /* yacc.c:1646 */
break;
case 60:
#line 343 "camp.y" /* yacc.c:1646 */
{ (yyval.ai) = new arrayinit((yyvsp[-1].pos)); }
-#line 2280 "camp.tab.c" /* yacc.c:1646 */
+#line 2305 "camp.tab.c" /* yacc.c:1646 */
break;
case 61:
#line 345 "camp.y" /* yacc.c:1646 */
{ (yyval.ai) = new arrayinit((yyvsp[-3].pos)); (yyval.ai)->addRest((yyvsp[-1].vi)); }
-#line 2286 "camp.tab.c" /* yacc.c:1646 */
+#line 2311 "camp.tab.c" /* yacc.c:1646 */
break;
case 62:
#line 347 "camp.y" /* yacc.c:1646 */
{ (yyval.ai) = (yyvsp[-1].ai); }
-#line 2292 "camp.tab.c" /* yacc.c:1646 */
+#line 2317 "camp.tab.c" /* yacc.c:1646 */
break;
case 63:
#line 349 "camp.y" /* yacc.c:1646 */
{ (yyval.ai) = (yyvsp[-3].ai); (yyval.ai)->addRest((yyvsp[-1].vi)); }
-#line 2298 "camp.tab.c" /* yacc.c:1646 */
+#line 2323 "camp.tab.c" /* yacc.c:1646 */
break;
case 64:
#line 353 "camp.y" /* yacc.c:1646 */
{ (yyval.ai) = new arrayinit((yyvsp[0].pos)); }
-#line 2304 "camp.tab.c" /* yacc.c:1646 */
+#line 2329 "camp.tab.c" /* yacc.c:1646 */
break;
case 65:
#line 354 "camp.y" /* yacc.c:1646 */
{ (yyval.ai) = (yyvsp[0].ai); }
-#line 2310 "camp.tab.c" /* yacc.c:1646 */
+#line 2335 "camp.tab.c" /* yacc.c:1646 */
break;
case 66:
#line 355 "camp.y" /* yacc.c:1646 */
{ (yyval.ai) = (yyvsp[-1].ai); }
-#line 2316 "camp.tab.c" /* yacc.c:1646 */
+#line 2341 "camp.tab.c" /* yacc.c:1646 */
break;
case 67:
#line 359 "camp.y" /* yacc.c:1646 */
{ (yyval.ai) = new arrayinit((yyvsp[0].vi)->getPos());
(yyval.ai)->add((yyvsp[0].vi));}
-#line 2323 "camp.tab.c" /* yacc.c:1646 */
+#line 2348 "camp.tab.c" /* yacc.c:1646 */
break;
case 68:
#line 362 "camp.y" /* yacc.c:1646 */
{ (yyval.ai) = (yyvsp[-2].ai); (yyval.ai)->add((yyvsp[0].vi)); }
-#line 2329 "camp.tab.c" /* yacc.c:1646 */
+#line 2354 "camp.tab.c" /* yacc.c:1646 */
break;
case 69:
#line 366 "camp.y" /* yacc.c:1646 */
{ (yyval.fls) = new formals((yyvsp[0].fl)->getPos()); (yyval.fls)->add((yyvsp[0].fl)); }
-#line 2335 "camp.tab.c" /* yacc.c:1646 */
+#line 2360 "camp.tab.c" /* yacc.c:1646 */
break;
case 70:
#line 367 "camp.y" /* yacc.c:1646 */
{ (yyval.fls) = new formals((yyvsp[-1].pos)); (yyval.fls)->addRest((yyvsp[0].fl)); }
-#line 2341 "camp.tab.c" /* yacc.c:1646 */
+#line 2366 "camp.tab.c" /* yacc.c:1646 */
break;
case 71:
#line 369 "camp.y" /* yacc.c:1646 */
{ (yyval.fls) = (yyvsp[-2].fls); (yyval.fls)->add((yyvsp[0].fl)); }
-#line 2347 "camp.tab.c" /* yacc.c:1646 */
+#line 2372 "camp.tab.c" /* yacc.c:1646 */
break;
case 72:
#line 371 "camp.y" /* yacc.c:1646 */
{ (yyval.fls) = (yyvsp[-2].fls); (yyval.fls)->addRest((yyvsp[0].fl)); }
-#line 2353 "camp.tab.c" /* yacc.c:1646 */
+#line 2378 "camp.tab.c" /* yacc.c:1646 */
break;
case 73:
#line 375 "camp.y" /* yacc.c:1646 */
{ (yyval.boo) = true; }
-#line 2359 "camp.tab.c" /* yacc.c:1646 */
+#line 2384 "camp.tab.c" /* yacc.c:1646 */
break;
case 74:
#line 376 "camp.y" /* yacc.c:1646 */
{ (yyval.boo) = false; }
-#line 2365 "camp.tab.c" /* yacc.c:1646 */
+#line 2390 "camp.tab.c" /* yacc.c:1646 */
break;
case 75:
#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 2371 "camp.tab.c" /* yacc.c:1646 */
+#line 2396 "camp.tab.c" /* yacc.c:1646 */
break;
case 76:
#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 2377 "camp.tab.c" /* yacc.c:1646 */
+#line 2402 "camp.tab.c" /* yacc.c:1646 */
break;
case 77:
#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 2383 "camp.tab.c" /* yacc.c:1646 */
+#line 2408 "camp.tab.c" /* yacc.c:1646 */
break;
case 78:
#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 2390 "camp.tab.c" /* yacc.c:1646 */
+#line 2415 "camp.tab.c" /* yacc.c:1646 */
break;
case 79:
#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 2397 "camp.tab.c" /* yacc.c:1646 */
+#line 2422 "camp.tab.c" /* yacc.c:1646 */
break;
case 80:
#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 2403 "camp.tab.c" /* yacc.c:1646 */
+#line 2428 "camp.tab.c" /* yacc.c:1646 */
break;
case 81:
#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 2409 "camp.tab.c" /* yacc.c:1646 */
+#line 2434 "camp.tab.c" /* yacc.c:1646 */
break;
case 82:
#line 403 "camp.y" /* yacc.c:1646 */
{ (yyval.d) = new recorddec((yyvsp[-2].pos), (yyvsp[-1].ps).sym, (yyvsp[0].b)); }
-#line 2415 "camp.tab.c" /* yacc.c:1646 */
+#line 2440 "camp.tab.c" /* yacc.c:1646 */
break;
case 83:
#line 404 "camp.y" /* yacc.c:1646 */
{ (yyval.d) = new typedec((yyvsp[-1].pos), (yyvsp[0].vd)); }
-#line 2421 "camp.tab.c" /* yacc.c:1646 */
+#line 2446 "camp.tab.c" /* yacc.c:1646 */
break;
case 84:
#line 408 "camp.y" /* yacc.c:1646 */
{ (yyval.slice) = new slice((yyvsp[0].pos), 0, 0); }
-#line 2427 "camp.tab.c" /* yacc.c:1646 */
+#line 2452 "camp.tab.c" /* yacc.c:1646 */
break;
case 85:
#line 409 "camp.y" /* yacc.c:1646 */
{ (yyval.slice) = new slice((yyvsp[0].pos), (yyvsp[-1].e), 0); }
-#line 2433 "camp.tab.c" /* yacc.c:1646 */
+#line 2458 "camp.tab.c" /* yacc.c:1646 */
break;
case 86:
#line 410 "camp.y" /* yacc.c:1646 */
{ (yyval.slice) = new slice((yyvsp[-1].pos), 0, (yyvsp[0].e)); }
-#line 2439 "camp.tab.c" /* yacc.c:1646 */
+#line 2464 "camp.tab.c" /* yacc.c:1646 */
break;
case 87:
#line 411 "camp.y" /* yacc.c:1646 */
{ (yyval.slice) = new slice((yyvsp[-1].pos), (yyvsp[-2].e), (yyvsp[0].e)); }
-#line 2445 "camp.tab.c" /* yacc.c:1646 */
+#line 2470 "camp.tab.c" /* yacc.c:1646 */
break;
case 88:
#line 415 "camp.y" /* yacc.c:1646 */
{ (yyval.e) = new fieldExp((yyvsp[-1].pos), (yyvsp[-2].e), (yyvsp[0].ps).sym); }
-#line 2451 "camp.tab.c" /* yacc.c:1646 */
+#line 2476 "camp.tab.c" /* yacc.c:1646 */
break;
case 89:
#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 2458 "camp.tab.c" /* yacc.c:1646 */
+#line 2483 "camp.tab.c" /* yacc.c:1646 */
break;
case 90:
#line 418 "camp.y" /* yacc.c:1646 */
{ (yyval.e) = new subscriptExp((yyvsp[-2].pos), (yyvsp[-3].e), (yyvsp[-1].e)); }
-#line 2464 "camp.tab.c" /* yacc.c:1646 */
+#line 2489 "camp.tab.c" /* yacc.c:1646 */
break;
case 91:
#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 2471 "camp.tab.c" /* yacc.c:1646 */
+#line 2496 "camp.tab.c" /* yacc.c:1646 */
break;
case 92:
#line 421 "camp.y" /* yacc.c:1646 */
{ (yyval.e) = new sliceExp((yyvsp[-2].pos), (yyvsp[-3].e), (yyvsp[-1].slice)); }
-#line 2477 "camp.tab.c" /* yacc.c:1646 */
+#line 2502 "camp.tab.c" /* yacc.c:1646 */
break;
case 93:
@@ -2481,7 +2506,7 @@ yyreduce:
{ (yyval.e) = new callExp((yyvsp[-1].pos),
new nameExp((yyvsp[-2].n)->getPos(), (yyvsp[-2].n)),
new arglist()); }
-#line 2485 "camp.tab.c" /* yacc.c:1646 */
+#line 2510 "camp.tab.c" /* yacc.c:1646 */
break;
case 94:
@@ -2489,660 +2514,666 @@ yyreduce:
{ (yyval.e) = new callExp((yyvsp[-2].pos),
new nameExp((yyvsp[-3].n)->getPos(), (yyvsp[-3].n)),
(yyvsp[-1].alist)); }
-#line 2493 "camp.tab.c" /* yacc.c:1646 */
+#line 2518 "camp.tab.c" /* yacc.c:1646 */
break;
case 95:
#line 429 "camp.y" /* yacc.c:1646 */
{ (yyval.e) = new callExp((yyvsp[-1].pos), (yyvsp[-2].e), new arglist()); }
-#line 2499 "camp.tab.c" /* yacc.c:1646 */
+#line 2524 "camp.tab.c" /* yacc.c:1646 */
break;
case 96:
#line 431 "camp.y" /* yacc.c:1646 */
{ (yyval.e) = new callExp((yyvsp[-2].pos), (yyvsp[-3].e), (yyvsp[-1].alist)); }
-#line 2505 "camp.tab.c" /* yacc.c:1646 */
+#line 2530 "camp.tab.c" /* yacc.c:1646 */
break;
case 97:
#line 433 "camp.y" /* yacc.c:1646 */
{ (yyval.e) = (yyvsp[-1].e); }
-#line 2511 "camp.tab.c" /* yacc.c:1646 */
+#line 2536 "camp.tab.c" /* yacc.c:1646 */
break;
case 98:
#line 435 "camp.y" /* yacc.c:1646 */
{ (yyval.e) = new nameExp((yyvsp[-1].n)->getPos(), (yyvsp[-1].n)); }
-#line 2517 "camp.tab.c" /* yacc.c:1646 */
+#line 2542 "camp.tab.c" /* yacc.c:1646 */
break;
case 99:
#line 436 "camp.y" /* yacc.c:1646 */
{ (yyval.e) = new thisExp((yyvsp[0].pos)); }
-#line 2523 "camp.tab.c" /* yacc.c:1646 */
+#line 2548 "camp.tab.c" /* yacc.c:1646 */
break;
case 100:
#line 440 "camp.y" /* yacc.c:1646 */
{ (yyval.arg).name = symbol::nullsym; (yyval.arg).val=(yyvsp[0].e); }
-#line 2529 "camp.tab.c" /* yacc.c:1646 */
+#line 2554 "camp.tab.c" /* yacc.c:1646 */
break;
case 101:
#line 441 "camp.y" /* yacc.c:1646 */
{ (yyval.arg).name = (yyvsp[-2].ps).sym; (yyval.arg).val=(yyvsp[0].e); }
-#line 2535 "camp.tab.c" /* yacc.c:1646 */
+#line 2560 "camp.tab.c" /* yacc.c:1646 */
break;
case 102:
#line 445 "camp.y" /* yacc.c:1646 */
{ (yyval.alist) = new arglist(); (yyval.alist)->add((yyvsp[0].arg)); }
-#line 2541 "camp.tab.c" /* yacc.c:1646 */
+#line 2566 "camp.tab.c" /* yacc.c:1646 */
break;
case 103:
#line 447 "camp.y" /* yacc.c:1646 */
{ (yyval.alist) = new arglist(); (yyval.alist)->addRest((yyvsp[0].arg)); }
-#line 2547 "camp.tab.c" /* yacc.c:1646 */
+#line 2572 "camp.tab.c" /* yacc.c:1646 */
break;
case 104:
#line 449 "camp.y" /* yacc.c:1646 */
{ (yyval.alist) = (yyvsp[-2].alist); (yyval.alist)->add((yyvsp[0].arg)); }
-#line 2553 "camp.tab.c" /* yacc.c:1646 */
+#line 2578 "camp.tab.c" /* yacc.c:1646 */
break;
case 105:
#line 451 "camp.y" /* yacc.c:1646 */
{ (yyval.alist) = (yyvsp[-2].alist); (yyval.alist)->addRest((yyvsp[0].arg)); }
-#line 2559 "camp.tab.c" /* yacc.c:1646 */
+#line 2584 "camp.tab.c" /* yacc.c:1646 */
break;
case 106:
#line 456 "camp.y" /* yacc.c:1646 */
{ (yyval.alist) = new arglist(); (yyval.alist)->add((yyvsp[-2].e)); (yyval.alist)->add((yyvsp[0].e)); }
-#line 2565 "camp.tab.c" /* yacc.c:1646 */
+#line 2590 "camp.tab.c" /* yacc.c:1646 */
break;
case 107:
#line 457 "camp.y" /* yacc.c:1646 */
{ (yyval.alist) = (yyvsp[-2].alist); (yyval.alist)->add((yyvsp[0].e)); }
-#line 2571 "camp.tab.c" /* yacc.c:1646 */
+#line 2596 "camp.tab.c" /* yacc.c:1646 */
break;
case 108:
#line 461 "camp.y" /* yacc.c:1646 */
{ (yyval.e) = new nameExp((yyvsp[0].n)->getPos(), (yyvsp[0].n)); }
-#line 2577 "camp.tab.c" /* yacc.c:1646 */
+#line 2602 "camp.tab.c" /* yacc.c:1646 */
break;
case 109:
#line 462 "camp.y" /* yacc.c:1646 */
{ (yyval.e) = (yyvsp[0].e); }
-#line 2583 "camp.tab.c" /* yacc.c:1646 */
+#line 2608 "camp.tab.c" /* yacc.c:1646 */
break;
case 110:
#line 463 "camp.y" /* yacc.c:1646 */
{ (yyval.e) = (yyvsp[0].e); }
-#line 2589 "camp.tab.c" /* yacc.c:1646 */
+#line 2614 "camp.tab.c" /* yacc.c:1646 */
break;
case 111:
#line 464 "camp.y" /* yacc.c:1646 */
{ (yyval.e) = (yyvsp[0].stre); }
-#line 2595 "camp.tab.c" /* yacc.c:1646 */
+#line 2620 "camp.tab.c" /* yacc.c:1646 */
break;
case 112:
#line 466 "camp.y" /* yacc.c:1646 */
{ (yyval.e) = new scaleExp((yyvsp[-1].e)->getPos(), (yyvsp[-1].e), (yyvsp[0].e)); }
-#line 2601 "camp.tab.c" /* yacc.c:1646 */
+#line 2626 "camp.tab.c" /* yacc.c:1646 */
break;
case 113:
#line 468 "camp.y" /* yacc.c:1646 */
{ (yyval.e) = new castExp((yyvsp[-2].n)->getPos(), new nameTy((yyvsp[-2].n)), (yyvsp[0].e)); }
-#line 2607 "camp.tab.c" /* yacc.c:1646 */
+#line 2632 "camp.tab.c" /* yacc.c:1646 */
break;
case 114:
#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 2613 "camp.tab.c" /* yacc.c:1646 */
+#line 2638 "camp.tab.c" /* yacc.c:1646 */
break;
case 115:
#line 472 "camp.y" /* yacc.c:1646 */
{ (yyval.e) = new unaryExp((yyvsp[-1].ps).pos, (yyvsp[0].e), (yyvsp[-1].ps).sym); }
-#line 2619 "camp.tab.c" /* yacc.c:1646 */
+#line 2644 "camp.tab.c" /* yacc.c:1646 */
break;
case 116:
#line 474 "camp.y" /* yacc.c:1646 */
{ (yyval.e) = new unaryExp((yyvsp[-1].ps).pos, (yyvsp[0].e), (yyvsp[-1].ps).sym); }
-#line 2625 "camp.tab.c" /* yacc.c:1646 */
+#line 2650 "camp.tab.c" /* yacc.c:1646 */
break;
case 117:
#line 475 "camp.y" /* yacc.c:1646 */
{ (yyval.e) = new unaryExp((yyvsp[-1].ps).pos, (yyvsp[0].e), (yyvsp[-1].ps).sym); }
-#line 2631 "camp.tab.c" /* yacc.c:1646 */
+#line 2656 "camp.tab.c" /* yacc.c:1646 */
break;
case 118:
#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 2637 "camp.tab.c" /* yacc.c:1646 */
+#line 2662 "camp.tab.c" /* yacc.c:1646 */
break;
case 119:
#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 2643 "camp.tab.c" /* yacc.c:1646 */
+#line 2668 "camp.tab.c" /* yacc.c:1646 */
break;
case 120:
#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 2649 "camp.tab.c" /* yacc.c:1646 */
+#line 2674 "camp.tab.c" /* yacc.c:1646 */
break;
case 121:
#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 2655 "camp.tab.c" /* yacc.c:1646 */
+#line 2680 "camp.tab.c" /* yacc.c:1646 */
break;
case 122:
#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 2661 "camp.tab.c" /* yacc.c:1646 */
+#line 2686 "camp.tab.c" /* yacc.c:1646 */
break;
case 123:
#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 2667 "camp.tab.c" /* yacc.c:1646 */
+#line 2692 "camp.tab.c" /* yacc.c:1646 */
break;
case 124:
#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 2673 "camp.tab.c" /* yacc.c:1646 */
+#line 2698 "camp.tab.c" /* yacc.c:1646 */
break;
case 125:
#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 2679 "camp.tab.c" /* yacc.c:1646 */
+#line 2704 "camp.tab.c" /* yacc.c:1646 */
break;
case 126:
#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 2685 "camp.tab.c" /* yacc.c:1646 */
+#line 2710 "camp.tab.c" /* yacc.c:1646 */
break;
case 127:
#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 2691 "camp.tab.c" /* yacc.c:1646 */
+#line 2716 "camp.tab.c" /* yacc.c:1646 */
break;
case 128:
#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 2697 "camp.tab.c" /* yacc.c:1646 */
+ { (yyval.e) = new binaryExp((yyvsp[-1].ps).pos, (yyvsp[-2].e), (yyvsp[-1].ps).sym, (yyvsp[0].e)); }
+#line 2722 "camp.tab.c" /* yacc.c:1646 */
break;
case 129:
#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 2703 "camp.tab.c" /* yacc.c:1646 */
+#line 2728 "camp.tab.c" /* yacc.c:1646 */
break;
case 130:
#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 2709 "camp.tab.c" /* yacc.c:1646 */
+ { (yyval.e) = new equalityExp((yyvsp[-1].ps).pos, (yyvsp[-2].e), (yyvsp[-1].ps).sym, (yyvsp[0].e)); }
+#line 2734 "camp.tab.c" /* yacc.c:1646 */
break;
case 131:
#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 2715 "camp.tab.c" /* yacc.c:1646 */
+ { (yyval.e) = new andExp((yyvsp[-1].ps).pos, (yyvsp[-2].e), (yyvsp[-1].ps).sym, (yyvsp[0].e)); }
+#line 2740 "camp.tab.c" /* yacc.c:1646 */
break;
case 132:
#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 2721 "camp.tab.c" /* yacc.c:1646 */
+ { (yyval.e) = new orExp((yyvsp[-1].ps).pos, (yyvsp[-2].e), (yyvsp[-1].ps).sym, (yyvsp[0].e)); }
+#line 2746 "camp.tab.c" /* yacc.c:1646 */
break;
case 133:
#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 2727 "camp.tab.c" /* yacc.c:1646 */
+#line 2752 "camp.tab.c" /* yacc.c:1646 */
break;
case 134:
#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 2733 "camp.tab.c" /* yacc.c:1646 */
+#line 2758 "camp.tab.c" /* yacc.c:1646 */
break;
case 135:
#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 2739 "camp.tab.c" /* yacc.c:1646 */
+#line 2764 "camp.tab.c" /* yacc.c:1646 */
break;
case 136:
#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 2745 "camp.tab.c" /* yacc.c:1646 */
+#line 2770 "camp.tab.c" /* yacc.c:1646 */
break;
case 137:
-#line 496 "camp.y" /* yacc.c:1646 */
- { (yyval.e) = new newRecordExp((yyvsp[-1].pos), (yyvsp[0].t)); }
-#line 2751 "camp.tab.c" /* yacc.c:1646 */
+#line 495 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new binaryExp((yyvsp[-1].ps).pos, (yyvsp[-2].e), (yyvsp[-1].ps).sym, (yyvsp[0].e)); }
+#line 2776 "camp.tab.c" /* yacc.c:1646 */
break;
case 138:
-#line 498 "camp.y" /* yacc.c:1646 */
- { (yyval.e) = new newArrayExp((yyvsp[-2].pos), (yyvsp[-1].t), (yyvsp[0].elist), 0, 0); }
-#line 2757 "camp.tab.c" /* yacc.c:1646 */
+#line 497 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new newRecordExp((yyvsp[-1].pos), (yyvsp[0].t)); }
+#line 2782 "camp.tab.c" /* yacc.c:1646 */
break;
case 139:
-#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 2763 "camp.tab.c" /* yacc.c:1646 */
+#line 499 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new newArrayExp((yyvsp[-2].pos), (yyvsp[-1].t), (yyvsp[0].elist), 0, 0); }
+#line 2788 "camp.tab.c" /* yacc.c:1646 */
break;
case 140:
-#line 502 "camp.y" /* yacc.c:1646 */
- { (yyval.e) = new newArrayExp((yyvsp[-2].pos), (yyvsp[-1].t), 0, (yyvsp[0].dim), 0); }
-#line 2769 "camp.tab.c" /* yacc.c:1646 */
+#line 501 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new newArrayExp((yyvsp[-3].pos), (yyvsp[-2].t), (yyvsp[-1].elist), (yyvsp[0].dim), 0); }
+#line 2794 "camp.tab.c" /* yacc.c:1646 */
break;
case 141:
-#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 2775 "camp.tab.c" /* yacc.c:1646 */
+#line 503 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new newArrayExp((yyvsp[-2].pos), (yyvsp[-1].t), 0, (yyvsp[0].dim), 0); }
+#line 2800 "camp.tab.c" /* yacc.c:1646 */
break;
case 142:
-#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 2781 "camp.tab.c" /* yacc.c:1646 */
+#line 505 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new newArrayExp((yyvsp[-3].pos), (yyvsp[-2].t), 0, (yyvsp[-1].dim), (yyvsp[0].ai)); }
+#line 2806 "camp.tab.c" /* yacc.c:1646 */
break;
case 143:
-#line 508 "camp.y" /* yacc.c:1646 */
+#line 507 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new newFunctionExp((yyvsp[-4].pos), (yyvsp[-3].t), new formals((yyvsp[-2].pos)), (yyvsp[0].s)); }
+#line 2812 "camp.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 144:
+#line 509 "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 2790 "camp.tab.c" /* yacc.c:1646 */
+#line 2821 "camp.tab.c" /* yacc.c:1646 */
break;
- case 144:
-#line 513 "camp.y" /* yacc.c:1646 */
+ case 145:
+#line 514 "camp.y" /* yacc.c:1646 */
{ (yyval.e) = new newFunctionExp((yyvsp[-5].pos), (yyvsp[-4].t), (yyvsp[-2].fls), (yyvsp[0].s)); }
-#line 2796 "camp.tab.c" /* yacc.c:1646 */
+#line 2827 "camp.tab.c" /* yacc.c:1646 */
break;
- case 145:
-#line 515 "camp.y" /* yacc.c:1646 */
+ case 146:
+#line 516 "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 2805 "camp.tab.c" /* yacc.c:1646 */
- break;
-
- case 146:
-#line 520 "camp.y" /* yacc.c:1646 */
- { (yyval.e) = new conditionalExp((yyvsp[-3].pos), (yyvsp[-4].e), (yyvsp[-2].e), (yyvsp[0].e)); }
-#line 2811 "camp.tab.c" /* yacc.c:1646 */
+#line 2836 "camp.tab.c" /* yacc.c:1646 */
break;
case 147:
#line 521 "camp.y" /* yacc.c:1646 */
- { (yyval.e) = new assignExp((yyvsp[-1].pos), (yyvsp[-2].e), (yyvsp[0].e)); }
-#line 2817 "camp.tab.c" /* yacc.c:1646 */
+ { (yyval.e) = new conditionalExp((yyvsp[-3].pos), (yyvsp[-4].e), (yyvsp[-2].e), (yyvsp[0].e)); }
+#line 2842 "camp.tab.c" /* yacc.c:1646 */
break;
case 148:
#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 2823 "camp.tab.c" /* yacc.c:1646 */
+ { (yyval.e) = new assignExp((yyvsp[-1].pos), (yyvsp[-2].e), (yyvsp[0].e)); }
+#line 2848 "camp.tab.c" /* yacc.c:1646 */
break;
case 149:
-#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 2829 "camp.tab.c" /* yacc.c:1646 */
+#line 523 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new callExp((yyvsp[-2].pos), new nameExp((yyvsp[-2].pos), SYM_TUPLE), (yyvsp[-1].alist)); }
+#line 2854 "camp.tab.c" /* yacc.c:1646 */
break;
case 150:
-#line 526 "camp.y" /* yacc.c:1646 */
+#line 525 "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 2860 "camp.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 151:
+#line 527 "camp.y" /* yacc.c:1646 */
{ (yyvsp[0].se)->setSide(camp::OUT);
joinExp *jexp =
new joinExp((yyvsp[0].se)->getPos(), SYM_DOTS);
(yyval.e)=jexp;
jexp->pushBack((yyvsp[-1].e)); jexp->pushBack((yyvsp[0].se)); }
-#line 2839 "camp.tab.c" /* yacc.c:1646 */
+#line 2870 "camp.tab.c" /* yacc.c:1646 */
break;
- case 151:
-#line 532 "camp.y" /* yacc.c:1646 */
+ case 152:
+#line 533 "camp.y" /* yacc.c:1646 */
{ (yyval.e) = new prefixExp((yyvsp[-1].ps).pos, (yyvsp[0].e), SYM_PLUS); }
-#line 2845 "camp.tab.c" /* yacc.c:1646 */
+#line 2876 "camp.tab.c" /* yacc.c:1646 */
break;
- case 152:
-#line 534 "camp.y" /* yacc.c:1646 */
+ case 153:
+#line 535 "camp.y" /* yacc.c:1646 */
{ (yyval.e) = new prefixExp((yyvsp[-1].ps).pos, (yyvsp[0].e), SYM_MINUS); }
-#line 2851 "camp.tab.c" /* yacc.c:1646 */
+#line 2882 "camp.tab.c" /* yacc.c:1646 */
break;
- case 153:
-#line 537 "camp.y" /* yacc.c:1646 */
+ case 154:
+#line 538 "camp.y" /* yacc.c:1646 */
{ (yyval.e) = new postfixExp((yyvsp[0].ps).pos, (yyvsp[-1].e), SYM_PLUS); }
-#line 2857 "camp.tab.c" /* yacc.c:1646 */
+#line 2888 "camp.tab.c" /* yacc.c:1646 */
break;
- case 154:
-#line 538 "camp.y" /* yacc.c:1646 */
+ case 155:
+#line 539 "camp.y" /* yacc.c:1646 */
{ (yyval.e) = new selfExp((yyvsp[-1].ps).pos, (yyvsp[-2].e), (yyvsp[-1].ps).sym, (yyvsp[0].e)); }
-#line 2863 "camp.tab.c" /* yacc.c:1646 */
+#line 2894 "camp.tab.c" /* yacc.c:1646 */
break;
- case 155:
-#line 540 "camp.y" /* yacc.c:1646 */
+ case 156:
+#line 541 "camp.y" /* yacc.c:1646 */
{ (yyval.e) = new quoteExp((yyvsp[-3].pos), (yyvsp[-1].b)); }
-#line 2869 "camp.tab.c" /* yacc.c:1646 */
+#line 2900 "camp.tab.c" /* yacc.c:1646 */
break;
- case 156:
-#line 546 "camp.y" /* yacc.c:1646 */
+ case 157:
+#line 547 "camp.y" /* yacc.c:1646 */
{ (yyval.j) = new joinExp((yyvsp[0].ps).pos,(yyvsp[0].ps).sym); }
-#line 2875 "camp.tab.c" /* yacc.c:1646 */
+#line 2906 "camp.tab.c" /* yacc.c:1646 */
break;
- case 157:
-#line 548 "camp.y" /* yacc.c:1646 */
+ case 158:
+#line 549 "camp.y" /* yacc.c:1646 */
{ (yyval.j) = (yyvsp[0].j); }
-#line 2881 "camp.tab.c" /* yacc.c:1646 */
+#line 2912 "camp.tab.c" /* yacc.c:1646 */
break;
- case 158:
-#line 550 "camp.y" /* yacc.c:1646 */
+ case 159:
+#line 551 "camp.y" /* yacc.c:1646 */
{ (yyvsp[-1].se)->setSide(camp::OUT);
(yyval.j) = (yyvsp[0].j); (yyval.j)->pushFront((yyvsp[-1].se)); }
-#line 2888 "camp.tab.c" /* yacc.c:1646 */
+#line 2919 "camp.tab.c" /* yacc.c:1646 */
break;
- case 159:
-#line 553 "camp.y" /* yacc.c:1646 */
+ case 160:
+#line 554 "camp.y" /* yacc.c:1646 */
{ (yyvsp[0].se)->setSide(camp::IN);
(yyval.j) = (yyvsp[-1].j); (yyval.j)->pushBack((yyvsp[0].se)); }
-#line 2895 "camp.tab.c" /* yacc.c:1646 */
+#line 2926 "camp.tab.c" /* yacc.c:1646 */
break;
- case 160:
-#line 556 "camp.y" /* yacc.c:1646 */
+ case 161:
+#line 557 "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 2902 "camp.tab.c" /* yacc.c:1646 */
+#line 2933 "camp.tab.c" /* yacc.c:1646 */
break;
- case 161:
-#line 561 "camp.y" /* yacc.c:1646 */
+ case 162:
+#line 562 "camp.y" /* yacc.c:1646 */
{ (yyval.se) = new specExp((yyvsp[-2].ps).pos, (yyvsp[-2].ps).sym, (yyvsp[-1].e)); }
-#line 2908 "camp.tab.c" /* yacc.c:1646 */
+#line 2939 "camp.tab.c" /* yacc.c:1646 */
break;
- case 162:
-#line 562 "camp.y" /* yacc.c:1646 */
+ case 163:
+#line 563 "camp.y" /* yacc.c:1646 */
{ (yyval.se) = new specExp((yyvsp[-2].pos), symbol::opTrans("spec"), (yyvsp[-1].e)); }
-#line 2914 "camp.tab.c" /* yacc.c:1646 */
+#line 2945 "camp.tab.c" /* yacc.c:1646 */
break;
- case 163:
-#line 564 "camp.y" /* yacc.c:1646 */
+ case 164:
+#line 565 "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 2921 "camp.tab.c" /* yacc.c:1646 */
+#line 2952 "camp.tab.c" /* yacc.c:1646 */
break;
- case 164:
-#line 567 "camp.y" /* yacc.c:1646 */
+ case 165:
+#line 568 "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 2928 "camp.tab.c" /* yacc.c:1646 */
- break;
-
- case 165:
-#line 572 "camp.y" /* yacc.c:1646 */
- { (yyval.j) = new joinExp((yyvsp[0].ps).pos, (yyvsp[0].ps).sym); }
-#line 2934 "camp.tab.c" /* yacc.c:1646 */
+#line 2959 "camp.tab.c" /* yacc.c:1646 */
break;
case 166:
-#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 2940 "camp.tab.c" /* yacc.c:1646 */
+#line 573 "camp.y" /* yacc.c:1646 */
+ { (yyval.j) = new joinExp((yyvsp[0].ps).pos, (yyvsp[0].ps).sym); }
+#line 2965 "camp.tab.c" /* yacc.c:1646 */
break;
case 167:
-#line 576 "camp.y" /* yacc.c:1646 */
+#line 575 "camp.y" /* yacc.c:1646 */
{ (yyval.j) = new joinExp((yyvsp[-2].ps).pos, (yyvsp[-2].ps).sym); (yyval.j)->pushBack((yyvsp[-1].e)); }
-#line 2946 "camp.tab.c" /* yacc.c:1646 */
+#line 2971 "camp.tab.c" /* yacc.c:1646 */
break;
case 168:
#line 577 "camp.y" /* yacc.c:1646 */
- { (yyval.j) = new joinExp((yyvsp[0].ps).pos, (yyvsp[0].ps).sym); }
-#line 2952 "camp.tab.c" /* yacc.c:1646 */
+ { (yyval.j) = new joinExp((yyvsp[-2].ps).pos, (yyvsp[-2].ps).sym); (yyval.j)->pushBack((yyvsp[-1].e)); }
+#line 2977 "camp.tab.c" /* yacc.c:1646 */
break;
case 169:
#line 578 "camp.y" /* yacc.c:1646 */
{ (yyval.j) = new joinExp((yyvsp[0].ps).pos, (yyvsp[0].ps).sym); }
-#line 2958 "camp.tab.c" /* yacc.c:1646 */
+#line 2983 "camp.tab.c" /* yacc.c:1646 */
break;
case 170:
-#line 582 "camp.y" /* yacc.c:1646 */
+#line 579 "camp.y" /* yacc.c:1646 */
+ { (yyval.j) = new joinExp((yyvsp[0].ps).pos, (yyvsp[0].ps).sym); }
+#line 2989 "camp.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 171:
+#line 583 "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 2965 "camp.tab.c" /* yacc.c:1646 */
+#line 2996 "camp.tab.c" /* yacc.c:1646 */
break;
- case 171:
-#line 585 "camp.y" /* yacc.c:1646 */
+ case 172:
+#line 586 "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 2972 "camp.tab.c" /* yacc.c:1646 */
+#line 3003 "camp.tab.c" /* yacc.c:1646 */
break;
- case 172:
-#line 588 "camp.y" /* yacc.c:1646 */
+ case 173:
+#line 589 "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 2979 "camp.tab.c" /* yacc.c:1646 */
+#line 3010 "camp.tab.c" /* yacc.c:1646 */
break;
- case 173:
-#line 591 "camp.y" /* yacc.c:1646 */
+ case 174:
+#line 592 "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 2986 "camp.tab.c" /* yacc.c:1646 */
- break;
-
- case 174:
-#line 596 "camp.y" /* yacc.c:1646 */
- { (yyval.e) = new unaryExp((yyvsp[-1].ps).pos, (yyvsp[0].e), (yyvsp[-1].ps).sym); }
-#line 2992 "camp.tab.c" /* yacc.c:1646 */
+#line 3017 "camp.tab.c" /* yacc.c:1646 */
break;
case 175:
-#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 2998 "camp.tab.c" /* yacc.c:1646 */
+#line 597 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new unaryExp((yyvsp[-1].ps).pos, (yyvsp[0].e), (yyvsp[-1].ps).sym); }
+#line 3023 "camp.tab.c" /* yacc.c:1646 */
break;
case 176:
-#line 602 "camp.y" /* yacc.c:1646 */
- { (yyval.s) = new emptyStm((yyvsp[0].pos)); }
-#line 3004 "camp.tab.c" /* yacc.c:1646 */
+#line 599 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = new binaryExp((yyvsp[-3].ps).pos, (yyvsp[-2].e), (yyvsp[-3].ps).sym, (yyvsp[0].e)); }
+#line 3029 "camp.tab.c" /* yacc.c:1646 */
break;
case 177:
#line 603 "camp.y" /* yacc.c:1646 */
- { (yyval.s) = (yyvsp[0].s); }
-#line 3010 "camp.tab.c" /* yacc.c:1646 */
+ { (yyval.s) = new emptyStm((yyvsp[0].pos)); }
+#line 3035 "camp.tab.c" /* yacc.c:1646 */
break;
case 178:
#line 604 "camp.y" /* yacc.c:1646 */
- { (yyval.s) = (yyvsp[-1].s); }
-#line 3016 "camp.tab.c" /* yacc.c:1646 */
+ { (yyval.s) = (yyvsp[0].s); }
+#line 3041 "camp.tab.c" /* yacc.c:1646 */
break;
case 179:
-#line 606 "camp.y" /* yacc.c:1646 */
- { (yyval.s) = new ifStm((yyvsp[-4].pos), (yyvsp[-2].e), (yyvsp[0].s)); }
-#line 3022 "camp.tab.c" /* yacc.c:1646 */
+#line 605 "camp.y" /* yacc.c:1646 */
+ { (yyval.s) = (yyvsp[-1].s); }
+#line 3047 "camp.tab.c" /* yacc.c:1646 */
break;
case 180:
-#line 608 "camp.y" /* yacc.c:1646 */
- { (yyval.s) = new ifStm((yyvsp[-6].pos), (yyvsp[-4].e), (yyvsp[-2].s), (yyvsp[0].s)); }
-#line 3028 "camp.tab.c" /* yacc.c:1646 */
+#line 607 "camp.y" /* yacc.c:1646 */
+ { (yyval.s) = new ifStm((yyvsp[-4].pos), (yyvsp[-2].e), (yyvsp[0].s)); }
+#line 3053 "camp.tab.c" /* yacc.c:1646 */
break;
case 181:
-#line 610 "camp.y" /* yacc.c:1646 */
- { (yyval.s) = new whileStm((yyvsp[-4].pos), (yyvsp[-2].e), (yyvsp[0].s)); }
-#line 3034 "camp.tab.c" /* yacc.c:1646 */
+#line 609 "camp.y" /* yacc.c:1646 */
+ { (yyval.s) = new ifStm((yyvsp[-6].pos), (yyvsp[-4].e), (yyvsp[-2].s), (yyvsp[0].s)); }
+#line 3059 "camp.tab.c" /* yacc.c:1646 */
break;
case 182:
-#line 612 "camp.y" /* yacc.c:1646 */
- { (yyval.s) = new doStm((yyvsp[-6].pos), (yyvsp[-5].s), (yyvsp[-2].e)); }
-#line 3040 "camp.tab.c" /* yacc.c:1646 */
+#line 611 "camp.y" /* yacc.c:1646 */
+ { (yyval.s) = new whileStm((yyvsp[-4].pos), (yyvsp[-2].e), (yyvsp[0].s)); }
+#line 3065 "camp.tab.c" /* yacc.c:1646 */
break;
case 183:
-#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 3046 "camp.tab.c" /* yacc.c:1646 */
+#line 613 "camp.y" /* yacc.c:1646 */
+ { (yyval.s) = new doStm((yyvsp[-6].pos), (yyvsp[-5].s), (yyvsp[-2].e)); }
+#line 3071 "camp.tab.c" /* yacc.c:1646 */
break;
case 184:
-#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 3052 "camp.tab.c" /* yacc.c:1646 */
+#line 615 "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 3077 "camp.tab.c" /* yacc.c:1646 */
break;
case 185:
#line 617 "camp.y" /* yacc.c:1646 */
- { (yyval.s) = new breakStm((yyvsp[-1].pos)); }
-#line 3058 "camp.tab.c" /* yacc.c:1646 */
+ { (yyval.s) = new extendedForStm((yyvsp[-7].pos), (yyvsp[-5].t), (yyvsp[-4].ps).sym, (yyvsp[-2].e), (yyvsp[0].s)); }
+#line 3083 "camp.tab.c" /* yacc.c:1646 */
break;
case 186:
#line 618 "camp.y" /* yacc.c:1646 */
- { (yyval.s) = new continueStm((yyvsp[-1].pos)); }
-#line 3064 "camp.tab.c" /* yacc.c:1646 */
+ { (yyval.s) = new breakStm((yyvsp[-1].pos)); }
+#line 3089 "camp.tab.c" /* yacc.c:1646 */
break;
case 187:
#line 619 "camp.y" /* yacc.c:1646 */
- { (yyval.s) = new returnStm((yyvsp[-1].pos)); }
-#line 3070 "camp.tab.c" /* yacc.c:1646 */
+ { (yyval.s) = new continueStm((yyvsp[-1].pos)); }
+#line 3095 "camp.tab.c" /* yacc.c:1646 */
break;
case 188:
#line 620 "camp.y" /* yacc.c:1646 */
- { (yyval.s) = new returnStm((yyvsp[-2].pos), (yyvsp[-1].e)); }
-#line 3076 "camp.tab.c" /* yacc.c:1646 */
+ { (yyval.s) = new returnStm((yyvsp[-1].pos)); }
+#line 3101 "camp.tab.c" /* yacc.c:1646 */
break;
case 189:
-#line 624 "camp.y" /* yacc.c:1646 */
- { (yyval.s) = new expStm((yyvsp[0].e)->getPos(), (yyvsp[0].e)); }
-#line 3082 "camp.tab.c" /* yacc.c:1646 */
+#line 621 "camp.y" /* yacc.c:1646 */
+ { (yyval.s) = new returnStm((yyvsp[-2].pos), (yyvsp[-1].e)); }
+#line 3107 "camp.tab.c" /* yacc.c:1646 */
break;
case 190:
-#line 628 "camp.y" /* yacc.c:1646 */
- { (yyval.s) = new blockStm((yyvsp[0].b)->getPos(), (yyvsp[0].b)); }
-#line 3088 "camp.tab.c" /* yacc.c:1646 */
+#line 625 "camp.y" /* yacc.c:1646 */
+ { (yyval.s) = new expStm((yyvsp[0].e)->getPos(), (yyvsp[0].e)); }
+#line 3113 "camp.tab.c" /* yacc.c:1646 */
break;
case 191:
-#line 632 "camp.y" /* yacc.c:1646 */
- { (yyval.run) = 0; }
-#line 3094 "camp.tab.c" /* yacc.c:1646 */
+#line 629 "camp.y" /* yacc.c:1646 */
+ { (yyval.s) = new blockStm((yyvsp[0].b)->getPos(), (yyvsp[0].b)); }
+#line 3119 "camp.tab.c" /* yacc.c:1646 */
break;
case 192:
#line 633 "camp.y" /* yacc.c:1646 */
- { (yyval.run) = (yyvsp[0].sel); }
-#line 3100 "camp.tab.c" /* yacc.c:1646 */
+ { (yyval.run) = 0; }
+#line 3125 "camp.tab.c" /* yacc.c:1646 */
break;
case 193:
#line 634 "camp.y" /* yacc.c:1646 */
- { (yyval.run) = (yyvsp[0].vd); }
-#line 3106 "camp.tab.c" /* yacc.c:1646 */
+ { (yyval.run) = (yyvsp[0].sel); }
+#line 3131 "camp.tab.c" /* yacc.c:1646 */
break;
case 194:
-#line 638 "camp.y" /* yacc.c:1646 */
- { (yyval.e) = 0; }
-#line 3112 "camp.tab.c" /* yacc.c:1646 */
+#line 635 "camp.y" /* yacc.c:1646 */
+ { (yyval.run) = (yyvsp[0].vd); }
+#line 3137 "camp.tab.c" /* yacc.c:1646 */
break;
case 195:
#line 639 "camp.y" /* yacc.c:1646 */
- { (yyval.e) = (yyvsp[0].e); }
-#line 3118 "camp.tab.c" /* yacc.c:1646 */
+ { (yyval.e) = 0; }
+#line 3143 "camp.tab.c" /* yacc.c:1646 */
break;
case 196:
-#line 643 "camp.y" /* yacc.c:1646 */
- { (yyval.sel) = 0; }
-#line 3124 "camp.tab.c" /* yacc.c:1646 */
+#line 640 "camp.y" /* yacc.c:1646 */
+ { (yyval.e) = (yyvsp[0].e); }
+#line 3149 "camp.tab.c" /* yacc.c:1646 */
break;
case 197:
#line 644 "camp.y" /* yacc.c:1646 */
- { (yyval.sel) = (yyvsp[0].sel); }
-#line 3130 "camp.tab.c" /* yacc.c:1646 */
+ { (yyval.sel) = 0; }
+#line 3155 "camp.tab.c" /* yacc.c:1646 */
break;
case 198:
-#line 648 "camp.y" /* yacc.c:1646 */
- { (yyval.sel) = new stmExpList((yyvsp[0].s)->getPos()); (yyval.sel)->add((yyvsp[0].s)); }
-#line 3136 "camp.tab.c" /* yacc.c:1646 */
+#line 645 "camp.y" /* yacc.c:1646 */
+ { (yyval.sel) = (yyvsp[0].sel); }
+#line 3161 "camp.tab.c" /* yacc.c:1646 */
break;
case 199:
-#line 650 "camp.y" /* yacc.c:1646 */
+#line 649 "camp.y" /* yacc.c:1646 */
+ { (yyval.sel) = new stmExpList((yyvsp[0].s)->getPos()); (yyval.sel)->add((yyvsp[0].s)); }
+#line 3167 "camp.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 200:
+#line 651 "camp.y" /* yacc.c:1646 */
{ (yyval.sel) = (yyvsp[-2].sel); (yyval.sel)->add((yyvsp[0].s)); }
-#line 3142 "camp.tab.c" /* yacc.c:1646 */
+#line 3173 "camp.tab.c" /* yacc.c:1646 */
break;
-#line 3146 "camp.tab.c" /* yacc.c:1646 */
+#line 3177 "camp.tab.c" /* yacc.c:1646 */
default: break;
}
/* User semantic actions sometimes alter yychar, and that requires
diff --git a/Build/source/utils/asymptote/camp.y b/Build/source/utils/asymptote/camp.y
index 82b8f0f9e8e..01bd47ecbcc 100644
--- a/Build/source/utils/asymptote/camp.y
+++ b/Build/source/utils/asymptote/camp.y
@@ -108,7 +108,7 @@ using mem::string;
DOTS COLONS DASHES INCR LONGDASH
CONTROLS TENSION ATLEAST CURL
COR CAND BAR AMPERSAND EQ NEQ LT LE GT GE CARETS
- '+' '-' '*' '/' '%' '^' OPERATOR
+ '+' '-' '*' '/' '%' '#' '^' OPERATOR
%token <pos> LOOSE ASSIGN '?' ':'
DIRTAG JOIN_PREC AND
'{' '}' '(' ')' '.' ',' '[' ']' ';' ELLIPSIS
@@ -137,7 +137,7 @@ using mem::string;
%left CURL '{' '}'
%left '+' '-'
-%left '*' '/' '%' LIT
+%left '*' '/' '%' '#' LIT
%left UNARY
%right '^'
%left EXP_IN_PARENS_RULE
@@ -478,6 +478,7 @@ exp:
| exp '*' exp { $$ = new binaryExp($2.pos, $1, $2.sym, $3); }
| exp '/' exp { $$ = new binaryExp($2.pos, $1, $2.sym, $3); }
| exp '%' exp { $$ = new binaryExp($2.pos, $1, $2.sym, $3); }
+| exp '#' exp { $$ = new binaryExp($2.pos, $1, $2.sym, $3); }
| exp '^' exp { $$ = new binaryExp($2.pos, $1, $2.sym, $3); }
| exp LT exp { $$ = new binaryExp($2.pos, $1, $2.sym, $3); }
| exp LE exp { $$ = new binaryExp($2.pos, $1, $2.sym, $3); }
diff --git a/Build/source/utils/asymptote/config.sub b/Build/source/utils/asymptote/config.sub
index 8d39c4ba39f..6d86a1e2f77 100644
--- a/Build/source/utils/asymptote/config.sub
+++ b/Build/source/utils/asymptote/config.sub
@@ -2,7 +2,7 @@
# Configuration validation subroutine script.
# Copyright 1992-2016 Free Software Foundation, Inc.
-timestamp='2016-03-30'
+timestamp='2016-05-10'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -1399,7 +1399,7 @@ case $os in
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
| -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
- | -onefs* | -tirtos*)
+ | -onefs* | -tirtos* | -phoenix*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-qnx*)
diff --git a/Build/source/utils/asymptote/configure b/Build/source/utils/asymptote/configure
index 5f19635ce27..1d84c76d3e8 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.37.
+# Generated by GNU Autoconf 2.69 for Asymptote 2.38.
#
# 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.37'
-PACKAGE_STRING='Asymptote 2.37'
+PACKAGE_VERSION='2.38'
+PACKAGE_STRING='Asymptote 2.38'
PACKAGE_BUGREPORT='http://sourceforge.net/projects/asymptote'
PACKAGE_URL=''
@@ -720,6 +720,7 @@ enable_texlive_build
enable_gc
enable_gc_debug
enable_gc_full_debug
+enable_sigsegv
enable_readline
enable_gsl
enable_fftw
@@ -1281,7 +1282,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.37 to adapt to many kinds of systems.
+\`configure' configures Asymptote 2.38 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1346,7 +1347,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of Asymptote 2.37:";;
+ short | recursive ) echo "Configuration of Asymptote 2.38:";;
esac
cat <<\_ACEOF
@@ -1360,6 +1361,7 @@ Optional Features:
[=PREFIX] use Boehm garbage collector installed in PREFIX
--enable-gc-debug enable (slow) garbage collector debugging
--enable-gc-full-debug enable (very slow) garbage collector backtrace
+ --enable-sigsegv[=yes] enable GNU Stack Overflow Handler
--enable-readline[=yes] enable GNU Readline Library
--enable-gsl[=yes] enable GNU Scientific Library
--enable-fftw[=yes] enable FFTW Library
@@ -1459,7 +1461,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-Asymptote configure 2.37
+Asymptote configure 2.38
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2045,7 +2047,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.37, which was
+It was created by Asymptote $as_me 2.38, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -5945,94 +5947,6 @@ fi
# Checks for libraries.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for setupterm in -lncurses" >&5
-$as_echo_n "checking for setupterm in -lncurses... " >&6; }
-if ${ac_cv_lib_ncurses_setupterm+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lncurses $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char setupterm ();
-int
-main ()
-{
-return setupterm ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
- ac_cv_lib_ncurses_setupterm=yes
-else
- ac_cv_lib_ncurses_setupterm=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncurses_setupterm" >&5
-$as_echo "$ac_cv_lib_ncurses_setupterm" >&6; }
-if test "x$ac_cv_lib_ncurses_setupterm" = xyes; then :
- $as_echo "#define HAVE_LIBCURSES 1" >>confdefs.h
-
- LIBS=$LIBS"-lncurses "
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for setupterm in -lcurses" >&5
-$as_echo_n "checking for setupterm in -lcurses... " >&6; }
-if ${ac_cv_lib_curses_setupterm+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lcurses $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char setupterm ();
-int
-main ()
-{
-return setupterm ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
- ac_cv_lib_curses_setupterm=yes
-else
- ac_cv_lib_curses_setupterm=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_curses_setupterm" >&5
-$as_echo "$ac_cv_lib_curses_setupterm" >&6; }
-if test "x$ac_cv_lib_curses_setupterm" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBCURSES 1
-_ACEOF
-
- LIBS="-lcurses $LIBS"
-
-fi
-
-fi
-
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqrt in -lm" >&5
$as_echo_n "checking for sqrt in -lm... " >&6; }
if ${ac_cv_lib_m_sqrt+:} false; then :
@@ -6594,7 +6508,15 @@ ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ex
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for stackoverflow_install_handler in -lsigsegv" >&5
+
+# Check whether --enable-sigsegv was given.
+if test "${enable_sigsegv+set}" = set; then :
+ enableval=$enable_sigsegv;
+fi
+
+
+if test "x$enable_sigsegv" != "xno"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stackoverflow_install_handler in -lsigsegv" >&5
$as_echo_n "checking for stackoverflow_install_handler in -lsigsegv... " >&6; }
if ${ac_cv_lib_sigsegv_stackoverflow_install_handler+:} false; then :
$as_echo_n "(cached) " >&6
@@ -6639,6 +6561,8 @@ _ACEOF
fi
+fi
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sched_yield in -lrt" >&5
$as_echo_n "checking for sched_yield in -lrt... " >&6; }
if ${ac_cv_lib_rt_sched_yield+:} false; then :
@@ -6765,6 +6689,107 @@ else
$as_echo "$as_me: *** Could not find GNU readline 4.3 or later: will compile without readline support ***" >&6;}
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+for ac_header in ncurses/curses.h ncurses.h curses.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_cxx_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+ break
+fi
+
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for setupterm in -lncurses" >&5
+$as_echo_n "checking for setupterm in -lncurses... " >&6; }
+if ${ac_cv_lib_ncurses_setupterm+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lncurses $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char setupterm ();
+int
+main ()
+{
+return setupterm ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+ ac_cv_lib_ncurses_setupterm=yes
+else
+ ac_cv_lib_ncurses_setupterm=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncurses_setupterm" >&5
+$as_echo "$ac_cv_lib_ncurses_setupterm" >&6; }
+if test "x$ac_cv_lib_ncurses_setupterm" = xyes; then :
+ $as_echo "#define HAVE_LIBCURSES 1" >>confdefs.h
+
+ LIBS=$LIBS"-lncurses "
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for setupterm in -lcurses" >&5
+$as_echo_n "checking for setupterm in -lcurses... " >&6; }
+if ${ac_cv_lib_curses_setupterm+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lcurses $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char setupterm ();
+int
+main ()
+{
+return setupterm ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+ ac_cv_lib_curses_setupterm=yes
+else
+ ac_cv_lib_curses_setupterm=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_curses_setupterm" >&5
+$as_echo "$ac_cv_lib_curses_setupterm" >&6; }
+if test "x$ac_cv_lib_curses_setupterm" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBCURSES 1
+_ACEOF
+
+ LIBS="-lcurses $LIBS"
+
+fi
+
+fi
+
fi
# Checks for header files.
@@ -6822,19 +6847,6 @@ fi
done
-for ac_header in ncurses/curses.h ncurses.h curses.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_cxx_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
- break
-fi
-
-done
-
for ac_header in fpu_control.h
do :
ac_fn_cxx_check_header_mongrel "$LINENO" "fpu_control.h" "ac_cv_header_fpu_control_h" "$ac_includes_default"
@@ -8509,7 +8521,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.37, which was
+This file was extended by Asymptote $as_me 2.38, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -8571,7 +8583,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.37
+Asymptote config.status 2.38
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 227d8a3677b..d69e961b779 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.37],[http://sourceforge.net/projects/asymptote])
+AC_INIT([Asymptote],[2.38],[http://sourceforge.net/projects/asymptote])
VERSION=$PACKAGE_VERSION
AC_SUBST(VERSION)
m4_include([ax_pthread.m4])
@@ -223,15 +223,19 @@ AC_SUBST(INCL)
AC_SUBST(OPTIONS)
# Checks for libraries.
-AC_CHECK_LIB([ncurses], [setupterm], [AC_DEFINE(HAVE_LIBCURSES)
- LIBS=$LIBS"-lncurses "],
- AC_CHECK_LIB([curses], [setupterm]))
AC_CHECK_LIB([m], [sqrt],,
AC_MSG_ERROR([*** Please install libm on your system ***]))
AC_CHECK_LIB([z], [deflate],,
AC_MSG_ERROR([*** Please install libz or zlib-devel on your system ***]))
AX_PTHREAD
-AC_CHECK_LIB([sigsegv], [stackoverflow_install_handler])
+
+AC_ARG_ENABLE(sigsegv,
+[AS_HELP_STRING(--enable-sigsegv[[[=yes]]],enable GNU Stack Overflow Handler)])
+
+if test "x$enable_sigsegv" != "xno"; then
+ AC_CHECK_LIB([sigsegv], [stackoverflow_install_handler])
+fi
+
AC_CHECK_LIB([rt], [sched_yield])
AC_ARG_ENABLE(readline,
@@ -249,12 +253,15 @@ abort
])],AC_CHECK_LIB([readline], [history_list],,
AC_MSG_NOTICE(*** Could not find GNU libreadline 4.3 or later: will compile without readline support ***)),
AC_MSG_NOTICE(*** Could not find GNU readline 4.3 or later: will compile without readline support ***))
+AC_CHECK_HEADERS([ncurses/curses.h ncurses.h curses.h], [break])
+AC_CHECK_LIB([ncurses], [setupterm], [AC_DEFINE(HAVE_LIBCURSES)
+ LIBS=$LIBS"-lncurses "],
+ AC_CHECK_LIB([curses], [setupterm]))
fi
# Checks for header files.
AC_HEADER_SYS_WAIT
AC_CHECK_HEADERS([fenv.h stddef.h libintl.h])
-AC_CHECK_HEADERS([ncurses/curses.h ncurses.h curses.h], [break])
AC_CHECK_HEADERS(fpu_control.h)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include "xstream.h"])],
diff --git a/Build/source/utils/asymptote/doc/CAD.pdf b/Build/source/utils/asymptote/doc/CAD.pdf
index 41fbbc97347..a7b2400fd9b 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 035dbfdb1c1..b213a530b1e 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
- 13 Mar 2016
+ 12 May 2016
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 fe6030b1ff3..e6c32ee7055 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 707a3682690..7e15edf6287 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 4dd99ef2fc3..b64189979a5 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 36bc50b8c33..1b43272e3d9 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 abbc5c8799a..47b67a23736 100644
--- a/Build/source/utils/asymptote/doc/asymptote.texi
+++ b/Build/source/utils/asymptote/doc/asymptote.texi
@@ -652,7 +652,7 @@ with @code{./configure --disable-gc}. For a list of other configuration
options, say @code{./configure --help}. For example, one can tell
configure to look for header files and libraries in nonstandard locations:
@verbatim
-./configure CXXFLAGS=-I/opt/usr/include LDFLAGS=-L/opt/usr/lib
+./configure CXXFLAGS=-I/opt/local/include LDFLAGS=-L/opt/local/lib
@end verbatim
If you are compiling @code{Asymptote} with @code{gcc}, you will need a
@@ -4360,33 +4360,40 @@ the @code{Asymptote} base module @code{plain}.
@cindex binary operators
@cindex boolean operators
@cindex logical operators
-@cindex integer division
@cindex @code{quotient}
@code{Asymptote} uses the standard binary arithmetic operators.
However, when one integer is divided by another, both arguments are
converted to real values before dividing and a real quotient is
-returned (since this is usually what is intended). The function
-@code{int quotient(int x, int y)} returns the greatest integer less
-than or equal to @code{x/y}. In all other cases both operands are
-promoted to the same type, which will also be the type of the result:
+returned (since this is typically what is intended; otherwise
+one can use the function @code{int quotient(int x, int y)}, which returns
+greatest integer less than or equal to @code{x/y}). In all other cases both
+operands are promoted to the same type, which will also be the
+type of the result:
@table @code
@cindex @code{+}
@item +
addition
@cindex @code{-}
@item -
-subtraction
+subtractiona
@cindex @code{*}
@item *
multiplication
@cindex @code{/}
@item /
division
+@cindex integer division
+@cindex @code{#}
+@item #
+integer division; equivalent to @code{quotient(x,y)}. Noting that the
+@code{Python3} community adopted our comment symbol (@code{//}) for
+integer division, we decided to reciprocate and use their comment
+symbol for integer division in @code{Asymptote}!
@cindex @code{%}
@item %
modulo; the result always has the same sign as the divisor.
-In particular, this makes @code{q*quotient(p,q)+p%q == p} for all
+In particular, this makes @code{q*(p # q)+p % q == p} for all
integers @code{p} and nonzero integers @code{q}.
@cindex @code{^}
@item ^
@@ -4475,7 +4482,7 @@ for nonintegral built-in arithmetic types @code{T}. If @code{a} and
@cindex @code{--}
As in C, each of the arithmetic operators @code{+}, @code{-}, @code{*},
-@code{/}, @code{%}, and @code{^} can be used as a self operator.
+@code{/}, @code{#}, @code{%}, and @code{^} can be used as a self operator.
The prefix operators @code{++} (increment by one) and @code{--} (decrement
by one) are also defined.
For example,
@@ -9566,9 +9573,9 @@ To receive announcements of upcoming releases, please subscribe to
If you find a bug in @code{Asymptote}, please check (if possible)
whether the bug is still present in the latest @code{git}
developmental code (@pxref{Git}) before submitting a bug
-report. New bugs can be submitted using the Bug Tracking System at
+report. New bugs can be reported at
@quotation
-@url{http://sourceforge.net/projects/asymptote}
+@url{https://github.com/vectorgraphics/asymptote/issues}
@end quotation
@noindent
To see if the bug has already been fixed,
diff --git a/Build/source/utils/asymptote/doc/png/asymptote.info b/Build/source/utils/asymptote/doc/png/asymptote.info
index 980fe6df2fe..68ca0b2a442 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 6.0 from
asymptote.texi.
-This file documents 'Asymptote', version 2.37.
+This file documents 'Asymptote', version 2.38.
<http://asymptote.sourceforge.net>
@@ -22,7 +22,7 @@ File: asymptote.info, Node: Top, Next: Description, Prev: (dir), Up: (dir)
Asymptote
*********
-This file documents 'Asymptote', version 2.37.
+This file documents 'Asymptote', version 2.38.
<http://asymptote.sourceforge.net>
@@ -531,7 +531,7 @@ done as the root user. To install without root privileges, change the
with './configure --disable-gc'. For a list of other configuration
options, say './configure --help'. For example, one can tell configure
to look for header files and libraries in nonstandard locations:
-./configure CXXFLAGS=-I/opt/usr/include LDFLAGS=-L/opt/usr/lib
+./configure CXXFLAGS=-I/opt/local/include LDFLAGS=-L/opt/local/lib
If you are compiling 'Asymptote' with 'gcc', you will need a
relatively recent version (e.g. 3.4.4 or later). For full interactive
@@ -3436,22 +3436,27 @@ File: asymptote.info, Node: Arithmetic & logical, Next: Self & prefix operator
'Asymptote' uses the standard binary arithmetic operators. However,
when one integer is divided by another, both arguments are converted to
real values before dividing and a real quotient is returned (since this
-is usually what is intended). The function 'int quotient(int x, int y)'
-returns the greatest integer less than or equal to 'x/y'. In all other
-cases both operands are promoted to the same type, which will also be
-the type of the result:
+is typically what is intended; otherwise one can use the function 'int
+quotient(int x, int y)', which returns greatest integer less than or
+equal to 'x/y'). In all other cases both operands are promoted to the
+same type, which will also be the type of the result:
'+'
addition
'-'
- subtraction
+ subtractiona
'*'
multiplication
'/'
division
+'#'
+ integer division; equivalent to 'quotient(x,y)'. Noting that the
+ 'Python3' community adopted our comment symbol ('//') for integer
+ division, we decided to reciprocate and use their comment symbol
+ for integer division in 'Asymptote'!
'%'
modulo; the result always has the same sign as the divisor. In
- particular, this makes 'q*quotient(p,q)+p%q == p' for all integers
- 'p' and nonzero integers 'q'.
+ particular, this makes 'q*(p # q)+p % q == p' for all integers 'p'
+ and nonzero integers 'q'.
'^'
power; if the exponent (second argument) is an int, recursive
multiplication is used; otherwise, logarithms and exponentials are
@@ -3500,8 +3505,8 @@ File: asymptote.info, Node: Self & prefix operators, Next: User-defined operat
6.9.2 Self & prefix operators
-----------------------------
-As in C, each of the arithmetic operators '+', '-', '*', '/', '%', and
-'^' can be used as a self operator. The prefix operators '++'
+As in C, each of the arithmetic operators '+', '-', '*', '/', '#', '%',
+and '^' can be used as a self operator. The prefix operators '++'
(increment by one) and '--' (decrement by one) are also defined. For
example,
int i=1;
@@ -8420,9 +8425,8 @@ To receive announcements of upcoming releases, please subscribe to
<http://freecode.com/projects/asy>
If you find a bug in 'Asymptote', please check (if possible) whether the
bug is still present in the latest 'git' developmental code (*note
-Git::) before submitting a bug report. New bugs can be submitted using
-the Bug Tracking System at
- <http://sourceforge.net/projects/asymptote>
+Git::) before submitting a bug report. New bugs can be reported at
+ <https://github.com/vectorgraphics/asymptote/issues>
To see if the bug has already been fixed, check bugs with Status
'Closed' and recent lines in
<http://asymptote.sourceforge.net/ChangeLog>
@@ -8533,25 +8537,27 @@ Index
* Menu:
* '!': Arithmetic & logical.
- (line 52)
+ (line 57)
* '!=': Structures. (line 62)
* '!=' <1>: Arithmetic & logical.
- (line 32)
-* '%': Arithmetic & logical.
+ (line 37)
+* '#': Arithmetic & logical.
(line 20)
+* '%': Arithmetic & logical.
+ (line 25)
* '%' <1>: Interactive mode. (line 16)
* '%=': Self & prefix operators.
(line 6)
* '&': Bezier curves. (line 84)
* '&' <1>: Arithmetic & logical.
- (line 44)
+ (line 49)
* '&&': Arithmetic & logical.
- (line 42)
+ (line 47)
* '*': Pens. (line 15)
* '*' <1>: Arithmetic & logical.
(line 16)
* '**': Arithmetic & logical.
- (line 26)
+ (line 31)
* '*=': Self & prefix operators.
(line 6)
* '+': Pens. (line 15)
@@ -8586,32 +8592,32 @@ Index
* 3D grids: grid3. (line 6)
* 3D 'PostScript': three. (line 580)
* ':': Arithmetic & logical.
- (line 56)
+ (line 61)
* '::': Bezier curves. (line 70)
* '<': Arithmetic & logical.
- (line 34)
+ (line 39)
* '<=': Arithmetic & logical.
- (line 36)
+ (line 41)
* '==': Structures. (line 62)
* '==' <1>: Arithmetic & logical.
- (line 31)
+ (line 36)
* '>': Arithmetic & logical.
- (line 40)
+ (line 45)
* '>=': Arithmetic & logical.
- (line 38)
+ (line 43)
* '?': Arithmetic & logical.
- (line 56)
+ (line 61)
* '^': Arithmetic & logical.
- (line 24)
+ (line 29)
* '^' <1>: Arithmetic & logical.
- (line 50)
+ (line 55)
* '^=': Self & prefix operators.
(line 6)
* '^^': Paths. (line 23)
* '|': Arithmetic & logical.
- (line 48)
+ (line 53)
* '||': Arithmetic & logical.
- (line 46)
+ (line 51)
* 'a4': Configuring. (line 59)
* 'abort': Data types. (line 358)
* 'abs': Data types. (line 65)
@@ -8649,7 +8655,7 @@ Index
* 'Allow': Pens. (line 343)
* 'and': Bezier curves. (line 56)
* 'AND': Arithmetic & logical.
- (line 63)
+ (line 68)
* 'angle': Data types. (line 73)
* 'animate': Configuring. (line 65)
* 'animate' <1>: Files. (line 155)
@@ -8851,7 +8857,7 @@ Index
* 'clear' <1>: Debugger. (line 23)
* 'clip': clip. (line 6)
* 'CLZ': Arithmetic & logical.
- (line 63)
+ (line 68)
* 'cm': Figure size. (line 18)
* 'cmd': Configuring. (line 32)
* 'cmyk': Pens. (line 34)
@@ -8874,7 +8880,7 @@ Index
* 'concat': Arrays. (line 167)
* conditional: Programming. (line 26)
* conditional <1>: Arithmetic & logical.
- (line 56)
+ (line 61)
* 'config': Configuring. (line 65)
* 'config' <1>: Options. (line 117)
* configuration file: Configuring. (line 22)
@@ -8913,7 +8919,7 @@ Index
* crosshatch: Pens. (line 282)
* 'csv': Arrays. (line 351)
* 'CTZ': Arithmetic & logical.
- (line 63)
+ (line 68)
* 'cubicroots': Arrays. (line 308)
* 'curl': Bezier curves. (line 66)
* 'curl' <1>: three. (line 6)
@@ -9256,14 +9262,14 @@ Index
* installation: Installation. (line 6)
* 'int': Data types. (line 30)
* integer division: Arithmetic & logical.
- (line 6)
+ (line 20)
* interactive mode: Drawing in interactive mode.
(line 6)
* interactive mode <1>: Interactive mode. (line 6)
* 'interior': Paths and guides. (line 290)
* international characters: unicode. (line 6)
* 'interp': Arithmetic & logical.
- (line 59)
+ (line 64)
* 'interpolate': interpolate. (line 6)
* 'intersect': Paths and guides. (line 195)
* 'intersect' <1>: math. (line 13)
@@ -9360,7 +9366,7 @@ Index
* 'libm' routines: Mathematical functions.
(line 6)
* 'libsigsegv': Functions. (line 100)
-* 'libsigsegv' <1>: Help. (line 28)
+* 'libsigsegv' <1>: Help. (line 27)
* 'limits': graph. (line 640)
* 'line': Arrays. (line 333)
* 'line' <1>: Arrays. (line 337)
@@ -9486,7 +9492,7 @@ Index
* 'normal': three. (line 470)
* 'nosafe': Options. (line 170)
* 'NOT': Arithmetic & logical.
- (line 63)
+ (line 68)
* 'notaknot': graph. (line 36)
* 'NoTicks': graph. (line 160)
* 'NoTicks3': graph3. (line 35)
@@ -9525,7 +9531,7 @@ Index
* operators: Operators. (line 6)
* options: Options. (line 6)
* 'OR': Arithmetic & logical.
- (line 63)
+ (line 68)
* 'orient': Data types. (line 108)
* 'orient' <1>: three. (line 501)
* 'orientation': Frames and pictures.
@@ -9742,7 +9748,7 @@ Index
* 'seek': Files. (line 93)
* 'seekeof': Files. (line 93)
* 'segment': math. (line 50)
-* segmentation fault: Help. (line 28)
+* segmentation fault: Help. (line 27)
* self operators: Self & prefix operators.
(line 6)
* 'sequence': Arrays. (line 118)
@@ -9822,7 +9828,7 @@ Index
(line 39)
* stack overflow: Functions. (line 100)
* stack overflow <1>: Functions. (line 100)
-* stack overflow <2>: Help. (line 28)
+* stack overflow <2>: Help. (line 27)
* 'static': Static. (line 6)
* 'stats': stats. (line 6)
* 'stdin': Files. (line 48)
@@ -10023,7 +10029,7 @@ Index
* 'xequals': graph. (line 278)
* 'xlimits': graph. (line 640)
* 'XOR': Arithmetic & logical.
- (line 63)
+ (line 68)
* 'xpart': Data types. (line 94)
* 'xpart' <1>: Data types. (line 184)
* 'xscale': Transforms. (line 30)
@@ -10089,142 +10095,142 @@ Ref: psview14549
Node: Configuring15485
Node: Search paths19720
Node: Compiling from UNIX source20559
-Node: Editing modes23589
-Node: Git26010
-Node: Uninstall26409
-Node: Tutorial26751
-Node: Drawing in batch mode27639
-Node: Drawing in interactive mode28514
-Node: Figure size29546
-Node: Labels31138
-Node: Paths31965
-Ref: unitcircle32580
-Node: Drawing commands34480
-Node: draw36195
-Ref: arrows37377
-Node: fill42625
-Ref: gradient shading43671
-Node: clip48187
-Node: label48783
-Ref: Label49383
-Node: Bezier curves55227
-Node: Programming59124
-Ref: array iteration60877
-Node: Data types61044
-Ref: format71494
-Node: Paths and guides75913
-Ref: circle76167
-Ref: extension85849
-Node: Pens92628
-Ref: fillrule100135
-Ref: basealign101039
-Ref: transparency103873
-Ref: makepen107418
-Ref: overwrite108296
-Node: Transforms109510
-Node: Frames and pictures111292
-Ref: envelope112450
-Ref: size113543
-Ref: unitsize114530
-Ref: shipout115603
-Ref: filltype117954
-Ref: add121126
-Ref: add about122132
-Ref: tex125136
-Node: Files126031
-Ref: cd127018
-Ref: scroll131703
-Node: Variable initializers134621
-Node: Structures137338
-Node: Operators144835
-Node: Arithmetic & logical145149
-Node: Self & prefix operators147108
-Node: User-defined operators147897
-Node: Implicit scaling148807
-Node: Functions149370
-Ref: stack overflow152438
-Node: Default arguments152720
-Node: Named arguments153476
-Node: Rest arguments156046
-Node: Mathematical functions159167
-Node: Arrays163830
-Ref: sort170812
-Ref: tridiagonal173241
-Ref: solve174472
-Node: Slices178611
-Node: Casts182519
-Node: Import184490
-Node: Static189737
-Node: LaTeX usage192630
-Node: Base modules199135
-Node: plain201692
-Node: simplex202366
-Node: math202640
-Node: interpolate205349
-Node: geometry205628
-Node: trembling206222
-Node: stats206491
-Node: patterns206751
-Node: markers206987
-Node: tree208847
-Node: binarytree209032
-Node: drawtree209698
-Node: syzygy209899
-Node: feynman210173
-Node: roundedpath210448
-Node: animation210731
-Ref: animate211152
-Node: embed212269
-Node: slide213224
-Node: MetaPost213565
-Node: unicode214284
-Node: latin1215158
-Node: babel215527
-Node: labelpath215757
-Node: labelpath3216578
-Node: annotate216889
-Node: CAD217359
-Node: graph217670
-Ref: ticks224820
-Ref: pathmarkers238452
-Ref: marker238922
-Ref: markuniform239276
-Ref: errorbars241074
-Ref: automatic scaling245358
-Node: palette256634
-Ref: images256752
-Ref: image260926
-Ref: logimage261446
-Ref: penimage262551
-Ref: penfunctionimage262813
-Node: three263584
-Ref: PostScript3D290593
-Node: obj292332
-Node: graph3292581
-Ref: GaussianSurface297860
-Node: grid3299009
-Node: solids299793
-Node: tube300785
-Node: flowchart303019
-Node: contour307627
-Node: contour3312938
-Node: smoothcontour3313251
-Node: slopefield314970
-Node: ode316458
-Node: Options316715
-Ref: configuration file322878
-Ref: settings322878
-Ref: texengines324121
-Ref: convert324121
-Node: Interactive mode327444
-Ref: history329593
-Node: GUI330897
-Node: GUI installation331448
-Node: GUI usage332359
-Node: PostScript to Asymptote333267
-Node: Help334025
-Node: Debugger335701
-Node: Credits337457
-Node: Index338439
+Node: Editing modes23593
+Node: Git26014
+Node: Uninstall26413
+Node: Tutorial26755
+Node: Drawing in batch mode27643
+Node: Drawing in interactive mode28518
+Node: Figure size29550
+Node: Labels31142
+Node: Paths31969
+Ref: unitcircle32584
+Node: Drawing commands34484
+Node: draw36199
+Ref: arrows37381
+Node: fill42629
+Ref: gradient shading43675
+Node: clip48191
+Node: label48787
+Ref: Label49387
+Node: Bezier curves55231
+Node: Programming59128
+Ref: array iteration60881
+Node: Data types61048
+Ref: format71498
+Node: Paths and guides75917
+Ref: circle76171
+Ref: extension85853
+Node: Pens92632
+Ref: fillrule100139
+Ref: basealign101043
+Ref: transparency103877
+Ref: makepen107422
+Ref: overwrite108300
+Node: Transforms109514
+Node: Frames and pictures111296
+Ref: envelope112454
+Ref: size113547
+Ref: unitsize114534
+Ref: shipout115607
+Ref: filltype117958
+Ref: add121130
+Ref: add about122136
+Ref: tex125140
+Node: Files126035
+Ref: cd127022
+Ref: scroll131707
+Node: Variable initializers134625
+Node: Structures137342
+Node: Operators144839
+Node: Arithmetic & logical145153
+Node: Self & prefix operators147393
+Node: User-defined operators148187
+Node: Implicit scaling149097
+Node: Functions149660
+Ref: stack overflow152728
+Node: Default arguments153010
+Node: Named arguments153766
+Node: Rest arguments156336
+Node: Mathematical functions159457
+Node: Arrays164120
+Ref: sort171102
+Ref: tridiagonal173531
+Ref: solve174762
+Node: Slices178901
+Node: Casts182809
+Node: Import184780
+Node: Static190027
+Node: LaTeX usage192920
+Node: Base modules199425
+Node: plain201982
+Node: simplex202656
+Node: math202930
+Node: interpolate205639
+Node: geometry205918
+Node: trembling206512
+Node: stats206781
+Node: patterns207041
+Node: markers207277
+Node: tree209137
+Node: binarytree209322
+Node: drawtree209988
+Node: syzygy210189
+Node: feynman210463
+Node: roundedpath210738
+Node: animation211021
+Ref: animate211442
+Node: embed212559
+Node: slide213514
+Node: MetaPost213855
+Node: unicode214574
+Node: latin1215448
+Node: babel215817
+Node: labelpath216047
+Node: labelpath3216868
+Node: annotate217179
+Node: CAD217649
+Node: graph217960
+Ref: ticks225110
+Ref: pathmarkers238742
+Ref: marker239212
+Ref: markuniform239566
+Ref: errorbars241364
+Ref: automatic scaling245648
+Node: palette256924
+Ref: images257042
+Ref: image261216
+Ref: logimage261736
+Ref: penimage262841
+Ref: penfunctionimage263103
+Node: three263874
+Ref: PostScript3D290883
+Node: obj292622
+Node: graph3292871
+Ref: GaussianSurface298150
+Node: grid3299299
+Node: solids300083
+Node: tube301075
+Node: flowchart303309
+Node: contour307917
+Node: contour3313228
+Node: smoothcontour3313541
+Node: slopefield315260
+Node: ode316748
+Node: Options317005
+Ref: configuration file323168
+Ref: settings323168
+Ref: texengines324411
+Ref: convert324411
+Node: Interactive mode327734
+Ref: history329883
+Node: GUI331187
+Node: GUI installation331738
+Node: GUI usage332649
+Node: PostScript to Asymptote333557
+Node: Help334315
+Node: Debugger335969
+Node: Credits337725
+Node: Index338707

End Tag Table
diff --git a/Build/source/utils/asymptote/install-sh b/Build/source/utils/asymptote/install-sh
index 6781b987bdb..0360b79e7d0 100755
--- a/Build/source/utils/asymptote/install-sh
+++ b/Build/source/utils/asymptote/install-sh
@@ -1,7 +1,7 @@
#!/bin/sh
# install - install a program, script, or datafile
-scriptversion=2009-04-28.21; # UTC
+scriptversion=2016-01-11.22; # UTC
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
@@ -35,25 +35,21 @@ scriptversion=2009-04-28.21; # UTC
# FSF changes to this file are in the public domain.
#
# Calling this script install-sh is preferred over install.sh, to prevent
-# `make' implicit rules from creating a file called install from it
+# 'make' implicit rules from creating a file called install from it
# when there is no Makefile.
#
# This script is compatible with the BSD install script, but was written
# from scratch.
+tab=' '
nl='
'
-IFS=" "" $nl"
+IFS=" $tab$nl"
-# set DOITPROG to echo to test this script
+# Set DOITPROG to "echo" to test this script.
-# Don't use :- since 4.3BSD and earlier shells don't like it.
doit=${DOITPROG-}
-if test -z "$doit"; then
- doit_exec=exec
-else
- doit_exec=$doit
-fi
+doit_exec=${doit:-exec}
# Put in absolute file names if you don't have them in your path;
# or use environment vars.
@@ -68,17 +64,6 @@ mvprog=${MVPROG-mv}
rmprog=${RMPROG-rm}
stripprog=${STRIPPROG-strip}
-posix_glob='?'
-initialize_posix_glob='
- test "$posix_glob" != "?" || {
- if (set -f) 2>/dev/null; then
- posix_glob=
- else
- posix_glob=:
- fi
- }
-'
-
posix_mkdir=
# Desired mode of installed file.
@@ -97,7 +82,7 @@ dir_arg=
dst_arg=
copy_on_change=false
-no_target_directory=
+is_target_a_directory=possibly
usage="\
Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
@@ -137,42 +122,57 @@ while test $# -ne 0; do
-d) dir_arg=true;;
-g) chgrpcmd="$chgrpprog $2"
- shift;;
+ shift;;
--help) echo "$usage"; exit $?;;
-m) mode=$2
- case $mode in
- *' '* | *' '* | *'
-'* | *'*'* | *'?'* | *'['*)
- echo "$0: invalid mode: $mode" >&2
- exit 1;;
- esac
- shift;;
+ case $mode in
+ *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
+ echo "$0: invalid mode: $mode" >&2
+ exit 1;;
+ esac
+ shift;;
-o) chowncmd="$chownprog $2"
- shift;;
+ shift;;
-s) stripcmd=$stripprog;;
- -t) dst_arg=$2
- shift;;
+ -t)
+ is_target_a_directory=always
+ dst_arg=$2
+ # Protect names problematic for 'test' and other utilities.
+ case $dst_arg in
+ -* | [=\(\)!]) dst_arg=./$dst_arg;;
+ esac
+ shift;;
- -T) no_target_directory=true;;
+ -T) is_target_a_directory=never;;
--version) echo "$0 $scriptversion"; exit $?;;
- --) shift
- break;;
+ --) shift
+ break;;
- -*) echo "$0: invalid option: $1" >&2
- exit 1;;
+ -*) echo "$0: invalid option: $1" >&2
+ exit 1;;
*) break;;
esac
shift
done
+# We allow the use of options -d and -T together, by making -d
+# take the precedence; this is for compatibility with GNU install.
+
+if test -n "$dir_arg"; then
+ if test -n "$dst_arg"; then
+ echo "$0: target directory not allowed when installing a directory." >&2
+ exit 1
+ fi
+fi
+
if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
# When -d is used, all remaining arguments are directories to create.
# When -t is used, the destination is already specified.
@@ -186,6 +186,10 @@ if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
fi
shift # arg
dst_arg=$arg
+ # Protect names problematic for 'test' and other utilities.
+ case $dst_arg in
+ -* | [=\(\)!]) dst_arg=./$dst_arg;;
+ esac
done
fi
@@ -194,13 +198,26 @@ if test $# -eq 0; then
echo "$0: no input file specified." >&2
exit 1
fi
- # It's OK to call `install-sh -d' without argument.
+ # It's OK to call 'install-sh -d' without argument.
# This can happen when creating conditional directories.
exit 0
fi
if test -z "$dir_arg"; then
- trap '(exit $?); exit' 1 2 13 15
+ if test $# -gt 1 || test "$is_target_a_directory" = always; then
+ if test ! -d "$dst_arg"; then
+ echo "$0: $dst_arg: Is not a directory." >&2
+ exit 1
+ fi
+ fi
+fi
+
+if test -z "$dir_arg"; then
+ do_exit='(exit $ret); exit $ret'
+ trap "ret=129; $do_exit" 1
+ trap "ret=130; $do_exit" 2
+ trap "ret=141; $do_exit" 13
+ trap "ret=143; $do_exit" 15
# Set umask so as not to create temps with too-generous modes.
# However, 'strip' requires both read and write access to temps.
@@ -211,16 +228,16 @@ if test -z "$dir_arg"; then
*[0-7])
if test -z "$stripcmd"; then
- u_plus_rw=
+ u_plus_rw=
else
- u_plus_rw='% 200'
+ u_plus_rw='% 200'
fi
cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
*)
if test -z "$stripcmd"; then
- u_plus_rw=
+ u_plus_rw=
else
- u_plus_rw=,u+rw
+ u_plus_rw=,u+rw
fi
cp_umask=$mode$u_plus_rw;;
esac
@@ -228,9 +245,9 @@ fi
for src
do
- # Protect names starting with `-'.
+ # Protect names problematic for 'test' and other utilities.
case $src in
- -*) src=./$src;;
+ -* | [=\(\)!]) src=./$src;;
esac
if test -n "$dir_arg"; then
@@ -252,51 +269,20 @@ do
echo "$0: no destination specified." >&2
exit 1
fi
-
dst=$dst_arg
- # Protect names starting with `-'.
- case $dst in
- -*) dst=./$dst;;
- esac
# If destination is a directory, append the input filename; won't work
# if double slashes aren't ignored.
if test -d "$dst"; then
- if test -n "$no_target_directory"; then
- echo "$0: $dst_arg: Is a directory" >&2
- exit 1
+ if test "$is_target_a_directory" = never; then
+ echo "$0: $dst_arg: Is a directory" >&2
+ exit 1
fi
dstdir=$dst
dst=$dstdir/`basename "$src"`
dstdir_status=0
else
- # Prefer dirname, but fall back on a substitute if dirname fails.
- dstdir=`
- (dirname "$dst") 2>/dev/null ||
- expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$dst" : 'X\(//\)[^/]' \| \
- X"$dst" : 'X\(//\)$' \| \
- X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
- echo X"$dst" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'
- `
-
+ dstdir=`dirname "$dst"`
test -d "$dstdir"
dstdir_status=$?
fi
@@ -307,74 +293,74 @@ do
if test $dstdir_status != 0; then
case $posix_mkdir in
'')
- # Create intermediate dirs using mode 755 as modified by the umask.
- # This is like FreeBSD 'install' as of 1997-10-28.
- umask=`umask`
- case $stripcmd.$umask in
- # Optimize common cases.
- *[2367][2367]) mkdir_umask=$umask;;
- .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
-
- *[0-7])
- mkdir_umask=`expr $umask + 22 \
- - $umask % 100 % 40 + $umask % 20 \
- - $umask % 10 % 4 + $umask % 2
- `;;
- *) mkdir_umask=$umask,go-w;;
- esac
-
- # With -d, create the new directory with the user-specified mode.
- # Otherwise, rely on $mkdir_umask.
- if test -n "$dir_arg"; then
- mkdir_mode=-m$mode
- else
- mkdir_mode=
- fi
-
- posix_mkdir=false
- case $umask in
- *[123567][0-7][0-7])
- # POSIX mkdir -p sets u+wx bits regardless of umask, which
- # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
- ;;
- *)
- tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
- trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
-
- if (umask $mkdir_umask &&
- exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
- then
- if test -z "$dir_arg" || {
- # Check for POSIX incompatibilities with -m.
- # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
- # other-writeable bit of parent directory when it shouldn't.
- # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
- ls_ld_tmpdir=`ls -ld "$tmpdir"`
- case $ls_ld_tmpdir in
- d????-?r-*) different_mode=700;;
- d????-?--*) different_mode=755;;
- *) false;;
- esac &&
- $mkdirprog -m$different_mode -p -- "$tmpdir" && {
- ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
- test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
- }
- }
- then posix_mkdir=:
- fi
- rmdir "$tmpdir/d" "$tmpdir"
- else
- # Remove any dirs left behind by ancient mkdir implementations.
- rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
- fi
- trap '' 0;;
- esac;;
+ # Create intermediate dirs using mode 755 as modified by the umask.
+ # This is like FreeBSD 'install' as of 1997-10-28.
+ umask=`umask`
+ case $stripcmd.$umask in
+ # Optimize common cases.
+ *[2367][2367]) mkdir_umask=$umask;;
+ .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
+
+ *[0-7])
+ mkdir_umask=`expr $umask + 22 \
+ - $umask % 100 % 40 + $umask % 20 \
+ - $umask % 10 % 4 + $umask % 2
+ `;;
+ *) mkdir_umask=$umask,go-w;;
+ esac
+
+ # With -d, create the new directory with the user-specified mode.
+ # Otherwise, rely on $mkdir_umask.
+ if test -n "$dir_arg"; then
+ mkdir_mode=-m$mode
+ else
+ mkdir_mode=
+ fi
+
+ posix_mkdir=false
+ case $umask in
+ *[123567][0-7][0-7])
+ # POSIX mkdir -p sets u+wx bits regardless of umask, which
+ # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+ ;;
+ *)
+ tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
+
+ if (umask $mkdir_umask &&
+ exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
+ then
+ if test -z "$dir_arg" || {
+ # Check for POSIX incompatibilities with -m.
+ # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+ # other-writable bit of parent directory when it shouldn't.
+ # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+ ls_ld_tmpdir=`ls -ld "$tmpdir"`
+ case $ls_ld_tmpdir in
+ d????-?r-*) different_mode=700;;
+ d????-?--*) different_mode=755;;
+ *) false;;
+ esac &&
+ $mkdirprog -m$different_mode -p -- "$tmpdir" && {
+ ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
+ test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+ }
+ }
+ then posix_mkdir=:
+ fi
+ rmdir "$tmpdir/d" "$tmpdir"
+ else
+ # Remove any dirs left behind by ancient mkdir implementations.
+ rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
+ fi
+ trap '' 0;;
+ esac;;
esac
if
$posix_mkdir && (
- umask $mkdir_umask &&
- $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
+ umask $mkdir_umask &&
+ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
)
then :
else
@@ -384,53 +370,51 @@ do
# directory the slow way, step by step, checking for races as we go.
case $dstdir in
- /*) prefix='/';;
- -*) prefix='./';;
- *) prefix='';;
+ /*) prefix='/';;
+ [-=\(\)!]*) prefix='./';;
+ *) prefix='';;
esac
- eval "$initialize_posix_glob"
-
oIFS=$IFS
IFS=/
- $posix_glob set -f
+ set -f
set fnord $dstdir
shift
- $posix_glob set +f
+ set +f
IFS=$oIFS
prefixes=
for d
do
- test -z "$d" && continue
-
- prefix=$prefix$d
- if test -d "$prefix"; then
- prefixes=
- else
- if $posix_mkdir; then
- (umask=$mkdir_umask &&
- $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
- # Don't fail if two instances are running concurrently.
- test -d "$prefix" || exit 1
- else
- case $prefix in
- *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
- *) qprefix=$prefix;;
- esac
- prefixes="$prefixes '$qprefix'"
- fi
- fi
- prefix=$prefix/
+ test X"$d" = X && continue
+
+ prefix=$prefix$d
+ if test -d "$prefix"; then
+ prefixes=
+ else
+ if $posix_mkdir; then
+ (umask=$mkdir_umask &&
+ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
+ # Don't fail if two instances are running concurrently.
+ test -d "$prefix" || exit 1
+ else
+ case $prefix in
+ *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
+ *) qprefix=$prefix;;
+ esac
+ prefixes="$prefixes '$qprefix'"
+ fi
+ fi
+ prefix=$prefix/
done
if test -n "$prefixes"; then
- # Don't fail if two instances are running concurrently.
- (umask $mkdir_umask &&
- eval "\$doit_exec \$mkdirprog $prefixes") ||
- test -d "$dstdir" || exit 1
- obsolete_mkdir_used=true
+ # Don't fail if two instances are running concurrently.
+ (umask $mkdir_umask &&
+ eval "\$doit_exec \$mkdirprog $prefixes") ||
+ test -d "$dstdir" || exit 1
+ obsolete_mkdir_used=true
fi
fi
fi
@@ -465,15 +449,12 @@ do
# If -C, don't bother to copy if it wouldn't change the file.
if $copy_on_change &&
- old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
- new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
-
- eval "$initialize_posix_glob" &&
- $posix_glob set -f &&
+ old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
+ new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
+ set -f &&
set X $old && old=:$2:$4:$5:$6 &&
set X $new && new=:$2:$4:$5:$6 &&
- $posix_glob set +f &&
-
+ set +f &&
test "$old" = "$new" &&
$cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
then
@@ -486,24 +467,24 @@ do
# to itself, or perhaps because mv is so ancient that it does not
# support -f.
{
- # Now remove or move aside any old file at destination location.
- # We try this two ways since rm can't unlink itself on some
- # systems and the destination file might be busy for other
- # reasons. In this case, the final cleanup might fail but the new
- # file should still install successfully.
- {
- test ! -f "$dst" ||
- $doit $rmcmd -f "$dst" 2>/dev/null ||
- { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
- { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
- } ||
- { echo "$0: cannot unlink or rename $dst" >&2
- (exit 1); exit 1
- }
- } &&
-
- # Now rename the file to the real destination.
- $doit $mvcmd "$dsttmp" "$dst"
+ # Now remove or move aside any old file at destination location.
+ # We try this two ways since rm can't unlink itself on some
+ # systems and the destination file might be busy for other
+ # reasons. In this case, the final cleanup might fail but the new
+ # file should still install successfully.
+ {
+ test ! -f "$dst" ||
+ $doit $rmcmd -f "$dst" 2>/dev/null ||
+ { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
+ { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+ } ||
+ { echo "$0: cannot unlink or rename $dst" >&2
+ (exit 1); exit 1
+ }
+ } &&
+
+ # Now rename the file to the real destination.
+ $doit $mvcmd "$dsttmp" "$dst"
}
fi || exit 1
@@ -515,6 +496,6 @@ done
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
+# time-stamp-time-zone: "UTC0"
# time-stamp-end: "; # UTC"
# End:
diff --git a/Build/source/utils/asymptote/lex.yy.cc b/Build/source/utils/asymptote/lex.yy.cc
index da9a42f73ce..b0024013e18 100644
--- a/Build/source/utils/asymptote/lex.yy.cc
+++ b/Build/source/utils/asymptote/lex.yy.cc
@@ -446,8 +446,8 @@ static void yy_fatal_error (yyconst char msg[] );
(yy_c_buf_p) = yy_cp;
/* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */
-#define YY_NUM_RULES 122
-#define YY_END_OF_BUFFER 123
+#define YY_NUM_RULES 124
+#define YY_END_OF_BUFFER 125
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
@@ -455,45 +455,45 @@ struct yy_trans_info
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
-static yyconst flex_int16_t yy_accept[335] =
+static yyconst flex_int16_t yy_accept[337] =
{ 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 123, 121, 28, 29, 29, 59, 119, 68,
- 46, 66, 120, 34, 35, 44, 42, 31, 43, 40,
- 45, 103, 32, 33, 53, 50, 55, 49, 68, 117,
- 36, 121, 37, 47, 117, 117, 117, 117, 117, 117,
- 117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
- 38, 67, 39, 68, 4, 3, 3, 4, 4, 10,
- 7, 7, 6, 10, 27, 13, 13, 12, 27, 122,
- 116, 111, 112, 111, 114, 114, 114, 114, 114, 114,
- 116, 116, 114, 116, 114, 114, 115, 116, 114, 114,
-
- 29, 52, 68, 73, 57, 48, 71, 62, 69, 64,
- 70, 63, 104, 118, 30, 72, 104, 103, 0, 61,
- 54, 51, 56, 117, 29, 74, 60, 117, 117, 117,
- 117, 117, 117, 117, 84, 117, 117, 117, 117, 117,
- 80, 117, 117, 117, 117, 117, 117, 117, 117, 117,
- 117, 117, 117, 117, 117, 117, 117, 58, 3, 2,
- 1, 7, 0, 0, 5, 0, 7, 9, 8, 13,
- 0, 0, 11, 0, 13, 14, 22, 22, 15, 16,
- 17, 18, 19, 20, 21, 0, 112, 114, 114, 113,
- 114, 115, 112, 65, 41, 0, 30, 0, 104, 0,
-
- 0, 104, 117, 75, 117, 117, 117, 117, 117, 117,
- 117, 117, 83, 117, 117, 117, 90, 117, 117, 117,
- 117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
- 117, 117, 0, 0, 23, 23, 25, 0, 0, 104,
- 117, 117, 117, 117, 79, 117, 81, 117, 117, 94,
- 117, 117, 117, 107, 117, 117, 117, 117, 117, 117,
- 117, 117, 117, 101, 105, 117, 117, 117, 24, 26,
- 0, 104, 117, 117, 86, 117, 117, 108, 117, 106,
- 117, 117, 117, 117, 117, 117, 96, 117, 117, 117,
- 117, 117, 117, 117, 82, 91, 117, 117, 117, 117,
-
- 92, 117, 117, 117, 117, 98, 117, 85, 97, 88,
- 117, 117, 117, 78, 117, 117, 117, 95, 117, 117,
- 99, 117, 77, 89, 93, 87, 76, 102, 109, 110,
- 117, 117, 100, 0
+ 0, 0, 125, 123, 28, 29, 29, 60, 121, 46,
+ 69, 47, 67, 122, 34, 35, 44, 42, 31, 43,
+ 40, 45, 105, 32, 33, 54, 51, 56, 50, 69,
+ 119, 36, 123, 37, 48, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 38, 68, 39, 69, 4, 3, 3, 4, 4,
+ 10, 7, 7, 6, 10, 27, 13, 13, 12, 27,
+ 124, 118, 113, 114, 113, 116, 116, 116, 116, 116,
+ 116, 118, 118, 116, 118, 116, 116, 117, 118, 116,
+
+ 116, 29, 53, 74, 69, 75, 58, 49, 72, 63,
+ 70, 65, 71, 64, 106, 120, 30, 73, 106, 105,
+ 0, 62, 55, 52, 57, 119, 29, 76, 61, 119,
+ 119, 119, 119, 119, 119, 119, 86, 119, 119, 119,
+ 119, 119, 82, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119, 119, 59,
+ 3, 2, 1, 7, 0, 0, 5, 0, 7, 9,
+ 8, 13, 0, 0, 11, 0, 13, 14, 22, 22,
+ 15, 16, 17, 18, 19, 20, 21, 0, 114, 116,
+ 116, 115, 116, 117, 114, 66, 41, 0, 30, 0,
+
+ 106, 0, 0, 106, 119, 77, 119, 119, 119, 119,
+ 119, 119, 119, 119, 85, 119, 119, 119, 92, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 0, 0, 23, 23, 25, 0,
+ 0, 106, 119, 119, 119, 119, 81, 119, 83, 119,
+ 119, 96, 119, 119, 119, 109, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 103, 107, 119, 119, 119,
+ 24, 26, 0, 106, 119, 119, 88, 119, 119, 110,
+ 119, 108, 119, 119, 119, 119, 119, 119, 98, 119,
+ 119, 119, 119, 119, 119, 119, 84, 93, 119, 119,
+
+ 119, 119, 94, 119, 119, 119, 119, 100, 119, 87,
+ 99, 90, 119, 119, 119, 80, 119, 119, 119, 97,
+ 119, 119, 101, 119, 79, 91, 95, 89, 78, 104,
+ 111, 112, 119, 119, 102, 0
} ;
static yyconst flex_int32_t yy_ec[256] =
@@ -501,17 +501,17 @@ static yyconst flex_int32_t yy_ec[256] =
1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 2, 5, 6, 1, 7, 8, 9, 10, 11,
- 12, 13, 14, 15, 16, 17, 18, 19, 19, 19,
- 19, 20, 20, 20, 20, 21, 21, 22, 23, 24,
- 25, 26, 27, 28, 29, 29, 29, 29, 29, 29,
- 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
- 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
- 31, 32, 33, 34, 30, 1, 35, 36, 37, 38,
-
- 39, 40, 30, 41, 42, 30, 43, 44, 45, 46,
- 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
- 57, 30, 58, 59, 60, 61, 1, 1, 1, 1,
+ 1, 2, 5, 6, 7, 8, 9, 10, 11, 12,
+ 13, 14, 15, 16, 17, 18, 19, 20, 20, 20,
+ 20, 21, 21, 21, 21, 22, 22, 23, 24, 25,
+ 26, 27, 28, 29, 30, 30, 30, 30, 30, 30,
+ 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
+ 32, 33, 34, 35, 31, 1, 36, 37, 38, 39,
+
+ 40, 41, 31, 42, 43, 31, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
+ 58, 31, 59, 60, 61, 62, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -528,172 +528,173 @@ static yyconst flex_int32_t yy_ec[256] =
1, 1, 1, 1, 1
} ;
-static yyconst flex_int32_t yy_meta[62] =
+static yyconst flex_int32_t yy_meta[63] =
{ 0,
1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 3, 3,
- 3, 1, 1, 1, 1, 1, 1, 1, 3, 3,
- 1, 1, 1, 1, 3, 3, 3, 3, 3, 3,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3,
+ 3, 3, 1, 1, 1, 1, 1, 1, 1, 3,
+ 3, 1, 1, 1, 1, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 1, 1, 1,
- 1
+ 3, 3, 3, 3, 3, 3, 3, 3, 1, 1,
+ 1, 1
} ;
-static yyconst flex_int16_t yy_base[342] =
+static yyconst flex_int16_t yy_base[344] =
{ 0,
- 0, 0, 59, 61, 63, 67, 72, 77, 0, 0,
- 109, 0, 536, 537, 537, 537, 532, 509, 537, 526,
- 507, 522, 537, 537, 537, 65, 69, 537, 68, 81,
- 78, 154, 508, 537, 61, 504, 63, 537, 500, 0,
- 537, 102, 537, 147, 139, 477, 130, 479, 134, 145,
- 154, 143, 477, 136, 471, 484, 470, 162, 475, 479,
- 537, 460, 537, 537, 537, 537, 515, 499, 503, 537,
- 537, 512, 203, 211, 537, 537, 511, 218, 248, 537,
- 537, 537, 537, 510, 487, 504, 537, 497, 495, 492,
- 490, 484, 83, 480, 172, 476, 0, 207, 469, 537,
-
- 537, 537, 537, 537, 537, 537, 537, 537, 537, 486,
- 537, 206, 210, 537, 0, 537, 217, 225, 241, 537,
- 537, 537, 537, 0, 498, 537, 537, 463, 461, 454,
- 458, 450, 445, 457, 0, 442, 444, 447, 440, 442,
- 0, 440, 450, 431, 441, 445, 441, 446, 434, 181,
- 213, 434, 437, 425, 429, 426, 433, 537, 537, 537,
- 537, 537, 267, 283, 537, 236, 471, 537, 537, 537,
- 303, 308, 537, 262, 470, 537, 259, 262, 537, 537,
- 537, 537, 537, 537, 537, 301, 537, 537, 537, 537,
- 456, 0, 468, 537, 306, 312, 0, 317, 322, 276,
-
- 333, 325, 431, 0, 430, 433, 415, 422, 421, 425,
- 419, 411, 0, 416, 413, 415, 418, 413, 406, 401,
- 410, 401, 400, 398, 398, 396, 397, 396, 407, 406,
- 409, 399, 353, 362, 309, 537, 354, 368, 376, 357,
- 391, 406, 397, 166, 0, 400, 0, 396, 398, 0,
- 386, 382, 384, 0, 398, 397, 389, 391, 379, 378,
- 385, 389, 383, 0, 0, 386, 369, 383, 537, 537,
- 384, 360, 370, 368, 0, 356, 354, 0, 362, 0,
- 341, 353, 351, 319, 318, 330, 0, 320, 314, 321,
- 298, 301, 300, 285, 0, 0, 267, 264, 264, 261,
-
- 0, 262, 246, 229, 235, 0, 235, 0, 0, 0,
- 213, 213, 203, 0, 202, 167, 152, 0, 163, 138,
- 0, 132, 0, 0, 0, 0, 0, 0, 0, 0,
- 140, 59, 0, 537, 405, 408, 411, 414, 89, 65,
- 417
+ 0, 0, 60, 62, 64, 69, 74, 79, 0, 0,
+ 112, 0, 539, 540, 540, 540, 535, 511, 540, 510,
+ 527, 508, 523, 540, 540, 540, 66, 69, 540, 70,
+ 83, 72, 157, 509, 540, 63, 505, 67, 540, 501,
+ 0, 540, 96, 540, 150, 142, 478, 133, 480, 137,
+ 148, 157, 146, 478, 55, 472, 485, 471, 150, 476,
+ 480, 540, 461, 540, 540, 540, 540, 517, 500, 504,
+ 540, 540, 514, 203, 207, 540, 540, 513, 213, 244,
+ 540, 540, 540, 540, 512, 488, 540, 505, 498, 496,
+ 493, 491, 485, 85, 481, 194, 477, 0, 219, 470,
+
+ 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
+ 540, 487, 540, 207, 211, 540, 0, 540, 217, 223,
+ 239, 540, 540, 540, 540, 0, 500, 540, 540, 464,
+ 462, 455, 459, 451, 446, 458, 0, 443, 445, 448,
+ 441, 443, 0, 441, 451, 432, 442, 446, 442, 447,
+ 435, 200, 198, 435, 438, 426, 430, 427, 434, 540,
+ 540, 540, 540, 540, 265, 300, 540, 270, 473, 540,
+ 540, 540, 306, 312, 540, 275, 472, 540, 262, 266,
+ 540, 540, 540, 540, 540, 540, 540, 304, 540, 540,
+ 540, 540, 457, 0, 470, 540, 272, 307, 0, 320,
+
+ 310, 331, 339, 315, 432, 0, 431, 434, 416, 423,
+ 422, 426, 420, 412, 0, 417, 414, 416, 419, 414,
+ 407, 402, 411, 402, 401, 399, 399, 397, 398, 397,
+ 408, 407, 410, 400, 360, 366, 268, 540, 358, 369,
+ 380, 361, 392, 407, 398, 175, 0, 401, 0, 397,
+ 399, 0, 387, 383, 385, 0, 399, 398, 390, 392,
+ 380, 379, 386, 389, 364, 0, 0, 367, 349, 358,
+ 540, 540, 388, 391, 344, 342, 0, 345, 339, 0,
+ 347, 0, 323, 336, 337, 314, 312, 320, 0, 314,
+ 308, 311, 291, 295, 282, 281, 0, 0, 266, 259,
+
+ 262, 262, 0, 260, 250, 236, 235, 0, 232, 0,
+ 0, 0, 219, 221, 213, 0, 202, 178, 159, 0,
+ 162, 142, 0, 135, 0, 0, 0, 0, 0, 0,
+ 0, 0, 143, 69, 0, 540, 413, 416, 419, 422,
+ 68, 66, 425
} ;
-static yyconst flex_int16_t yy_def[342] =
+static yyconst flex_int16_t yy_def[344] =
{ 0,
- 334, 1, 335, 335, 336, 336, 337, 337, 338, 338,
- 334, 11, 334, 334, 334, 334, 334, 334, 334, 334,
- 334, 334, 334, 334, 334, 334, 334, 334, 334, 334,
- 334, 334, 334, 334, 334, 334, 334, 334, 334, 339,
- 334, 334, 334, 334, 339, 339, 339, 339, 339, 339,
- 339, 339, 339, 339, 339, 339, 339, 339, 339, 339,
- 334, 334, 334, 334, 334, 334, 334, 334, 334, 334,
- 334, 334, 334, 334, 334, 334, 334, 334, 334, 334,
- 334, 334, 334, 334, 334, 334, 334, 334, 334, 334,
- 334, 334, 334, 334, 334, 334, 340, 334, 334, 334,
-
- 334, 334, 334, 334, 334, 334, 334, 334, 334, 334,
- 334, 334, 334, 334, 341, 334, 334, 334, 334, 334,
- 334, 334, 334, 339, 334, 334, 334, 339, 339, 339,
- 339, 339, 339, 339, 339, 339, 339, 339, 339, 339,
- 339, 339, 339, 339, 339, 339, 339, 339, 339, 339,
- 339, 339, 339, 339, 339, 339, 339, 334, 334, 334,
- 334, 334, 334, 334, 334, 334, 334, 334, 334, 334,
- 334, 334, 334, 334, 334, 334, 334, 334, 334, 334,
- 334, 334, 334, 334, 334, 334, 334, 334, 334, 334,
- 334, 340, 334, 334, 334, 334, 341, 334, 334, 334,
-
- 334, 334, 339, 339, 339, 339, 339, 339, 339, 339,
- 339, 339, 339, 339, 339, 339, 339, 339, 339, 339,
- 339, 339, 339, 339, 339, 339, 339, 339, 339, 339,
- 339, 339, 334, 334, 334, 334, 334, 334, 334, 334,
- 339, 339, 339, 339, 339, 339, 339, 339, 339, 339,
- 339, 339, 339, 339, 339, 339, 339, 339, 339, 339,
- 339, 339, 339, 339, 339, 339, 339, 339, 334, 334,
- 334, 334, 339, 339, 339, 339, 339, 339, 339, 339,
- 339, 339, 339, 339, 339, 339, 339, 339, 339, 339,
- 339, 339, 339, 339, 339, 339, 339, 339, 339, 339,
-
- 339, 339, 339, 339, 339, 339, 339, 339, 339, 339,
- 339, 339, 339, 339, 339, 339, 339, 339, 339, 339,
- 339, 339, 339, 339, 339, 339, 339, 339, 339, 339,
- 339, 339, 339, 0, 334, 334, 334, 334, 334, 334,
- 334
+ 336, 1, 337, 337, 338, 338, 339, 339, 340, 340,
+ 336, 11, 336, 336, 336, 336, 336, 336, 336, 336,
+ 336, 336, 336, 336, 336, 336, 336, 336, 336, 336,
+ 336, 336, 336, 336, 336, 336, 336, 336, 336, 336,
+ 341, 336, 336, 336, 336, 341, 341, 341, 341, 341,
+ 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
+ 341, 336, 336, 336, 336, 336, 336, 336, 336, 336,
+ 336, 336, 336, 336, 336, 336, 336, 336, 336, 336,
+ 336, 336, 336, 336, 336, 336, 336, 336, 336, 336,
+ 336, 336, 336, 336, 336, 336, 336, 342, 336, 336,
+
+ 336, 336, 336, 336, 336, 336, 336, 336, 336, 336,
+ 336, 336, 336, 336, 336, 336, 343, 336, 336, 336,
+ 336, 336, 336, 336, 336, 341, 336, 336, 336, 341,
+ 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
+ 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
+ 341, 341, 341, 341, 341, 341, 341, 341, 341, 336,
+ 336, 336, 336, 336, 336, 336, 336, 336, 336, 336,
+ 336, 336, 336, 336, 336, 336, 336, 336, 336, 336,
+ 336, 336, 336, 336, 336, 336, 336, 336, 336, 336,
+ 336, 336, 336, 342, 336, 336, 336, 336, 343, 336,
+
+ 336, 336, 336, 336, 341, 341, 341, 341, 341, 341,
+ 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
+ 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
+ 341, 341, 341, 341, 336, 336, 336, 336, 336, 336,
+ 336, 336, 341, 341, 341, 341, 341, 341, 341, 341,
+ 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
+ 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
+ 336, 336, 336, 336, 341, 341, 341, 341, 341, 341,
+ 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
+ 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
+
+ 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
+ 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
+ 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
+ 341, 341, 341, 341, 341, 0, 336, 336, 336, 336,
+ 336, 336, 336
} ;
-static yyconst flex_int16_t yy_nxt[599] =
+static yyconst flex_int16_t yy_nxt[603] =
{ 0,
14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31, 32, 32,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 40,
+ 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
+ 33, 33, 34, 35, 36, 37, 38, 39, 40, 41,
41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
- 40, 51, 40, 40, 40, 52, 53, 54, 55, 56,
- 57, 58, 59, 40, 60, 40, 40, 61, 62, 63,
- 64, 66, 67, 66, 67, 71, 72, 192, 73, 71,
- 72, 68, 73, 68, 76, 77, 69, 106, 69, 76,
- 77, 78, 108, 110, 103, 121, 78, 123, 103, 107,
- 114, 124, 111, 109, 74, 115, 333, 112, 74, 113,
-
- 113, 113, 116, 79, 101, 125, 189, 188, 79, 81,
- 82, 83, 84, 85, 81, 86, 87, 87, 81, 81,
- 81, 88, 89, 81, 90, 91, 87, 81, 81, 81,
- 92, 81, 93, 94, 95, 81, 96, 97, 97, 81,
- 98, 81, 99, 97, 97, 97, 97, 97, 97, 97,
- 97, 97, 97, 97, 97, 97, 97, 97, 97, 97,
- 97, 97, 97, 97, 97, 97, 81, 87, 81, 100,
- 117, 126, 118, 118, 118, 128, 132, 136, 332, 138,
- 127, 144, 133, 331, 129, 147, 134, 330, 148, 137,
- 130, 139, 119, 141, 140, 145, 188, 189, 142, 143,
-
- 152, 329, 153, 328, 163, 163, 164, 276, 165, 187,
- 193, 154, 165, 162, 167, 277, 168, 327, 155, 171,
- 171, 172, 195, 173, 196, 196, 196, 173, 113, 113,
- 113, 223, 224, 198, 166, 199, 199, 199, 163, 164,
- 326, 117, 169, 118, 118, 118, 325, 225, 119, 174,
- 170, 175, 324, 176, 201, 200, 201, 176, 323, 202,
- 202, 202, 226, 119, 171, 172, 177, 178, 163, 163,
- 164, 322, 165, 321, 176, 320, 165, 235, 235, 176,
- 236, 236, 179, 180, 163, 233, 164, 181, 165, 239,
- 319, 239, 165, 182, 240, 240, 240, 183, 166, 184,
-
- 318, 185, 317, 186, 171, 171, 172, 316, 173, 171,
- 234, 172, 173, 173, 166, 237, 315, 173, 314, 237,
- 237, 237, 198, 313, 196, 196, 196, 269, 269, 237,
- 196, 196, 196, 198, 174, 196, 196, 196, 312, 174,
- 199, 199, 199, 202, 202, 202, 201, 311, 201, 310,
- 119, 202, 202, 202, 163, 163, 164, 309, 165, 308,
- 238, 307, 165, 171, 171, 172, 306, 173, 270, 305,
- 304, 173, 270, 270, 270, 240, 240, 240, 272, 272,
- 272, 271, 270, 271, 166, 303, 272, 272, 272, 239,
- 302, 239, 301, 174, 240, 240, 240, 271, 300, 271,
-
- 299, 298, 272, 272, 272, 65, 65, 65, 70, 70,
- 70, 75, 75, 75, 80, 80, 80, 197, 297, 197,
- 296, 295, 294, 293, 292, 291, 290, 289, 288, 287,
- 286, 285, 284, 283, 282, 281, 280, 279, 278, 275,
- 274, 273, 268, 267, 266, 265, 264, 263, 262, 261,
- 260, 259, 258, 257, 256, 255, 254, 253, 252, 251,
- 250, 249, 248, 247, 246, 245, 244, 243, 242, 241,
- 187, 188, 170, 162, 232, 231, 230, 229, 228, 227,
- 222, 221, 220, 219, 218, 217, 216, 215, 214, 213,
- 212, 211, 210, 209, 208, 207, 206, 205, 204, 203,
-
- 101, 194, 188, 189, 188, 188, 188, 191, 188, 190,
- 189, 188, 187, 170, 162, 161, 160, 159, 158, 157,
- 156, 151, 150, 149, 146, 135, 131, 103, 122, 120,
- 105, 104, 103, 102, 101, 334, 13, 334, 334, 334,
- 334, 334, 334, 334, 334, 334, 334, 334, 334, 334,
- 334, 334, 334, 334, 334, 334, 334, 334, 334, 334,
- 334, 334, 334, 334, 334, 334, 334, 334, 334, 334,
- 334, 334, 334, 334, 334, 334, 334, 334, 334, 334,
- 334, 334, 334, 334, 334, 334, 334, 334, 334, 334,
- 334, 334, 334, 334, 334, 334, 334, 334
-
+ 51, 41, 52, 41, 41, 41, 53, 54, 55, 56,
+ 57, 58, 59, 60, 41, 61, 41, 41, 62, 63,
+ 64, 65, 67, 68, 67, 68, 72, 73, 194, 74,
+ 126, 72, 73, 69, 74, 69, 77, 78, 70, 108,
+ 70, 77, 78, 110, 79, 116, 112, 105, 123, 79,
+ 117, 109, 125, 105, 111, 113, 75, 118, 102, 127,
+
+ 114, 75, 115, 115, 115, 149, 80, 335, 150, 191,
+ 190, 80, 82, 83, 84, 85, 86, 82, 87, 88,
+ 87, 87, 82, 82, 82, 89, 90, 82, 91, 92,
+ 87, 82, 82, 82, 93, 82, 94, 95, 96, 82,
+ 97, 98, 98, 82, 99, 82, 100, 98, 98, 98,
+ 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
+ 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
+ 82, 87, 82, 101, 119, 128, 120, 120, 120, 130,
+ 134, 138, 334, 140, 129, 146, 135, 333, 131, 154,
+ 136, 155, 332, 139, 132, 141, 121, 143, 142, 147,
+
+ 156, 331, 144, 145, 165, 165, 166, 157, 167, 164,
+ 169, 330, 170, 167, 173, 173, 174, 278, 175, 190,
+ 191, 189, 195, 175, 197, 279, 198, 198, 198, 329,
+ 115, 115, 115, 227, 200, 168, 201, 201, 201, 171,
+ 119, 328, 120, 120, 120, 176, 172, 177, 228, 178,
+ 121, 225, 226, 203, 178, 203, 202, 327, 204, 204,
+ 204, 326, 121, 179, 180, 325, 165, 165, 166, 324,
+ 167, 178, 165, 166, 323, 167, 178, 173, 174, 181,
+ 182, 237, 237, 322, 183, 238, 238, 271, 271, 200,
+ 184, 198, 198, 198, 185, 321, 186, 168, 187, 320,
+
+ 188, 165, 235, 166, 319, 167, 318, 173, 173, 174,
+ 167, 175, 317, 173, 236, 174, 175, 175, 316, 239,
+ 315, 314, 175, 239, 239, 239, 198, 198, 198, 201,
+ 201, 201, 168, 239, 204, 204, 204, 200, 176, 198,
+ 198, 198, 313, 312, 176, 241, 121, 241, 311, 240,
+ 242, 242, 242, 203, 310, 203, 309, 308, 204, 204,
+ 204, 165, 165, 166, 307, 167, 306, 173, 173, 174,
+ 167, 175, 305, 272, 304, 303, 175, 272, 272, 272,
+ 242, 242, 242, 273, 302, 273, 301, 272, 274, 274,
+ 274, 300, 168, 299, 241, 298, 241, 297, 176, 242,
+
+ 242, 242, 273, 296, 273, 295, 294, 274, 274, 274,
+ 274, 274, 274, 66, 66, 66, 71, 71, 71, 76,
+ 76, 76, 81, 81, 81, 199, 293, 199, 292, 291,
+ 290, 289, 288, 287, 286, 285, 284, 283, 282, 281,
+ 280, 277, 276, 275, 270, 269, 268, 267, 266, 265,
+ 264, 263, 262, 261, 260, 259, 258, 257, 256, 255,
+ 254, 253, 252, 251, 250, 249, 248, 247, 246, 245,
+ 244, 243, 189, 190, 172, 164, 234, 233, 232, 231,
+ 230, 229, 224, 223, 222, 221, 220, 219, 218, 217,
+ 216, 215, 214, 213, 212, 211, 210, 209, 208, 207,
+
+ 206, 205, 102, 196, 190, 191, 190, 190, 190, 193,
+ 190, 192, 191, 190, 189, 172, 164, 163, 162, 161,
+ 160, 159, 158, 153, 152, 151, 148, 137, 133, 105,
+ 124, 122, 107, 106, 105, 104, 103, 102, 336, 13,
+ 336, 336, 336, 336, 336, 336, 336, 336, 336, 336,
+ 336, 336, 336, 336, 336, 336, 336, 336, 336, 336,
+ 336, 336, 336, 336, 336, 336, 336, 336, 336, 336,
+ 336, 336, 336, 336, 336, 336, 336, 336, 336, 336,
+ 336, 336, 336, 336, 336, 336, 336, 336, 336, 336,
+ 336, 336, 336, 336, 336, 336, 336, 336, 336, 336,
+
+ 336, 336
} ;
-static yyconst flex_int16_t yy_chk[599] =
+static yyconst flex_int16_t yy_chk[603] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -701,66 +702,67 @@ static yyconst flex_int16_t yy_chk[599] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 3, 3, 4, 4, 5, 5, 340, 5, 6,
- 6, 3, 6, 4, 7, 7, 3, 26, 4, 8,
- 8, 7, 27, 29, 35, 35, 8, 37, 37, 26,
- 31, 339, 29, 27, 5, 31, 332, 30, 6, 30,
+ 1, 1, 3, 3, 4, 4, 5, 5, 342, 5,
+ 341, 6, 6, 3, 6, 4, 7, 7, 3, 27,
+ 4, 8, 8, 28, 7, 32, 30, 36, 36, 8,
+ 32, 27, 38, 38, 28, 30, 5, 32, 43, 43,
- 30, 30, 31, 7, 42, 42, 93, 93, 8, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
+ 31, 6, 31, 31, 31, 55, 7, 334, 55, 94,
+ 94, 8, 11, 11, 11, 11, 11, 11, 11, 11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 32, 44, 32, 32, 32, 45, 47, 49, 331, 50,
- 44, 52, 47, 322, 45, 54, 47, 320, 54, 49,
- 45, 50, 32, 51, 50, 52, 95, 95, 51, 51,
-
- 58, 319, 58, 317, 73, 73, 73, 244, 73, 98,
- 98, 58, 73, 74, 74, 244, 74, 316, 58, 78,
- 78, 78, 112, 78, 112, 112, 112, 78, 113, 113,
- 113, 150, 150, 117, 73, 117, 117, 117, 166, 166,
- 315, 118, 74, 118, 118, 118, 313, 151, 113, 78,
- 79, 79, 312, 79, 119, 117, 119, 79, 311, 119,
- 119, 119, 151, 118, 174, 174, 79, 79, 163, 163,
- 163, 307, 163, 305, 79, 304, 163, 177, 177, 79,
- 178, 178, 79, 79, 164, 164, 164, 79, 164, 200,
- 303, 200, 164, 79, 200, 200, 200, 79, 163, 79,
-
- 302, 79, 300, 79, 171, 171, 171, 299, 171, 172,
- 172, 172, 171, 172, 164, 186, 298, 172, 297, 186,
- 186, 186, 195, 294, 195, 195, 195, 235, 235, 186,
- 196, 196, 196, 198, 171, 198, 198, 198, 293, 172,
- 199, 199, 199, 202, 202, 202, 201, 292, 201, 291,
- 196, 201, 201, 201, 233, 233, 233, 290, 233, 289,
- 199, 288, 233, 234, 234, 234, 286, 234, 237, 285,
- 284, 234, 237, 237, 237, 240, 240, 240, 272, 272,
- 272, 238, 237, 238, 233, 283, 238, 238, 238, 239,
- 282, 239, 281, 234, 239, 239, 239, 271, 279, 271,
-
- 277, 276, 271, 271, 271, 335, 335, 335, 336, 336,
- 336, 337, 337, 337, 338, 338, 338, 341, 274, 341,
- 273, 268, 267, 266, 263, 262, 261, 260, 259, 258,
- 257, 256, 255, 253, 252, 251, 249, 248, 246, 243,
- 242, 241, 232, 231, 230, 229, 228, 227, 226, 225,
- 224, 223, 222, 221, 220, 219, 218, 217, 216, 215,
- 214, 212, 211, 210, 209, 208, 207, 206, 205, 203,
- 193, 191, 175, 167, 157, 156, 155, 154, 153, 152,
- 149, 148, 147, 146, 145, 144, 143, 142, 140, 139,
- 138, 137, 136, 134, 133, 132, 131, 130, 129, 128,
-
- 125, 110, 99, 96, 94, 92, 91, 90, 89, 88,
- 86, 85, 84, 77, 72, 69, 68, 67, 62, 60,
- 59, 57, 56, 55, 53, 48, 46, 39, 36, 33,
- 22, 21, 20, 18, 17, 13, 334, 334, 334, 334,
- 334, 334, 334, 334, 334, 334, 334, 334, 334, 334,
- 334, 334, 334, 334, 334, 334, 334, 334, 334, 334,
- 334, 334, 334, 334, 334, 334, 334, 334, 334, 334,
- 334, 334, 334, 334, 334, 334, 334, 334, 334, 334,
- 334, 334, 334, 334, 334, 334, 334, 334, 334, 334,
- 334, 334, 334, 334, 334, 334, 334, 334
-
+ 11, 11, 11, 11, 33, 45, 33, 33, 33, 46,
+ 48, 50, 333, 51, 45, 53, 48, 324, 46, 59,
+ 48, 59, 322, 50, 46, 51, 33, 52, 51, 53,
+
+ 59, 321, 52, 52, 74, 74, 74, 59, 74, 75,
+ 75, 319, 75, 74, 79, 79, 79, 246, 79, 96,
+ 96, 99, 99, 79, 114, 246, 114, 114, 114, 318,
+ 115, 115, 115, 153, 119, 74, 119, 119, 119, 75,
+ 120, 317, 120, 120, 120, 79, 80, 80, 153, 80,
+ 115, 152, 152, 121, 80, 121, 119, 315, 121, 121,
+ 121, 314, 120, 80, 80, 313, 165, 165, 165, 309,
+ 165, 80, 168, 168, 307, 165, 80, 176, 176, 80,
+ 80, 179, 179, 306, 80, 180, 180, 237, 237, 197,
+ 80, 197, 197, 197, 80, 305, 80, 165, 80, 304,
+
+ 80, 166, 166, 166, 302, 166, 301, 173, 173, 173,
+ 166, 173, 300, 174, 174, 174, 173, 174, 299, 188,
+ 296, 295, 174, 188, 188, 188, 198, 198, 198, 201,
+ 201, 201, 166, 188, 204, 204, 204, 200, 173, 200,
+ 200, 200, 294, 293, 174, 202, 198, 202, 292, 201,
+ 202, 202, 202, 203, 291, 203, 290, 288, 203, 203,
+ 203, 235, 235, 235, 287, 235, 286, 236, 236, 236,
+ 235, 236, 285, 239, 284, 283, 236, 239, 239, 239,
+ 242, 242, 242, 240, 281, 240, 279, 239, 240, 240,
+ 240, 278, 235, 276, 241, 275, 241, 270, 236, 241,
+
+ 241, 241, 273, 269, 273, 268, 265, 273, 273, 273,
+ 274, 274, 274, 337, 337, 337, 338, 338, 338, 339,
+ 339, 339, 340, 340, 340, 343, 264, 343, 263, 262,
+ 261, 260, 259, 258, 257, 255, 254, 253, 251, 250,
+ 248, 245, 244, 243, 234, 233, 232, 231, 230, 229,
+ 228, 227, 226, 225, 224, 223, 222, 221, 220, 219,
+ 218, 217, 216, 214, 213, 212, 211, 210, 209, 208,
+ 207, 205, 195, 193, 177, 169, 159, 158, 157, 156,
+ 155, 154, 151, 150, 149, 148, 147, 146, 145, 144,
+ 142, 141, 140, 139, 138, 136, 135, 134, 133, 132,
+
+ 131, 130, 127, 112, 100, 97, 95, 93, 92, 91,
+ 90, 89, 88, 86, 85, 78, 73, 70, 69, 68,
+ 63, 61, 60, 58, 57, 56, 54, 49, 47, 40,
+ 37, 34, 23, 22, 21, 20, 18, 17, 13, 336,
+ 336, 336, 336, 336, 336, 336, 336, 336, 336, 336,
+ 336, 336, 336, 336, 336, 336, 336, 336, 336, 336,
+ 336, 336, 336, 336, 336, 336, 336, 336, 336, 336,
+ 336, 336, 336, 336, 336, 336, 336, 336, 336, 336,
+ 336, 336, 336, 336, 336, 336, 336, 336, 336, 336,
+ 336, 336, 336, 336, 336, 336, 336, 336, 336, 336,
+
+ 336, 336
} ;
static yy_state_type yy_last_accepting_state;
@@ -769,7 +771,7 @@ static char *yy_last_accepting_cpos;
extern int yy_flex_debug;
int yy_flex_debug = 1;
-static yyconst flex_int16_t yy_rule_linenum[122] =
+static yyconst flex_int16_t yy_rule_linenum[124] =
{ 0,
212, 213, 215, 221, 225, 226, 236, 237, 238, 239,
243, 244, 254, 255, 256, 257, 258, 259, 260, 261,
@@ -777,14 +779,14 @@ static yyconst flex_int16_t yy_rule_linenum[122] =
299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
309, 311, 312, 313, 314, 315, 316, 317, 318, 319,
320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
- 330, 331, 332, 333, 334, 335, 336, 337, 339, 340,
- 341, 342, 343, 344, 346, 347, 348, 349, 350, 352,
- 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
- 363, 364, 365, 366, 367, 368, 369, 371, 372, 373,
-
- 374, 375, 378, 385, 392, 394, 396, 398, 400, 403,
- 405, 406, 412, 416, 420, 424, 427, 431, 432, 433,
- 437
+ 330, 331, 332, 333, 334, 335, 336, 337, 338, 340,
+ 341, 342, 343, 344, 345, 346, 348, 349, 350, 351,
+ 352, 354, 355, 356, 357, 358, 359, 360, 361, 362,
+ 363, 364, 365, 366, 367, 368, 369, 370, 371, 373,
+
+ 374, 375, 376, 377, 380, 387, 394, 396, 398, 400,
+ 402, 405, 407, 408, 414, 418, 422, 426, 429, 433,
+ 434, 435, 439
} ;
/* The intent behind this definition is that it'll catch
@@ -996,7 +998,7 @@ void getstring(void)
-#line 1000 "lex.yy.cc"
+#line 1002 "lex.yy.cc"
#define INITIAL 0
#define lexcomment 1
@@ -1281,7 +1283,7 @@ YY_DECL
#line 209 "camp.l"
-#line 1285 "lex.yy.cc"
+#line 1287 "lex.yy.cc"
while ( 1 ) /* loops until end-of-file is reached */
{
@@ -1310,13 +1312,13 @@ yy_match:
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 335 )
+ if ( yy_current_state >= 337 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
++yy_cp;
}
- while ( yy_base[yy_current_state] != 537 );
+ while ( yy_base[yy_current_state] != 540 );
yy_find_action:
/* %% [10.0] code to find the action number goes here */
@@ -1339,13 +1341,13 @@ do_action: /* This label is used only to access EOF actions. */
{
if ( yy_act == 0 )
fprintf( stderr, "--scanner backing up\n" );
- else if ( yy_act < 122 )
+ else if ( yy_act < 124 )
fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
(long)yy_rule_linenum[yy_act], yytext );
- else if ( yy_act == 122 )
+ else if ( yy_act == 124 )
fprintf( stderr, "--accepting default rule (\"%s\")\n",
yytext );
- else if ( yy_act == 123 )
+ else if ( yy_act == 125 )
fprintf( stderr, "--(end of buffer or a NUL)\n" );
else
fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
@@ -1666,292 +1668,302 @@ YY_RULE_SETUP
case 46:
YY_RULE_SETUP
#line 315 "camp.l"
-{DEFSYMBOL(SYM_MOD); return '%'; }
+{DEFSYMBOL(SYM_QUOTIENT); return '#'; }
YY_BREAK
case 47:
YY_RULE_SETUP
#line 316 "camp.l"
-{DEFSYMBOL(SYM_CARET); return '^'; }
+{DEFSYMBOL(SYM_MOD); return '%'; }
YY_BREAK
case 48:
YY_RULE_SETUP
#line 317 "camp.l"
-{savesymbol(SYM_CARET); return '^'; }
+{DEFSYMBOL(SYM_CARET); return '^'; }
YY_BREAK
case 49:
YY_RULE_SETUP
#line 318 "camp.l"
-{adjust(); return '?'; }
+{savesymbol(SYM_CARET); return '^'; }
YY_BREAK
case 50:
YY_RULE_SETUP
#line 319 "camp.l"
-{adjust(); return ASSIGN; }
+{adjust(); return '?'; }
YY_BREAK
case 51:
YY_RULE_SETUP
#line 320 "camp.l"
-{DEFSYMBOL(SYM_EQ); return EQ; }
+{adjust(); return ASSIGN; }
YY_BREAK
case 52:
YY_RULE_SETUP
#line 321 "camp.l"
-{DEFSYMBOL(SYM_NEQ); return NEQ; }
+{DEFSYMBOL(SYM_EQ); return EQ; }
YY_BREAK
case 53:
YY_RULE_SETUP
#line 322 "camp.l"
-{DEFSYMBOL(SYM_LT); return LT; }
+{DEFSYMBOL(SYM_NEQ); return NEQ; }
YY_BREAK
case 54:
YY_RULE_SETUP
#line 323 "camp.l"
-{DEFSYMBOL(SYM_LE); return LE; }
+{DEFSYMBOL(SYM_LT); return LT; }
YY_BREAK
case 55:
YY_RULE_SETUP
#line 324 "camp.l"
-{DEFSYMBOL(SYM_GT); return GT; }
+{DEFSYMBOL(SYM_LE); return LE; }
YY_BREAK
case 56:
YY_RULE_SETUP
#line 325 "camp.l"
-{DEFSYMBOL(SYM_GE); return GE; }
+{DEFSYMBOL(SYM_GT); return GT; }
YY_BREAK
case 57:
YY_RULE_SETUP
#line 326 "camp.l"
-{DEFSYMBOL(SYM_CAND); return CAND; }
+{DEFSYMBOL(SYM_GE); return GE; }
YY_BREAK
case 58:
YY_RULE_SETUP
#line 327 "camp.l"
-{DEFSYMBOL(SYM_COR); return COR; }
+{DEFSYMBOL(SYM_CAND); return CAND; }
YY_BREAK
case 59:
YY_RULE_SETUP
#line 328 "camp.l"
-{DEFSYMBOL(SYM_LOGNOT); return OPERATOR; }
+{DEFSYMBOL(SYM_COR); return COR; }
YY_BREAK
case 60:
YY_RULE_SETUP
#line 329 "camp.l"
-{DEFSYMBOL(SYM_CARETS); return CARETS; }
+{DEFSYMBOL(SYM_LOGNOT); return OPERATOR; }
YY_BREAK
case 61:
YY_RULE_SETUP
#line 330 "camp.l"
-{DEFSYMBOL(SYM_COLONS); return COLONS; }
+{DEFSYMBOL(SYM_CARETS); return CARETS; }
YY_BREAK
case 62:
YY_RULE_SETUP
#line 331 "camp.l"
-{DEFSYMBOL(SYM_INCR); return INCR; }
+{DEFSYMBOL(SYM_COLONS); return COLONS; }
YY_BREAK
case 63:
YY_RULE_SETUP
#line 332 "camp.l"
-{DEFSYMBOL(SYM_DOTS); return DOTS; }
+{DEFSYMBOL(SYM_INCR); return INCR; }
YY_BREAK
case 64:
YY_RULE_SETUP
#line 333 "camp.l"
-{DEFSYMBOL(SYM_DASHES); return DASHES; }
+{DEFSYMBOL(SYM_DOTS); return DOTS; }
YY_BREAK
case 65:
YY_RULE_SETUP
#line 334 "camp.l"
-{DEFSYMBOL(SYM_LONGDASH); return LONGDASH; }
+{DEFSYMBOL(SYM_DASHES); return DASHES; }
YY_BREAK
case 66:
YY_RULE_SETUP
#line 335 "camp.l"
-{DEFSYMBOL(SYM_AMPERSAND); return AMPERSAND; }
+{DEFSYMBOL(SYM_LONGDASH); return LONGDASH; }
YY_BREAK
case 67:
YY_RULE_SETUP
#line 336 "camp.l"
-{DEFSYMBOL(SYM_BAR); return BAR; }
+{DEFSYMBOL(SYM_AMPERSAND); return AMPERSAND; }
YY_BREAK
case 68:
YY_RULE_SETUP
#line 337 "camp.l"
-{makeopsymbol(); return OPERATOR; }
+{DEFSYMBOL(SYM_BAR); return BAR; }
YY_BREAK
case 69:
YY_RULE_SETUP
-#line 339 "camp.l"
-{savesymbol(SYM_PLUS); return SELFOP; }
+#line 338 "camp.l"
+{makeopsymbol(); return OPERATOR; }
YY_BREAK
case 70:
YY_RULE_SETUP
#line 340 "camp.l"
-{savesymbol(SYM_MINUS); return SELFOP; }
+{savesymbol(SYM_PLUS); return SELFOP; }
YY_BREAK
case 71:
YY_RULE_SETUP
#line 341 "camp.l"
-{savesymbol(SYM_TIMES); return SELFOP; }
+{savesymbol(SYM_MINUS); return SELFOP; }
YY_BREAK
case 72:
YY_RULE_SETUP
#line 342 "camp.l"
-{savesymbol(SYM_DIVIDE); return SELFOP; }
+{savesymbol(SYM_TIMES); return SELFOP; }
YY_BREAK
case 73:
YY_RULE_SETUP
#line 343 "camp.l"
-{savesymbol(SYM_MOD); return SELFOP; }
+{savesymbol(SYM_DIVIDE); return SELFOP; }
YY_BREAK
case 74:
YY_RULE_SETUP
#line 344 "camp.l"
-{savesymbol(SYM_CARET); return SELFOP; }
+{savesymbol(SYM_QUOTIENT); return SELFOP; }
YY_BREAK
case 75:
YY_RULE_SETUP
-#line 346 "camp.l"
-{adjust(); return AND; }
+#line 345 "camp.l"
+{savesymbol(SYM_MOD); return SELFOP; }
YY_BREAK
case 76:
YY_RULE_SETUP
-#line 347 "camp.l"
-{DEFSYMBOL(SYM_CONTROLS); return CONTROLS; }
+#line 346 "camp.l"
+{savesymbol(SYM_CARET); return SELFOP; }
YY_BREAK
case 77:
YY_RULE_SETUP
#line 348 "camp.l"
-{DEFSYMBOL(SYM_TENSION); return TENSION; }
+{adjust(); return AND; }
YY_BREAK
case 78:
YY_RULE_SETUP
#line 349 "camp.l"
-{DEFSYMBOL(SYM_ATLEAST); return ATLEAST; }
+{DEFSYMBOL(SYM_CONTROLS); return CONTROLS; }
YY_BREAK
case 79:
YY_RULE_SETUP
#line 350 "camp.l"
-{DEFSYMBOL(SYM_CURL); return CURL; }
+{DEFSYMBOL(SYM_TENSION); return TENSION; }
YY_BREAK
case 80:
YY_RULE_SETUP
-#line 352 "camp.l"
-{adjust(); return IF; }
+#line 351 "camp.l"
+{DEFSYMBOL(SYM_ATLEAST); return ATLEAST; }
YY_BREAK
case 81:
YY_RULE_SETUP
-#line 353 "camp.l"
-{adjust(); return ELSE; }
+#line 352 "camp.l"
+{DEFSYMBOL(SYM_CURL); return CURL; }
YY_BREAK
case 82:
YY_RULE_SETUP
#line 354 "camp.l"
-{adjust(); return WHILE; }
+{adjust(); return IF; }
YY_BREAK
case 83:
YY_RULE_SETUP
#line 355 "camp.l"
-{adjust(); return FOR; }
+{adjust(); return ELSE; }
YY_BREAK
case 84:
YY_RULE_SETUP
#line 356 "camp.l"
-{adjust(); return DO; }
+{adjust(); return WHILE; }
YY_BREAK
case 85:
YY_RULE_SETUP
#line 357 "camp.l"
-{adjust(); return RETURN_; }
+{adjust(); return FOR; }
YY_BREAK
case 86:
YY_RULE_SETUP
#line 358 "camp.l"
-{adjust(); return BREAK; }
+{adjust(); return DO; }
YY_BREAK
case 87:
YY_RULE_SETUP
#line 359 "camp.l"
-{adjust(); return CONTINUE; }
+{adjust(); return RETURN_; }
YY_BREAK
case 88:
YY_RULE_SETUP
#line 360 "camp.l"
-{adjust(); return STRUCT; }
+{adjust(); return BREAK; }
YY_BREAK
case 89:
YY_RULE_SETUP
#line 361 "camp.l"
-{adjust(); return TYPEDEF; }
+{adjust(); return CONTINUE; }
YY_BREAK
case 90:
YY_RULE_SETUP
#line 362 "camp.l"
-{adjust(); return NEW; }
+{adjust(); return STRUCT; }
YY_BREAK
case 91:
YY_RULE_SETUP
#line 363 "camp.l"
-{adjust(); return ACCESS; }
+{adjust(); return TYPEDEF; }
YY_BREAK
case 92:
YY_RULE_SETUP
#line 364 "camp.l"
-{adjust(); return IMPORT; }
+{adjust(); return NEW; }
YY_BREAK
case 93:
YY_RULE_SETUP
#line 365 "camp.l"
-{adjust(); return UNRAVEL; }
+{adjust(); return ACCESS; }
YY_BREAK
case 94:
YY_RULE_SETUP
#line 366 "camp.l"
-{adjust(); return FROM; }
+{adjust(); return IMPORT; }
YY_BREAK
case 95:
YY_RULE_SETUP
#line 367 "camp.l"
-{adjust(); return INCLUDE; }
+{adjust(); return UNRAVEL; }
YY_BREAK
case 96:
YY_RULE_SETUP
#line 368 "camp.l"
-{adjust(); return QUOTE; }
+{adjust(); return FROM; }
YY_BREAK
case 97:
YY_RULE_SETUP
#line 369 "camp.l"
-{adjust(); makemod(trans::EXPLICIT_STATIC);
- return MODIFIER; }
+{adjust(); return INCLUDE; }
YY_BREAK
case 98:
YY_RULE_SETUP
-#line 371 "camp.l"
-{adjust(); makeperm(trans::PUBLIC); return PERM; }
+#line 370 "camp.l"
+{adjust(); return QUOTE; }
YY_BREAK
case 99:
YY_RULE_SETUP
-#line 372 "camp.l"
-{adjust(); makeperm(trans::PRIVATE); return PERM; }
+#line 371 "camp.l"
+{adjust(); makemod(trans::EXPLICIT_STATIC);
+ return MODIFIER; }
YY_BREAK
case 100:
YY_RULE_SETUP
#line 373 "camp.l"
-{adjust(); makeperm(trans::RESTRICTED); return PERM; }
+{adjust(); makeperm(trans::PUBLIC); return PERM; }
YY_BREAK
case 101:
YY_RULE_SETUP
#line 374 "camp.l"
-{adjust(); return THIS; }
+{adjust(); makeperm(trans::PRIVATE); return PERM; }
YY_BREAK
case 102:
YY_RULE_SETUP
#line 375 "camp.l"
-{adjust(); return EXPLICIT; }
+{adjust(); makeperm(trans::RESTRICTED); return PERM; }
YY_BREAK
case 103:
YY_RULE_SETUP
-#line 378 "camp.l"
+#line 376 "camp.l"
+{adjust(); return THIS; }
+ YY_BREAK
+case 104:
+YY_RULE_SETUP
+#line 377 "camp.l"
+{adjust(); return EXPLICIT; }
+ YY_BREAK
+case 105:
+YY_RULE_SETUP
+#line 380 "camp.l"
try {
adjust(); yylval.e= new intExp(here(), lexical::cast<Int>(yytext));
} catch (lexical::bad_cast&) {
@@ -1960,9 +1972,9 @@ try {
yylval.e= new intExp(here(), 0);
} return LIT;
YY_BREAK
-case 104:
+case 106:
YY_RULE_SETUP
-#line 385 "camp.l"
+#line 387 "camp.l"
try {
adjust(); yylval.e= new realExp(here(), lexical::cast<double>(yytext));
} catch (lexical::bad_cast&) {
@@ -1971,121 +1983,121 @@ try {
yylval.e= new realExp(here(), 0);
} return LIT;
YY_BREAK
-case 105:
+case 107:
YY_RULE_SETUP
-#line 392 "camp.l"
+#line 394 "camp.l"
{
adjust(); yylval.e= new booleanExp(here(), true); return LIT; }
YY_BREAK
-case 106:
+case 108:
YY_RULE_SETUP
-#line 394 "camp.l"
+#line 396 "camp.l"
{
adjust(); yylval.e= new booleanExp(here(), false); return LIT; }
YY_BREAK
-case 107:
+case 109:
YY_RULE_SETUP
-#line 396 "camp.l"
+#line 398 "camp.l"
{
adjust(); yylval.e= new nullExp(here()); return LIT; }
YY_BREAK
-case 108:
+case 110:
YY_RULE_SETUP
-#line 398 "camp.l"
+#line 400 "camp.l"
{
adjust(); yylval.e= new cycleExp(here()); return LIT; }
YY_BREAK
-case 109:
+case 111:
YY_RULE_SETUP
-#line 400 "camp.l"
+#line 402 "camp.l"
{
adjust(); yylval.e= new newPictureExp(here()); return LIT; }
YY_BREAK
-case 110:
+case 112:
YY_RULE_SETUP
-#line 403 "camp.l"
+#line 405 "camp.l"
{adjust(); BEGIN opname; }
YY_BREAK
-case 111:
+case 113:
YY_RULE_SETUP
-#line 405 "camp.l"
+#line 407 "camp.l"
{adjust(); continue;}
YY_BREAK
-case 112:
-/* rule 112 can match eol */
+case 114:
+/* rule 114 can match eol */
YY_RULE_SETUP
-#line 406 "camp.l"
+#line 408 "camp.l"
{adjust(); newline(); continue;}
YY_BREAK
case YY_STATE_EOF(opname):
-#line 407 "camp.l"
+#line 409 "camp.l"
{adjust();
setEOF("missing operator name");
BEGIN INITIAL;
return GARBAGE;
}
YY_BREAK
-case 113:
+case 115:
YY_RULE_SETUP
-#line 412 "camp.l"
+#line 414 "camp.l"
{ savesymbol(SYM_CARET);
BEGIN INITIAL;
return ID;
}
YY_BREAK
-case 114:
+case 116:
YY_RULE_SETUP
-#line 416 "camp.l"
+#line 418 "camp.l"
{
makeopsymbol();
BEGIN INITIAL;
return ID;}
YY_BREAK
-case 115:
+case 117:
YY_RULE_SETUP
-#line 420 "camp.l"
+#line 422 "camp.l"
{
makeopsymbol();
BEGIN INITIAL;
return ID; }
YY_BREAK
-case 116:
+case 118:
YY_RULE_SETUP
-#line 424 "camp.l"
+#line 426 "camp.l"
{}
YY_BREAK
-case 117:
+case 119:
YY_RULE_SETUP
-#line 427 "camp.l"
+#line 429 "camp.l"
{
makesymbol();
return ID; }
YY_BREAK
-case 118:
+case 120:
YY_RULE_SETUP
-#line 431 "camp.l"
+#line 433 "camp.l"
{adjust(); /*commentDepth = 1;*/ BEGIN lexcomment; }
YY_BREAK
-case 119:
+case 121:
YY_RULE_SETUP
-#line 432 "camp.l"
+#line 434 "camp.l"
{startstring(); BEGIN texstring; }
YY_BREAK
-case 120:
+case 122:
YY_RULE_SETUP
-#line 433 "camp.l"
+#line 435 "camp.l"
{startstring(); BEGIN cstring; }
YY_BREAK
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(lexformat):
-#line 435 "camp.l"
+#line 437 "camp.l"
{ setEOF("unexpected end of input"); yyterminate(); }
YY_BREAK
-case 121:
+case 123:
YY_RULE_SETUP
-#line 437 "camp.l"
+#line 439 "camp.l"
{adjust();
error();
em << "invalid token";
@@ -2093,12 +2105,12 @@ YY_RULE_SETUP
em << " '" << yytext[0] << "'";
}
YY_BREAK
-case 122:
+case 124:
YY_RULE_SETUP
-#line 443 "camp.l"
+#line 445 "camp.l"
ECHO;
YY_BREAK
-#line 2102 "lex.yy.cc"
+#line 2114 "lex.yy.cc"
case YY_END_OF_BUFFER:
{
@@ -2410,7 +2422,7 @@ static int yy_get_next_buffer (void)
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 335 )
+ if ( yy_current_state >= 337 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -2443,11 +2455,11 @@ static int yy_get_next_buffer (void)
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 335 )
+ if ( yy_current_state >= 337 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
- yy_is_jam = (yy_current_state == 334);
+ yy_is_jam = (yy_current_state == 336);
return yy_is_jam ? 0 : yy_current_state;
}
@@ -3221,4 +3233,4 @@ void yyfree (void * ptr )
/* %ok-for-header */
-#line 443 "camp.l"
+#line 445 "camp.l"
diff --git a/Build/source/utils/asymptote/mathop.h b/Build/source/utils/asymptote/mathop.h
index 572a9f7ee1b..1fda216e592 100644
--- a/Build/source/utils/asymptote/mathop.h
+++ b/Build/source/utils/asymptote/mathop.h
@@ -247,6 +247,16 @@ struct mod {
};
template <typename T>
+struct quotient {
+ T operator() (T x, T y, size_t i=0) {
+ if(y == 0) dividebyzero(i);
+ if(y == -1) return Negate(x);
+// Implementation-independent definition of integer division: round down
+ return (x-portableMod(x,y))/y;
+ }
+};
+
+template <typename T>
struct min {
T operator() (T x, T y, size_t=0) {return x < y ? x : y;}
};
diff --git a/Build/source/utils/asymptote/revision.cc b/Build/source/utils/asymptote/revision.cc
index 7d63228e7d5..d6ff75c4c44 100644
--- a/Build/source/utils/asymptote/revision.cc
+++ b/Build/source/utils/asymptote/revision.cc
@@ -1 +1 @@
-const char *REVISION="2.37";
+const char *REVISION="2.38";
diff --git a/Build/source/utils/asymptote/runmath.cc b/Build/source/utils/asymptote/runmath.cc
index f96fab80ef4..e30d84676bd 100644
--- a/Build/source/utils/asymptote/runmath.cc
+++ b/Build/source/utils/asymptote/runmath.cc
@@ -158,209 +158,206 @@ void gen_runmath2(stack *Stack)
Int y=vm::pop<Int>(Stack);
Int x=vm::pop<Int>(Stack);
#line 86 "runmath.in"
- if(y == 0) dividebyzero();
- if(y == -1) {Stack->push<Int>(Negate(x)); return;}
-// Implementation-independent definition of integer division: round down
- {Stack->push<Int>((x-portableMod(x,y))/y); return;}
+ {Stack->push<Int>(quotient<Int>()(x,y)); return;}
}
-#line 93 "runmath.in"
+#line 90 "runmath.in"
// Int abs(Int x);
void gen_runmath3(stack *Stack)
{
Int x=vm::pop<Int>(Stack);
-#line 94 "runmath.in"
+#line 91 "runmath.in"
{Stack->push<Int>(Abs(x)); return;}
}
-#line 98 "runmath.in"
+#line 95 "runmath.in"
// Int sgn(real x);
void gen_runmath4(stack *Stack)
{
real x=vm::pop<real>(Stack);
-#line 99 "runmath.in"
+#line 96 "runmath.in"
{Stack->push<Int>(sgn(x)); return;}
}
-#line 103 "runmath.in"
+#line 100 "runmath.in"
// Int rand();
void gen_runmath5(stack *Stack)
{
-#line 104 "runmath.in"
+#line 101 "runmath.in"
if(initializeRandom)
Srand(1);
{Stack->push<Int>(random()); return;}
}
-#line 110 "runmath.in"
+#line 107 "runmath.in"
// void srand(Int seed);
void gen_runmath6(stack *Stack)
{
Int seed=vm::pop<Int>(Stack);
-#line 111 "runmath.in"
+#line 108 "runmath.in"
Srand(seed);
}
// a random number uniformly distributed in the interval [0,1]
-#line 116 "runmath.in"
+#line 113 "runmath.in"
// real unitrand();
void gen_runmath7(stack *Stack)
{
-#line 117 "runmath.in"
+#line 114 "runmath.in"
{Stack->push<real>(((real) random())/RANDOM_MAX); return;}
}
-#line 121 "runmath.in"
+#line 118 "runmath.in"
// Int ceil(real x);
void gen_runmath8(stack *Stack)
{
real x=vm::pop<real>(Stack);
-#line 122 "runmath.in"
+#line 119 "runmath.in"
{Stack->push<Int>(Intcast(ceil(x))); return;}
}
-#line 126 "runmath.in"
+#line 123 "runmath.in"
// Int floor(real x);
void gen_runmath9(stack *Stack)
{
real x=vm::pop<real>(Stack);
-#line 127 "runmath.in"
+#line 124 "runmath.in"
{Stack->push<Int>(Intcast(floor(x))); return;}
}
-#line 131 "runmath.in"
+#line 128 "runmath.in"
// Int round(real x);
void gen_runmath10(stack *Stack)
{
real x=vm::pop<real>(Stack);
-#line 132 "runmath.in"
+#line 129 "runmath.in"
if(validInt(x)) {Stack->push<Int>(Round(x)); return;}
integeroverflow(0);
}
-#line 137 "runmath.in"
+#line 134 "runmath.in"
// Int Ceil(real x);
void gen_runmath11(stack *Stack)
{
real x=vm::pop<real>(Stack);
-#line 138 "runmath.in"
+#line 135 "runmath.in"
{Stack->push<Int>(Ceil(x)); return;}
}
-#line 142 "runmath.in"
+#line 139 "runmath.in"
// Int Floor(real x);
void gen_runmath12(stack *Stack)
{
real x=vm::pop<real>(Stack);
-#line 143 "runmath.in"
+#line 140 "runmath.in"
{Stack->push<Int>(Floor(x)); return;}
}
-#line 147 "runmath.in"
+#line 144 "runmath.in"
// Int Round(real x);
void gen_runmath13(stack *Stack)
{
real x=vm::pop<real>(Stack);
-#line 148 "runmath.in"
+#line 145 "runmath.in"
{Stack->push<Int>(Round(Intcap(x))); return;}
}
-#line 152 "runmath.in"
+#line 149 "runmath.in"
// real fmod(real x, real y);
void gen_runmath14(stack *Stack)
{
real y=vm::pop<real>(Stack);
real x=vm::pop<real>(Stack);
-#line 153 "runmath.in"
+#line 150 "runmath.in"
if (y == 0.0) dividebyzero();
{Stack->push<real>(fmod(x,y)); return;}
}
-#line 158 "runmath.in"
+#line 155 "runmath.in"
// real atan2(real y, real x);
void gen_runmath15(stack *Stack)
{
real x=vm::pop<real>(Stack);
real y=vm::pop<real>(Stack);
-#line 159 "runmath.in"
+#line 156 "runmath.in"
{Stack->push<real>(atan2(y,x)); return;}
}
-#line 163 "runmath.in"
+#line 160 "runmath.in"
// real hypot(real x, real y);
void gen_runmath16(stack *Stack)
{
real y=vm::pop<real>(Stack);
real x=vm::pop<real>(Stack);
-#line 164 "runmath.in"
+#line 161 "runmath.in"
{Stack->push<real>(hypot(x,y)); return;}
}
-#line 168 "runmath.in"
+#line 165 "runmath.in"
// real remainder(real x, real y);
void gen_runmath17(stack *Stack)
{
real y=vm::pop<real>(Stack);
real x=vm::pop<real>(Stack);
-#line 169 "runmath.in"
+#line 166 "runmath.in"
{Stack->push<real>(remainder(x,y)); return;}
}
-#line 173 "runmath.in"
+#line 170 "runmath.in"
// real Jn(Int n, real x);
void gen_runmath18(stack *Stack)
{
real x=vm::pop<real>(Stack);
Int n=vm::pop<Int>(Stack);
-#line 174 "runmath.in"
+#line 171 "runmath.in"
{Stack->push<real>(jn(n,x)); return;}
}
-#line 178 "runmath.in"
+#line 175 "runmath.in"
// real Yn(Int n, real x);
void gen_runmath19(stack *Stack)
{
real x=vm::pop<real>(Stack);
Int n=vm::pop<Int>(Stack);
-#line 179 "runmath.in"
+#line 176 "runmath.in"
{Stack->push<real>(yn(n,x)); return;}
}
-#line 183 "runmath.in"
+#line 180 "runmath.in"
// real erf(real x);
void gen_runmath20(stack *Stack)
{
real x=vm::pop<real>(Stack);
-#line 184 "runmath.in"
+#line 181 "runmath.in"
{Stack->push<real>(erf(x)); return;}
}
-#line 188 "runmath.in"
+#line 185 "runmath.in"
// real erfc(real x);
void gen_runmath21(stack *Stack)
{
real x=vm::pop<real>(Stack);
-#line 189 "runmath.in"
+#line 186 "runmath.in"
{Stack->push<real>(erfc(x)); return;}
}
-#line 193 "runmath.in"
+#line 190 "runmath.in"
// Int factorial(Int n);
void gen_runmath22(stack *Stack)
{
Int n=vm::pop<Int>(Stack);
-#line 194 "runmath.in"
+#line 191 "runmath.in"
if(n < 0) error(invalidargument);
{Stack->push<Int>(factorial(n)); return;}
}
-#line 198 "runmath.in"
+#line 195 "runmath.in"
// Int choose(Int n, Int k);
void gen_runmath23(stack *Stack)
{
Int k=vm::pop<Int>(Stack);
Int n=vm::pop<Int>(Stack);
-#line 199 "runmath.in"
+#line 196 "runmath.in"
if(n < 0 || k < 0 || k > n) error(invalidargument);
Int f=1;
Int r=n-k;
@@ -371,12 +368,12 @@ void gen_runmath23(stack *Stack)
{Stack->push<Int>(f); return;}
}
-#line 209 "runmath.in"
+#line 206 "runmath.in"
// real gamma(real x);
void gen_runmath24(stack *Stack)
{
real x=vm::pop<real>(Stack);
-#line 210 "runmath.in"
+#line 207 "runmath.in"
#ifdef HAVE_TGAMMA
{Stack->push<real>(tgamma(x)); return;}
#else
@@ -385,14 +382,14 @@ void gen_runmath24(stack *Stack)
#endif
}
-#line 219 "runmath.in"
+#line 216 "runmath.in"
// realarray* quadraticroots(real a, real b, real c);
void gen_runmath25(stack *Stack)
{
real c=vm::pop<real>(Stack);
real b=vm::pop<real>(Stack);
real a=vm::pop<real>(Stack);
-#line 220 "runmath.in"
+#line 217 "runmath.in"
quadraticroots q(a,b,c);
array *roots=new array(q.roots);
if(q.roots >= 1) (*roots)[0]=q.t1;
@@ -400,14 +397,14 @@ void gen_runmath25(stack *Stack)
{Stack->push<realarray*>(roots); return;}
}
-#line 228 "runmath.in"
+#line 225 "runmath.in"
// pairarray* quadraticroots(explicit pair a, explicit pair b, explicit pair c);
void gen_runmath26(stack *Stack)
{
pair c=vm::pop<pair>(Stack);
pair b=vm::pop<pair>(Stack);
pair a=vm::pop<pair>(Stack);
-#line 229 "runmath.in"
+#line 226 "runmath.in"
Quadraticroots q(a,b,c);
array *roots=new array(q.roots);
if(q.roots >= 1) (*roots)[0]=q.z1;
@@ -415,7 +412,7 @@ void gen_runmath26(stack *Stack)
{Stack->push<pairarray*>(roots); return;}
}
-#line 237 "runmath.in"
+#line 234 "runmath.in"
// realarray* cubicroots(real a, real b, real c, real d);
void gen_runmath27(stack *Stack)
{
@@ -423,7 +420,7 @@ void gen_runmath27(stack *Stack)
real c=vm::pop<real>(Stack);
real b=vm::pop<real>(Stack);
real a=vm::pop<real>(Stack);
-#line 238 "runmath.in"
+#line 235 "runmath.in"
cubicroots q(a,b,c,d);
array *roots=new array(q.roots);
if(q.roots >= 1) (*roots)[0]=q.t1;
@@ -434,108 +431,108 @@ void gen_runmath27(stack *Stack)
// Logical operations
-#line 249 "runmath.in"
+#line 246 "runmath.in"
// bool !(bool b);
void gen_runmath28(stack *Stack)
{
bool b=vm::pop<bool>(Stack);
-#line 250 "runmath.in"
+#line 247 "runmath.in"
{Stack->push<bool>(!b); return;}
}
-#line 255 "runmath.in"
+#line 252 "runmath.in"
void boolMemEq(stack *Stack)
{
frame * b=vm::pop<frame *>(Stack);
frame * a=vm::pop<frame *>(Stack);
-#line 256 "runmath.in"
+#line 253 "runmath.in"
{Stack->push<bool>(a == b); return;}
}
-#line 260 "runmath.in"
+#line 257 "runmath.in"
void boolMemNeq(stack *Stack)
{
frame * b=vm::pop<frame *>(Stack);
frame * a=vm::pop<frame *>(Stack);
-#line 261 "runmath.in"
+#line 258 "runmath.in"
{Stack->push<bool>(a != b); return;}
}
-#line 265 "runmath.in"
+#line 262 "runmath.in"
void boolFuncEq(stack *Stack)
{
callable * b=vm::pop<callable *>(Stack);
callable * a=vm::pop<callable *>(Stack);
-#line 266 "runmath.in"
+#line 263 "runmath.in"
{Stack->push<bool>(a->compare(b)); return;}
}
-#line 270 "runmath.in"
+#line 267 "runmath.in"
void boolFuncNeq(stack *Stack)
{
callable * b=vm::pop<callable *>(Stack);
callable * a=vm::pop<callable *>(Stack);
-#line 271 "runmath.in"
+#line 268 "runmath.in"
{Stack->push<bool>(!(a->compare(b))); return;}
}
// Bit operations
-#line 277 "runmath.in"
+#line 274 "runmath.in"
// Int AND(Int a, Int b);
void gen_runmath33(stack *Stack)
{
Int b=vm::pop<Int>(Stack);
Int a=vm::pop<Int>(Stack);
-#line 278 "runmath.in"
+#line 275 "runmath.in"
{Stack->push<Int>(a & b); return;}
}
-#line 283 "runmath.in"
+#line 280 "runmath.in"
// Int OR(Int a, Int b);
void gen_runmath34(stack *Stack)
{
Int b=vm::pop<Int>(Stack);
Int a=vm::pop<Int>(Stack);
-#line 284 "runmath.in"
+#line 281 "runmath.in"
{Stack->push<Int>(a | b); return;}
}
-#line 288 "runmath.in"
+#line 285 "runmath.in"
// Int XOR(Int a, Int b);
void gen_runmath35(stack *Stack)
{
Int b=vm::pop<Int>(Stack);
Int a=vm::pop<Int>(Stack);
-#line 289 "runmath.in"
+#line 286 "runmath.in"
{Stack->push<Int>(a ^ b); return;}
}
-#line 293 "runmath.in"
+#line 290 "runmath.in"
// Int NOT(Int a);
void gen_runmath36(stack *Stack)
{
Int a=vm::pop<Int>(Stack);
-#line 294 "runmath.in"
+#line 291 "runmath.in"
{Stack->push<Int>(~a); return;}
}
-#line 298 "runmath.in"
+#line 295 "runmath.in"
// Int CLZ(Int a);
void gen_runmath37(stack *Stack)
{
Int a=vm::pop<Int>(Stack);
-#line 299 "runmath.in"
+#line 296 "runmath.in"
if((uint32_t) a > 0xFFFFFFFF) {Stack->push<Int>(-1); return;}
{Stack->push<Int>(CLZ((uint32_t) a)); return;}
}
-#line 304 "runmath.in"
+#line 301 "runmath.in"
// Int CTZ(Int a);
void gen_runmath38(stack *Stack)
{
Int a=vm::pop<Int>(Stack);
-#line 305 "runmath.in"
+#line 302 "runmath.in"
if((uint32_t) a > 0xFFFFFFFF) {Stack->push<Int>(-1); return;}
#if __GNUC__
{Stack->push<Int>(__builtin_ctz(a)); return;}
@@ -562,77 +559,77 @@ void gen_runmath_venv(venv &ve)
addFunc(ve, run::gen_runmath1, primPair(), SYM_CARET, formal(primPair(), SYM(z), false, false), formal(primInt(), SYM(y), false, false));
#line 85 "runmath.in"
addFunc(ve, run::gen_runmath2, primInt(), SYM(quotient), formal(primInt(), SYM(x), false, false), formal(primInt(), SYM(y), false, false));
-#line 93 "runmath.in"
+#line 90 "runmath.in"
addFunc(ve, run::gen_runmath3, primInt(), SYM(abs), formal(primInt(), SYM(x), false, false));
-#line 98 "runmath.in"
+#line 95 "runmath.in"
addFunc(ve, run::gen_runmath4, primInt(), SYM(sgn), formal(primReal(), SYM(x), false, false));
-#line 103 "runmath.in"
+#line 100 "runmath.in"
addFunc(ve, run::gen_runmath5, primInt(), SYM(rand));
-#line 110 "runmath.in"
+#line 107 "runmath.in"
addFunc(ve, run::gen_runmath6, primVoid(), SYM(srand), formal(primInt(), SYM(seed), false, false));
-#line 115 "runmath.in"
+#line 112 "runmath.in"
addFunc(ve, run::gen_runmath7, primReal(), SYM(unitrand));
-#line 121 "runmath.in"
+#line 118 "runmath.in"
addFunc(ve, run::gen_runmath8, primInt(), SYM(ceil), formal(primReal(), SYM(x), false, false));
-#line 126 "runmath.in"
+#line 123 "runmath.in"
addFunc(ve, run::gen_runmath9, primInt(), SYM(floor), formal(primReal(), SYM(x), false, false));
-#line 131 "runmath.in"
+#line 128 "runmath.in"
addFunc(ve, run::gen_runmath10, primInt(), SYM(round), formal(primReal(), SYM(x), false, false));
-#line 137 "runmath.in"
+#line 134 "runmath.in"
addFunc(ve, run::gen_runmath11, primInt(), SYM(Ceil), formal(primReal(), SYM(x), false, false));
-#line 142 "runmath.in"
+#line 139 "runmath.in"
addFunc(ve, run::gen_runmath12, primInt(), SYM(Floor), formal(primReal(), SYM(x), false, false));
-#line 147 "runmath.in"
+#line 144 "runmath.in"
addFunc(ve, run::gen_runmath13, primInt(), SYM(Round), formal(primReal(), SYM(x), false, false));
-#line 152 "runmath.in"
+#line 149 "runmath.in"
addFunc(ve, run::gen_runmath14, primReal(), SYM(fmod), formal(primReal(), SYM(x), false, false), formal(primReal(), SYM(y), false, false));
-#line 158 "runmath.in"
+#line 155 "runmath.in"
addFunc(ve, run::gen_runmath15, primReal(), SYM(atan2), formal(primReal(), SYM(y), false, false), formal(primReal(), SYM(x), false, false));
-#line 163 "runmath.in"
+#line 160 "runmath.in"
addFunc(ve, run::gen_runmath16, primReal(), SYM(hypot), formal(primReal(), SYM(x), false, false), formal(primReal(), SYM(y), false, false));
-#line 168 "runmath.in"
+#line 165 "runmath.in"
addFunc(ve, run::gen_runmath17, primReal(), SYM(remainder), formal(primReal(), SYM(x), false, false), formal(primReal(), SYM(y), false, false));
-#line 173 "runmath.in"
+#line 170 "runmath.in"
addFunc(ve, run::gen_runmath18, primReal(), SYM(Jn), formal(primInt(), SYM(n), false, false), formal(primReal(), SYM(x), false, false));
-#line 178 "runmath.in"
+#line 175 "runmath.in"
addFunc(ve, run::gen_runmath19, primReal(), SYM(Yn), formal(primInt(), SYM(n), false, false), formal(primReal(), SYM(x), false, false));
-#line 183 "runmath.in"
+#line 180 "runmath.in"
addFunc(ve, run::gen_runmath20, primReal(), SYM(erf), formal(primReal(), SYM(x), false, false));
-#line 188 "runmath.in"
+#line 185 "runmath.in"
addFunc(ve, run::gen_runmath21, primReal(), SYM(erfc), formal(primReal(), SYM(x), false, false));
-#line 193 "runmath.in"
+#line 190 "runmath.in"
addFunc(ve, run::gen_runmath22, primInt(), SYM(factorial), formal(primInt(), SYM(n), false, false));
-#line 198 "runmath.in"
+#line 195 "runmath.in"
addFunc(ve, run::gen_runmath23, primInt(), SYM(choose), formal(primInt(), SYM(n), false, false), formal(primInt(), SYM(k), false, false));
-#line 209 "runmath.in"
+#line 206 "runmath.in"
addFunc(ve, run::gen_runmath24, primReal(), SYM(gamma), formal(primReal(), SYM(x), false, false));
-#line 219 "runmath.in"
+#line 216 "runmath.in"
addFunc(ve, run::gen_runmath25, realArray(), SYM(quadraticroots), formal(primReal(), SYM(a), false, false), formal(primReal(), SYM(b), false, false), formal(primReal(), SYM(c), false, false));
-#line 228 "runmath.in"
+#line 225 "runmath.in"
addFunc(ve, run::gen_runmath26, pairArray(), SYM(quadraticroots), formal(primPair(), SYM(a), false, true), formal(primPair(), SYM(b), false, true), formal(primPair(), SYM(c), false, true));
-#line 237 "runmath.in"
+#line 234 "runmath.in"
addFunc(ve, run::gen_runmath27, realArray(), SYM(cubicroots), formal(primReal(), SYM(a), false, false), formal(primReal(), SYM(b), false, false), formal(primReal(), SYM(c), false, false), formal(primReal(), SYM(d), false, false));
-#line 247 "runmath.in"
+#line 244 "runmath.in"
addFunc(ve, run::gen_runmath28, primBoolean(), SYM_LOGNOT, formal(primBoolean(), SYM(b), false, false));
-#line 255 "runmath.in"
+#line 252 "runmath.in"
REGISTER_BLTIN(run::boolMemEq,"boolMemEq");
-#line 260 "runmath.in"
+#line 257 "runmath.in"
REGISTER_BLTIN(run::boolMemNeq,"boolMemNeq");
-#line 265 "runmath.in"
+#line 262 "runmath.in"
REGISTER_BLTIN(run::boolFuncEq,"boolFuncEq");
-#line 270 "runmath.in"
+#line 267 "runmath.in"
REGISTER_BLTIN(run::boolFuncNeq,"boolFuncNeq");
-#line 275 "runmath.in"
+#line 272 "runmath.in"
addFunc(ve, run::gen_runmath33, primInt(), SYM(AND), formal(primInt(), SYM(a), false, false), formal(primInt(), SYM(b), false, false));
-#line 283 "runmath.in"
+#line 280 "runmath.in"
addFunc(ve, run::gen_runmath34, primInt(), SYM(OR), formal(primInt(), SYM(a), false, false), formal(primInt(), SYM(b), false, false));
-#line 288 "runmath.in"
+#line 285 "runmath.in"
addFunc(ve, run::gen_runmath35, primInt(), SYM(XOR), formal(primInt(), SYM(a), false, false), formal(primInt(), SYM(b), false, false));
-#line 293 "runmath.in"
+#line 290 "runmath.in"
addFunc(ve, run::gen_runmath36, primInt(), SYM(NOT), formal(primInt(), SYM(a), false, false));
-#line 298 "runmath.in"
+#line 295 "runmath.in"
addFunc(ve, run::gen_runmath37, primInt(), SYM(CLZ), formal(primInt(), SYM(a), false, false));
-#line 304 "runmath.in"
+#line 301 "runmath.in"
addFunc(ve, run::gen_runmath38, primInt(), SYM(CTZ), formal(primInt(), SYM(a), false, false));
}
diff --git a/Build/source/utils/asymptote/runmath.in b/Build/source/utils/asymptote/runmath.in
index ea74462bc2b..61fef8b3000 100644
--- a/Build/source/utils/asymptote/runmath.in
+++ b/Build/source/utils/asymptote/runmath.in
@@ -84,10 +84,7 @@ pair ^(pair z, Int y)
Int quotient(Int x, Int y)
{
- if(y == 0) dividebyzero();
- if(y == -1) return Negate(x);
-// Implementation-independent definition of integer division: round down
- return (x-portableMod(x,y))/y;
+ return quotient<Int>()(x,y);
}
Int abs(Int x)
diff --git a/Build/source/utils/asymptote/settings.cc b/Build/source/utils/asymptote/settings.cc
index a97226c24c5..074f6d707ed 100644
--- a/Build/source/utils/asymptote/settings.cc
+++ b/Build/source/utils/asymptote/settings.cc
@@ -1580,8 +1580,8 @@ string texprogram()
Int getScroll()
{
Int scroll=settings::getSetting<Int>("scroll");
-#ifdef HAVE_LIBCURSES
if(scroll < 0) {
+#ifdef HAVE_LIBCURSES
static char *terminal=NULL;
if(!terminal)
terminal=getenv("TERM");
@@ -1593,9 +1593,10 @@ Int getScroll()
#endif
scroll=0;
} else scroll=0;
-
- }
+#else
+ scroll=0;
#endif
+ }
return scroll;
}