Comments (6)
Okay, I think adding a question mark to the final double-quote should do the trick. Then the string check in read_atom needs raise an exception if the first character is a double-quote but the last is not. I think that will work as long as the language regex engine is properly greedy.
[\s,]*(~@|[\[\]{}()'`~^@]|"(?:[\\].|[^\\"])*"?|;.*|[^\s\[\]{}()'"`@,;]+)
Sound reasonable? I probably won't be able to get to this for a while. Feel free to send me a PR if you feel up to it :-)
from mal.
Yeah, using that new one works, at least for Common Lisp. I believe all perl regexp compatible library should just work.
from mal.
Now that #90 is implemented, I'm finally getting back around to this. I pushed a "test_unclosed_string" branch with step1 tests to catch this. Here is the list of broken implementations and whether a fix has been implemented yet:
- awk
- basic
- c
- clojure
- crystal
- cs
- d
- dart
- factor
- fantom
- go
- groovy
- haxe
- hy
- io
- java
- julia
- kotlin
- livescript
- logo
- make
- matlab
- miniMAL
- nim
- objc
- objpascal
- ocaml
- php
- plpgsql
- plsql
- powershell
- r
- racket
- rexx
- rpython
- ruby
- scala
- skew
- swift
- swift3
- tcl
- ts
- vb
- vhdl
- wasm
- yorick
from mal.
Hm, I've implemented a check in my readers by testing for the first char of the token and if it's a double quote, test the last char of the token as well. Depending on that check either an error is thrown or a string object is returned.
from mal.
@wasamasa yeah, there are a number of implementations where the check just doesn't match the error text. The fixes are pretty simple. I was just planning to do them myself instead of creating a branch for fixes since the fixes tend to take less than a minute per implementation. FYI, the run with the fixed up test is here: https://travis-ci.org/kanaka/mal/builds/484027719
from mal.
Okay, I pushed fixes for the 47 implementations that were complaining. We'll see if everything passes before closing: https://travis-ci.org/kanaka/mal/builds/484570489
from mal.
Related Issues (20)
- Consider merging eval, eval-ast and macroexpand
- Problem Running Tests with Readline Library in C HOT 4
- Newline Escaping HOT 1
- What was used to make the MAL diagram? HOT 1
- what is the minimum requirement for the base language? HOT 1
- Verilog: is there a good reason mal has not been implemented? HOT 1
- VHDL: defmacro! doesn't modify existing functions HOT 1
- make "test^js^step0" fails -- Fatal error in , line 0 -- Check failed: result.second. HOT 1
- PDFs?
- Somebody should solve Rosetta Code challenges with mal
- Mal in Coq? HOT 1
- Apparently in step 3 'env' is a class or structure type, not an object
- Questions on different design from lisp: Mal symbol do not use property lists?
- Lots of unanswered merge requests
- Why is quasiquote so complicated? HOT 3
- What with `` gensym ''
- lexicial versus dynamic
- Floats don't work in the python implementation.
- Is #mal IRC channel still active? people seems tends to use discord now XD
- Should `eval` use the top-level environment? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mal.