summaryrefslogtreecommitdiff
path: root/Windows/spice/examples/control_structs/new-check-3.sp
diff options
context:
space:
mode:
Diffstat (limited to 'Windows/spice/examples/control_structs/new-check-3.sp')
-rw-r--r--Windows/spice/examples/control_structs/new-check-3.sp96
1 files changed, 96 insertions, 0 deletions
diff --git a/Windows/spice/examples/control_structs/new-check-3.sp b/Windows/spice/examples/control_structs/new-check-3.sp
new file mode 100644
index 00000000..c85c19f6
--- /dev/null
+++ b/Windows/spice/examples/control_structs/new-check-3.sp
@@ -0,0 +1,96 @@
+new ft_getpnames parser check 3, try ternary
+
+* (compile (concat "tmp-1/ng-spice-rework/src/ngspice " buffer-file-name) t)
+
+VIN 1 0 DC=0
+
+.control
+
+dc VIN 0 10 5
+
+* trying the ternary
+
+let checks = 0
+
+let const0 = 0
+let const5 = 5
+let const6 = 6
+
+
+let tmp = const0 ? const5 : const6
+if tmp eq const6
+ let checks = checks + 1
+else
+ echo "ERROR:"
+end
+
+let tmp = const6 ? const5 : const6
+if tmp eq const5
+ let checks = checks + 1
+else
+ echo "ERROR:"
+end
+
+define foo(a,b,d) a ? b : d
+
+if foo(const0,const5,const6) eq const6
+ let checks = checks + 1
+else
+ echo "ERROR:"
+end
+
+if foo(const6,const5,const6) eq const5
+ let checks = checks + 1
+else
+ echo "ERROR:"
+end
+
+let vec7 = 7*unitvec(7)
+let vec8 = 8*unitvec(8)
+
+if length(const5 ? vec7 : vec8) eq 7
+ let checks = checks + 1
+else
+ echo "ERROR:"
+end
+
+if length(const0 ? vec7 : vec8) eq 8
+ let checks = checks + 1
+else
+ echo "ERROR:"
+end
+
+* FIXME, "1 ? 1:1" (without spaces around of ':') doesnt work,
+* "1:1" is a lexem, WHY !!!
+* ist that an old artifact, (ancient hierarchical name separator ':')
+*
+*print length(1?1:1)
+
+*if (1 ? 1:1) eq 1
+if (1 ? 1 : 1) eq 1
+ let checks = checks + 1
+else
+ echo "ERROR:"
+end
+
+print @vin[dc]
+
+* '"' survives, and will be processed in the ft_getpnames() lexer, that is PPlex()
+* where the string will be unqoted
+* thats used vor weired variable names, for example "zero(1)"
+let foo = "vec8"
+if foo eq vec8
+ let checks = checks + 1
+else
+ echo "ERROR:"
+end
+
+if checks eq 8
+ echo "INFO: ok"
+else
+ echo "ERROR:"
+end
+
+.endc
+
+.end