aboutsummaryrefslogtreecommitdiff
path: root/tests/reader.lisp
blob: 1383196b8ee6a8d083be30ccaf8ef78ea557d11a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
(in-package :consfigurator/tests)
(named-readtables:in-readtable :consfigurator)
(in-consfig "consfigurator/tests")

(deftest read-heredoc.1
    #>EOF>yesEOF
  "yes")

(deftest read-heredoc.2
    #>>EOF>>yes
  yesEOF
  "  yes")

(deftest read-heredoc.3
    #>>EOF>> ; well
line 1
EOF
  "line 1
")

(deftest read-heredoc.4
    #>~EOF>    blah
    blah
    EOF
  "blah
blah
")

(deftest read-heredoc.5
    #>>~EOF>>
  line 1
  line 2
  EOF
  "line 1
line 2
")

(deftest perl-tilde-reader.1
    (#~/bar/ "foo bar ")
  "bar")

(deftest perl-tilde-reader.2
    (#~/(f.*) (bar)/ "foo bar ")
  #("foo" "bar"))

(deftest perl-tilde-reader.3
    (#0~/(f.*) (bar)/ "foo bar ")
  "foo bar" #("foo" "bar"))

(deftest perl-tilde-reader.4
    (#2~/(f.*) (bar)/ "foo bar ")
  "bar" #("foo" "bar"))

(deftest perl-tilde-reader.5
    (#!~/bar/ "foo")
  t)

(deftest perl-tilde-reader.6
    (handler-case (read-from-string "(#!/bar/ \"foo\")")
      (simple-reader-error (err)
        (format nil (simple-condition-format-control err))))
  "Expected \"~\" following \"!\".")

(deftest perl-tilde-reader.7
    (#~/\w{2}/g "aa bb cc")
  ("aa" "bb" "cc"))

(deftest perl-tilde-reader.8
    (mapcar #~s/foo/bar/ '("foo" "bar"))
  ("bar" "bar"))

(deftest perl-tilde-reader.9
    (#~s/${(+ 1 1)}/${(+ 2 2)}/ "2")
  "4" t)

(deftest perl-tilde-reader.10
    (#~s/\w/\w/ "a")
  "w" t)

(deftest perl-tilde-reader.11
    (#~s/foo/bar/ "foo foo foo")
  "bar foo foo" t)

(deftest perl-tilde-reader.12
    (#~s/foo/bar/g "foo foo foo")
  "bar bar bar" t)

(deftest perl-tilde-reader.13
    (#~s/ \s\w d \w\s /!/ix "aDa bDa cDa")
  "aDa!cDa" t)

(deftest perl-tilde-reader.14
    (#~s[^(\d) ]{`\1` } "4 foo")
  "`4` foo" t)

(deftest perl-tilde-reader.15
    (#~s(\d)((\&\)\()) " 4 ")
  " (4)() " t)

(deftest perl-tilde-reader.16
    (#~s/foo/#bar#/ "foo")
  "#bar#" t)

(deftest perl-tilde-reader.17
    (#~s#foo#\#bar\## "foo")
  "#bar#" t)

(deftest perl-tilde-reader.18
    (#~s'foo'${bar}' "foo")
  "${bar}" t)