97 lines
1.5 KiB
SourcePawn
97 lines
1.5 KiB
SourcePawn
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
|