Git Product home page Git Product logo

Comments (6)

kanaka avatar kanaka commented on May 12, 2024 1

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.

 avatar commented on May 12, 2024

Yeah, using that new one works, at least for Common Lisp. I believe all perl regexp compatible library should just work.

from mal.

kanaka avatar kanaka commented on May 12, 2024

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.

wasamasa avatar wasamasa commented on May 12, 2024

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.

kanaka avatar kanaka commented on May 12, 2024

@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.

kanaka avatar kanaka commented on May 12, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.