summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/parser.y37
-rw-r--r--testdata/scad/features/background-modifier.scad1
-rw-r--r--testdata/scad/features/disable-modifier.scad1
-rw-r--r--testdata/scad/features/highlight-and-background-modifier.scad2
-rw-r--r--testdata/scad/features/highlight-modifier.scad1
-rw-r--r--testdata/scad/features/hull3-tests.scad12
-rw-r--r--tests/regression/cgalpngtest/highlight-modifier-expected.pngbin13772 -> 12436 bytes
-rw-r--r--tests/regression/cgalpngtest/root-modifier-if-expected.pngbin0 -> 7080 bytes
-rw-r--r--tests/regression/dumptest/background-modifier-expected.txt3
-rw-r--r--tests/regression/dumptest/highlight-and-background-modifier-expected.txt6
-rw-r--r--tests/regression/dumptest/highlight-modifier-expected.txt3
-rw-r--r--tests/regression/dumptest/hull3-tests-expected.txt10
-rw-r--r--tests/regression/dumptest/root-modifier-if-expected.txt7
-rw-r--r--tests/regression/opencsgtest/background-modifier-expected.pngbin17699 -> 17797 bytes
-rw-r--r--tests/regression/opencsgtest/highlight-and-background-modifier-expected.pngbin21649 -> 22188 bytes
-rw-r--r--tests/regression/opencsgtest/highlight-modifier-expected.pngbin15502 -> 14172 bytes
-rw-r--r--tests/regression/opencsgtest/root-modifier-if-expected.pngbin0 -> 7349 bytes
-rw-r--r--tests/regression/throwntogethertest/background-modifier-expected.pngbin15657 -> 17797 bytes
-rw-r--r--tests/regression/throwntogethertest/highlight-modifier-expected.pngbin12885 -> 13335 bytes
-rw-r--r--tests/regression/throwntogethertest/root-modifier-if-expected.pngbin0 -> 7349 bytes
20 files changed, 57 insertions, 26 deletions
diff --git a/src/parser.y b/src/parser.y
index c11f0f2..3e485ff 100644
--- a/src/parser.y
+++ b/src/parser.y
@@ -233,6 +233,22 @@ ifelse_statement:
} ;
module_instantiation:
+ '!' module_instantiation {
+ $$ = $2;
+ if ($$) $$->tag_root = true;
+ } |
+ '#' module_instantiation {
+ $$ = $2;
+ if ($$) $$->tag_highlight = true;
+ } |
+ '%' module_instantiation {
+ $$ = $2;
+ if ($$) $$->tag_background = true;
+ } |
+ '*' module_instantiation {
+ delete $2;
+ $$ = NULL;
+ } |
single_module_instantiation ';' {
$$ = $1;
} |
@@ -271,26 +287,7 @@ single_module_instantiation:
$$->argexpr = $3->argexpr;
free($1);
delete $3;
- } |
- '!' single_module_instantiation {
- $$ = $2;
- if ($$)
- $$->tag_root = true;
- } |
- '#' single_module_instantiation {
- $$ = $2;
- if ($$)
- $$->tag_highlight = true;
- } |
- '%' single_module_instantiation {
- $$ = $2;
- if ($$)
- $$->tag_background = true;
- } |
- '*' single_module_instantiation {
- delete $2;
- $$ = NULL;
- };
+ }
expr:
TOK_TRUE {
diff --git a/testdata/scad/features/background-modifier.scad b/testdata/scad/features/background-modifier.scad
index ec7b28d..5430472 100644
--- a/testdata/scad/features/background-modifier.scad
+++ b/testdata/scad/features/background-modifier.scad
@@ -2,3 +2,4 @@ difference() {
sphere(r=10);
%cylinder(h=30, r=6, center=true);
}
+%if (true) cube([25,6,3], center=true);
diff --git a/testdata/scad/features/disable-modifier.scad b/testdata/scad/features/disable-modifier.scad
index b47e074..2b75339 100644
--- a/testdata/scad/features/disable-modifier.scad
+++ b/testdata/scad/features/disable-modifier.scad
@@ -2,3 +2,4 @@ difference() {
*sphere(r=10);
cylinder(h=30, r=6, center=true);
}
+*if (true) cube([25,6,3], center=true);
diff --git a/testdata/scad/features/highlight-and-background-modifier.scad b/testdata/scad/features/highlight-and-background-modifier.scad
index 945d6b4..5dca703 100644
--- a/testdata/scad/features/highlight-and-background-modifier.scad
+++ b/testdata/scad/features/highlight-and-background-modifier.scad
@@ -1,8 +1,10 @@
difference() {
sphere(r=10);
%#cylinder(h=30, r=6, center=true);
+ %#if (true) cube([6,25,3], center=true);
}
translate([13,0,0]) difference() {
sphere(r=10);
#%cylinder(h=30, r=6, center=true);
+ #%if (true) cube([6,25,3], center=true);
}
diff --git a/testdata/scad/features/highlight-modifier.scad b/testdata/scad/features/highlight-modifier.scad
index 1156a88..f228d08 100644
--- a/testdata/scad/features/highlight-modifier.scad
+++ b/testdata/scad/features/highlight-modifier.scad
@@ -2,3 +2,4 @@ difference() {
sphere(r=10);
#cylinder(h=30, r=6, center=true);
}
+#if (true) cube([25,6,3], center=true);
diff --git a/testdata/scad/features/hull3-tests.scad b/testdata/scad/features/hull3-tests.scad
index b6b3fe4..e3fc8e7 100644
--- a/testdata/scad/features/hull3-tests.scad
+++ b/testdata/scad/features/hull3-tests.scad
@@ -19,10 +19,10 @@ translate([25,0,0]) hull() {
// Don't Crash (issue 188)
translate([-5,-5,-5]) {
- hull() {
- intersection(){
- cube([1,1,1]);
- translate([-1,-1,-1]) cube([1,1,1]);
- }
+ hull() {
+ intersection() {
+ cube([1,1,1]);
+ translate([-1,-1,-1]) cube([1,1,1]);
+ }
+ }
}
-
diff --git a/tests/regression/cgalpngtest/highlight-modifier-expected.png b/tests/regression/cgalpngtest/highlight-modifier-expected.png
index 29a4117..e220aa1 100644
--- a/tests/regression/cgalpngtest/highlight-modifier-expected.png
+++ b/tests/regression/cgalpngtest/highlight-modifier-expected.png
Binary files differ
diff --git a/tests/regression/cgalpngtest/root-modifier-if-expected.png b/tests/regression/cgalpngtest/root-modifier-if-expected.png
new file mode 100644
index 0000000..1fe2aa5
--- /dev/null
+++ b/tests/regression/cgalpngtest/root-modifier-if-expected.png
Binary files differ
diff --git a/tests/regression/dumptest/background-modifier-expected.txt b/tests/regression/dumptest/background-modifier-expected.txt
index 6e9ca57..ed769b3 100644
--- a/tests/regression/dumptest/background-modifier-expected.txt
+++ b/tests/regression/dumptest/background-modifier-expected.txt
@@ -2,4 +2,7 @@
sphere($fn = 0, $fa = 12, $fs = 2, r = 10);
%cylinder($fn = 0, $fa = 12, $fs = 2, h = 30, r1 = 6, r2 = 6, center = true);
}
+ %group() {
+ cube(size = [25, 6, 3], center = true);
+ }
diff --git a/tests/regression/dumptest/highlight-and-background-modifier-expected.txt b/tests/regression/dumptest/highlight-and-background-modifier-expected.txt
index a525d68..20c82cc 100644
--- a/tests/regression/dumptest/highlight-and-background-modifier-expected.txt
+++ b/tests/regression/dumptest/highlight-and-background-modifier-expected.txt
@@ -1,11 +1,17 @@
difference() {
sphere($fn = 0, $fa = 12, $fs = 2, r = 10);
%cylinder($fn = 0, $fa = 12, $fs = 2, h = 30, r1 = 6, r2 = 6, center = true);
+ %group() {
+ cube(size = [6, 25, 3], center = true);
+ }
}
multmatrix([[1, 0, 0, 13], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) {
difference() {
sphere($fn = 0, $fa = 12, $fs = 2, r = 10);
%cylinder($fn = 0, $fa = 12, $fs = 2, h = 30, r1 = 6, r2 = 6, center = true);
+ %group() {
+ cube(size = [6, 25, 3], center = true);
+ }
}
}
diff --git a/tests/regression/dumptest/highlight-modifier-expected.txt b/tests/regression/dumptest/highlight-modifier-expected.txt
index c0f1da2..c6204bd 100644
--- a/tests/regression/dumptest/highlight-modifier-expected.txt
+++ b/tests/regression/dumptest/highlight-modifier-expected.txt
@@ -2,4 +2,7 @@
sphere($fn = 0, $fa = 12, $fs = 2, r = 10);
cylinder($fn = 0, $fa = 12, $fs = 2, h = 30, r1 = 6, r2 = 6, center = true);
}
+ group() {
+ cube(size = [25, 6, 3], center = true);
+ }
diff --git a/tests/regression/dumptest/hull3-tests-expected.txt b/tests/regression/dumptest/hull3-tests-expected.txt
index af48b7f..4c05e2c 100644
--- a/tests/regression/dumptest/hull3-tests-expected.txt
+++ b/tests/regression/dumptest/hull3-tests-expected.txt
@@ -17,4 +17,14 @@
}
}
}
+ multmatrix([[1, 0, 0, -5], [0, 1, 0, -5], [0, 0, 1, -5], [0, 0, 0, 1]]) {
+ hull() {
+ intersection() {
+ cube(size = [1, 1, 1], center = false);
+ multmatrix([[1, 0, 0, -1], [0, 1, 0, -1], [0, 0, 1, -1], [0, 0, 0, 1]]) {
+ cube(size = [1, 1, 1], center = false);
+ }
+ }
+ }
+ }
diff --git a/tests/regression/dumptest/root-modifier-if-expected.txt b/tests/regression/dumptest/root-modifier-if-expected.txt
new file mode 100644
index 0000000..dfcd15a
--- /dev/null
+++ b/tests/regression/dumptest/root-modifier-if-expected.txt
@@ -0,0 +1,7 @@
+ group() {
+ sphere($fn = 0, $fa = 12, $fs = 2, r = 5);
+ }
+ group() {
+ cube(size = [5, 5, 5], center = false);
+ }
+
diff --git a/tests/regression/opencsgtest/background-modifier-expected.png b/tests/regression/opencsgtest/background-modifier-expected.png
index 24149d0..2505331 100644
--- a/tests/regression/opencsgtest/background-modifier-expected.png
+++ b/tests/regression/opencsgtest/background-modifier-expected.png
Binary files differ
diff --git a/tests/regression/opencsgtest/highlight-and-background-modifier-expected.png b/tests/regression/opencsgtest/highlight-and-background-modifier-expected.png
index 72d03c3..8febe76 100644
--- a/tests/regression/opencsgtest/highlight-and-background-modifier-expected.png
+++ b/tests/regression/opencsgtest/highlight-and-background-modifier-expected.png
Binary files differ
diff --git a/tests/regression/opencsgtest/highlight-modifier-expected.png b/tests/regression/opencsgtest/highlight-modifier-expected.png
index 78d0309..af01e5b 100644
--- a/tests/regression/opencsgtest/highlight-modifier-expected.png
+++ b/tests/regression/opencsgtest/highlight-modifier-expected.png
Binary files differ
diff --git a/tests/regression/opencsgtest/root-modifier-if-expected.png b/tests/regression/opencsgtest/root-modifier-if-expected.png
new file mode 100644
index 0000000..5b9a786
--- /dev/null
+++ b/tests/regression/opencsgtest/root-modifier-if-expected.png
Binary files differ
diff --git a/tests/regression/throwntogethertest/background-modifier-expected.png b/tests/regression/throwntogethertest/background-modifier-expected.png
index 79810f5..2505331 100644
--- a/tests/regression/throwntogethertest/background-modifier-expected.png
+++ b/tests/regression/throwntogethertest/background-modifier-expected.png
Binary files differ
diff --git a/tests/regression/throwntogethertest/highlight-modifier-expected.png b/tests/regression/throwntogethertest/highlight-modifier-expected.png
index a1ec8fe..7973d82 100644
--- a/tests/regression/throwntogethertest/highlight-modifier-expected.png
+++ b/tests/regression/throwntogethertest/highlight-modifier-expected.png
Binary files differ
diff --git a/tests/regression/throwntogethertest/root-modifier-if-expected.png b/tests/regression/throwntogethertest/root-modifier-if-expected.png
new file mode 100644
index 0000000..5b9a786
--- /dev/null
+++ b/tests/regression/throwntogethertest/root-modifier-if-expected.png
Binary files differ
contact: Jan Huwald // Impressum