allow nonspace operators. sys command args. dict use:
this branch fix symbols:
- allow nonspace operators.
such as
let a=2+3;a>3let add=x->x+1
but space is needed when you need to differ negtive numbers with operator:
such as let a=2+ -3
-
allow args in command. such as
ls -l --color=auto /tmp- short args:
-c - long args:
--chars - paths:
./diror/diror..
but unfortunlately, single
/is not added currently, as this may be used as operator someday.single
.was ignored and default to cwd. - short args:
-
allow
:to define dict.let dict={x:1,y:2}as well as the old one :let dict={x=1,y=2}
tested with the following cases:
echo allow whitespace be skipped on operator;
echo
echo 0 testing negtive number ;
echo -1 ;
echo 3 + -1 ;
5 * -1 ;
echo;
echo 1 testing operator;
let a=10;
echo a+1 a-1 a*3 a//2 ;
let b=a+3-4*5//2 ;
echo b;
echo a%2 ;
echo;
echo 2 tesing lambda;
let add=x->x+100;
echo add a;
echo;
echo 3 testing overload;
let ++ =x->x+1;
++ a;
echo;
echo 4 testing command;
ls -l --color=auto ;
ls -l --color=auto /tmp ;
echo "--testing dict with : " ;
let z = {x:1,y:3} ;
echo z;
echo z@x;
let z = {x=11,y=13} ;
echo z;
echo z@y;
echo finished.
Wow, thank you so so much!! I really appreciate the effort!! I'll take a look in the morning and merge if everything is in order!
Hmm the one issue I see with this is the // operator changing to /. The reason is, / as a symbol should mean the root path, which should not evaluate to a function -- that's the reason why I chose // as the operator instead of the /
paths was recognized when : / folling a space and followed by some latter. (see parse_argument).
operator / was recognized when: / with space surround. or letters surround.
eg:
ls /bin , /bin as path
ls /local/bin , /local/bin as path
cd ./local , ./local as path
cd ../bin , ../bin as path.
a/b, / as operator
a / b , / as operator.