diff --git a/k_prime.krak b/k_prime.krak index c4bb27d..286207d 100644 --- a/k_prime.krak +++ b/k_prime.krak @@ -702,7 +702,7 @@ fun main(argc: int, argv: **char): int { } else if input[i+1] == '\\' || input[i+1] == '"' { to_ret += input[i+1] } else { - return KPResult::Err(kpString(str("bad string escape"))) + return KPResult::Err(kpString(str("bad string escape: ") + input[i+1])) } // skip i++ diff --git a/new_kraken.kp b/new_kraken.kp index fb433a1..f818937 100644 --- a/new_kraken.kp +++ b/new_kraken.kp @@ -73,7 +73,8 @@ |(;[ -~]* ))+") (lambda (x) nil)) (array (quote atom) (array "-?[0-9]+") (lambda (x) (read-string x))) - ; String here + (array (quote atom) (array "\"([#-[]| |[]-~]|(\\\\)|(\\n)|(\\t)|(\\\\*)|(\\0)| +|[ -!]|(\\\\\"))*\"") (lambda (x) (read-string x))) (array (quote atom) (array "-|(([a-z]|[A-Z]|_|\\*|/|\\?|\\+|!|=|&|<|>|%)([a-z]|[A-Z]|_|[0-9]|\\*|\\?|\\+|-|!|=|&|<|>|%)*)") (lambda (x) (cond (= "true" x) true (= "false" x) false (= "nil" x) nil