-
-
Notifications
You must be signed in to change notification settings - Fork 163
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Oil language syntactic/semantic issues #477
Labels
Comments
andychu
changed the title
Oil language semantic issues
Oil language syntactic/semantic issues
Sep 7, 2019
I think it should be:
|
26 tasks
andychu
pushed a commit
that referenced
this issue
Apr 27, 2022
This was partially tested in spec/oil-blocks.test.sh but not completely. Also test out the exit status of blocks. Part of #477.
andychu
pushed a commit
that referenced
this issue
Apr 28, 2022
Also document block control flow semantics. Part of #477. - A spec test for command_sub_errexit - More tests for 'try'
Hmm everything here is taken care of or moved to another issue! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
var
,setvar
,func
,proc
, etc. ? Sometimes we die hard, but sometimes return 1 and leterrexit
take care of it. (moved to test and document var x = $(false) #942cd
,shopt
,shvar
,env
, etc. -- it's generally 0; failure can be handled in the blockshould there be lexical scope ?(deferred)setvar
/set
respect dynamic scope?do setvar(name, val, up=1)
for modifying up the stack?LookupVar
inoil_lang/expr_eval.py
only looks up locals and globalssetglobal
too?var sum = 1
fails becausesum()
function already exists. Maybe only check locals. Globals are OK to shadow.if try
= myfunc()
without pretty printing.do
,pass
is discouraged._ myfunc()
x = ^( echo hi )
, and dicts should go back to{}
so they're consistent with every other language, and JSONbreak
andcontinue
be allowed within blocks?Example:
&+
&-
and&*
for overflowing operations.) See language semantics shouldn't depend on the compiler #824Syntax
"$len(x)"
should be an error, because ( isn't respected?"${len}(x)"
is the unambiguous way to write it.${len(x)}
will be acceptedwhat to do about singleton tuples?(resolved)tup(42)
x = class
is invalid -- do we need a different way to handle keywords? I think sodiv
/mod
/xor
? To match Python / C++ / Tea++
operator for concatenationShell Collisions
if ((0,0) > othertuple)) {
isn't parsed right!lex_mode_e.OilCommand
mode will disallow it. (OilCommand lexer mode #630)The text was updated successfully, but these errors were encountered: