(Arne Babenhauserheide)
2014-01-07: make files containing only a hashbang work v0.5.2 make files containing only a hashbang work
diff --git a/.bugs/bugs b/.bugs/bugs --- a/.bugs/bugs +++ b/.bugs/bugs @@ -8,7 +8,7 @@ implement wisp in wisp linebreaks in parens still break | owner:, open:True, id:6797987c7834a53358fb4ebbd8b9b36c2c4a8f01, time:1379004764.14 wisp-guile.w does not yet remove the leading . which signifies a continuation. | owner:Arne Babenhauserheide <bab@draketo.de>, open:False, id:7075096a323933493f42a3751da5f75a45d5d699, time:1377381700.17 inline ' : should be '( | owner:Arne Babenhauserheide <bab@draketo.de>, open:False, id:72d534a8b23b4cb168017f1bb7d8816f0ea170c4, time:1366497335.26 -failing test tests/shebang.w | owner:Arne Babenhauserheide <bab@draketo.de>, open:True, id:74a851f83af8996465a7b24d8453161beb0f0fd5, time:1379106761.57 +failing test tests/shebang.w | owner:Arne Babenhauserheide <bab@draketo.de>, open:False, id:74a851f83af8996465a7b24d8453161beb0f0fd5, time:1379106761.57 the repl does not require 3 returns when you use a single char as function, or rather only does so every second time | owner:, open:True, id:9cedd0bdbf4a3b17add4bfe86ad5a23e500cfc6c, time:1379064870.78 wisp-guile.w breaks on ";" and complex brackets with bracket char literals. See wisp-guile.w::91 | owner:, open:False, id:9d8b6f87fa5365733fc8655614dbf2a9ba5bd054, time:1377533321.27 wisp-mode: handle lines starting with underscores: currently sees the underscores as function call. | owner:Arne Babenhauserheide <bab@draketo.de>, open:True, id:b2c3755e1deb8355655a334d569679e2e62d2836, time:1376612093.55 diff --git a/wisp-guile.w b/wisp-guile.w --- a/wisp-guile.w +++ b/wisp-guile.w @@ -542,7 +542,7 @@ define : line-drop-continuation-dot line define : wisp2lisp-parse lisp prev lines . "Parse the body of the wisp-code." set! prev : wisp2lisp-add-inline-colon-brackets prev ; prev already is a code-line. - if : not : line-continues? prev + if : not : or (line-continues? prev) (line-empty-code? prev) set! prev : line-add-starting-bracket prev set! lines : map-in-order wisp2lisp-add-inline-colon-brackets lines let bracketizer : (levels '(0)) (pre prev) (unprocessed lines) (processed lisp) (whitespace '()) @@ -564,7 +564,7 @@ define : wisp2lisp-parse lisp prev lines pre-continues : line-continues? pre next-continues : line-continues? next final-line : equal? #f : line-content next - bracketstocloseprev : line-indent-brackets-to-close next-indent levels next-continues pre-continues + bracketstocloseprev : if (line-empty-code? pre) 0 : line-indent-brackets-to-close next-indent levels next-continues pre-continues bracketstoopennext : line-indent-brackets-to-open next-indent levels next-continues pre-continues newnext : if final-line next : if (> bracketstoopennext 0) (line-add-starting-bracket next) next newpre : line-drop-continuation-dot : line-add-closing-brackets pre bracketstocloseprev @@ -579,7 +579,7 @@ define : wisp2lisp-initial-comments lisp . "Keep all starting comments: do not start them with a bracket." let skip-initial-comments : (lisp lisp) (prev prev) (lines lines) if : = 0 : length lines ; file only contained comments, maybe including the hashbang - . lisp + list lisp prev lines if : line-empty-code? prev skip-initial-comments : append lisp : list prev . (list-ref lines 0) (list-tail lines 1)