diff --git a/pkg/reader/reader.go b/pkg/reader/reader.go index d756c6b1..17229c99 100644 --- a/pkg/reader/reader.go +++ b/pkg/reader/reader.go @@ -937,6 +937,18 @@ func (r *Reader) readDispatch() (interface{}, error) { return r.readExpr() case '#': return r.readSymbolicValue() + case '!': + // comment, discard until end of line + for { + rn, _, err := r.rs.ReadRune() + if err != nil { + return nil, r.error("error reading input: %w", err) + } + if rn == '\n' { + break + } + } + return r.readExpr() default: return nil, r.error("invalid dispatch character: %c", rn) } diff --git a/pkg/reader/testdata/clj-cache/read/7cf33476e7cff8b85c6eff7cd370f29253b2121045ac88f190714c42e61648b1.glj b/pkg/reader/testdata/clj-cache/read/7cf33476e7cff8b85c6eff7cd370f29253b2121045ac88f190714c42e61648b1.glj new file mode 100644 index 00000000..6e84050b --- /dev/null +++ b/pkg/reader/testdata/clj-cache/read/7cf33476e7cff8b85c6eff7cd370f29253b2121045ac88f190714c42e61648b1.glj @@ -0,0 +1,2 @@ +true +291 \ No newline at end of file diff --git a/pkg/reader/testdata/clj-cache/read/9466e130e88346e09e754f11f5539093f6df5223fe9922c21323ebab98fd518b.glj b/pkg/reader/testdata/clj-cache/read/9466e130e88346e09e754f11f5539093f6df5223fe9922c21323ebab98fd518b.glj new file mode 100644 index 00000000..902b0c76 --- /dev/null +++ b/pkg/reader/testdata/clj-cache/read/9466e130e88346e09e754f11f5539093f6df5223fe9922c21323ebab98fd518b.glj @@ -0,0 +1,2 @@ +true +1.0E10 \ No newline at end of file diff --git a/pkg/reader/testdata/clj-cache/read/bfd59979737de1a540673045c3adb336332c2c205d2c5fbaff6b1c7a9f3fc9ef.glj b/pkg/reader/testdata/clj-cache/read/bfd59979737de1a540673045c3adb336332c2c205d2c5fbaff6b1c7a9f3fc9ef.glj new file mode 100644 index 00000000..a83a244d --- /dev/null +++ b/pkg/reader/testdata/clj-cache/read/bfd59979737de1a540673045c3adb336332c2c205d2c5fbaff6b1c7a9f3fc9ef.glj @@ -0,0 +1,2 @@ +true +42 \ No newline at end of file diff --git a/pkg/reader/testdata/clj-cache/read/c00e2650a826a4886c2bab00b70f6f3a00f8e1590c8cadc560ef493c3562028c.glj b/pkg/reader/testdata/clj-cache/read/c00e2650a826a4886c2bab00b70f6f3a00f8e1590c8cadc560ef493c3562028c.glj new file mode 100644 index 00000000..8dc67fe3 --- /dev/null +++ b/pkg/reader/testdata/clj-cache/read/c00e2650a826a4886c2bab00b70f6f3a00f8e1590c8cadc560ef493c3562028c.glj @@ -0,0 +1,2 @@ +true +0M \ No newline at end of file diff --git a/pkg/reader/testdata/clj-equiv-cache/efe5931ea5c44cd13420973e881027e0261414ca43a4872137e3508ebff9ca58 b/pkg/reader/testdata/clj-equiv-cache/efe5931ea5c44cd13420973e881027e0261414ca43a4872137e3508ebff9ca58 new file mode 100644 index 00000000..27ba77dd --- /dev/null +++ b/pkg/reader/testdata/clj-equiv-cache/efe5931ea5c44cd13420973e881027e0261414ca43a4872137e3508ebff9ca58 @@ -0,0 +1 @@ +true diff --git a/pkg/reader/testdata/reader/shebang.glj b/pkg/reader/testdata/reader/shebang.glj new file mode 100644 index 00000000..20f8373d --- /dev/null +++ b/pkg/reader/testdata/reader/shebang.glj @@ -0,0 +1,2 @@ +#! this is treated as a comment +42 diff --git a/pkg/reader/testdata/reader/shebang.out b/pkg/reader/testdata/reader/shebang.out new file mode 100644 index 00000000..d81cc071 --- /dev/null +++ b/pkg/reader/testdata/reader/shebang.out @@ -0,0 +1 @@ +42