Macro
Match a rule
Given a file named “main.scm” with:
When I successfully run scheme main.scm
Then the stdout should contain exactly “A”.
Match rules
Given a file named “main.scm” with:
When I successfully run scheme main.scm
Then the stdout should contain exactly “B”.
Match a nested pattern
Given a file named “main.scm” with:
When I successfully run scheme main.scm
Then the stdout should contain exactly “A”.
Capture a free variable
Given a file named “main.scm” with:
When I successfully run scheme main.scm
Then the stdout should contain exactly “AB”.
Match an ellipsis pattern
Given a file named “main.scm” with:
When I successfully run scheme main.scm
Then the stdout should contain exactly “A”.
Match a preceding ellipsis pattern
Given a file named “main.scm” with:
When I successfully run scheme main.scm
Then the stdout should contain exactly “A”.
Match a succeeding ellipsis pattern
Given a file named “main.scm” with:
When I successfully run scheme main.scm
Then the stdout should contain exactly “A”.
Match an ellipsis pattern with an empty list
Given a file named “main.scm” with:
When I successfully run scheme main.scm
Then the stdout should contain exactly “A”.
Match a nested ellipsis pattern
Given a file named “main.scm” with:
When I successfully run scheme main.scm
Then the stdout should contain exactly “AB”.
Match a deeply nested ellipsis pattern
Given a file named “main.scm” with:
When I successfully run scheme main.scm
Then the stdout should contain exactly “ABC”.
Expand an ellipsis pattern
Given a file named “main.scm” with:
When I successfully run scheme main.scm
Then the stdout should contain exactly “AB”.
Match two ellipses at different levels
Given a file named “main.scm” with:
When I successfully run scheme main.scm
Then the stdout should contain exactly “A”.
Match an improper list
Given a file named “main.scm” with:
When I successfully run scheme main.scm
Then the stdout should contain exactly “B”.
Match an ellipsis pattern and an improper list
Given a file named “main.scm” with:
When I successfully run scheme main.scm
Then the stdout should contain exactly “C”.
Expand an empty ellipsis pattern and an improper list
Given a file named “main.scm” with:
When I successfully run scheme main.scm
Then the stdout should contain exactly “B”.
Match an ellipsis pattern to an improper list
Given a file named “main.scm” with:
When I run scheme main.scm
Then the exit status should not be 0.
Expand an ellipsis pattern of an improper list
Given a file named “main.scm” with:
When I successfully run scheme main.scm
Then the stdout should contain exactly “ABC”.
Expand a list with an ellipsis pattern
Given a file named “main.scm” with:
When I run scheme main.scm
Then the exit status should not be 0.
Expand ellipsis and singleton patterns
Given a file named “main.scm” with:
When I successfully run scheme main.scm
Then the stdout should contain exactly “ABC”.
Match a literal identifier
Given a file named “main.scm” with:
When I successfully run scheme main.scm
Then the stdout should contain exactly “B”.
Expand a macro recursively
Given a file named “main.scm” with:
When I successfully run scheme main.scm
Then the stdout should contain exactly “A”.
Expand a spread variable with a constant
Given a file named “main.scm” with:
When I successfully run scheme main.scm
Then the stdout should contain exactly “A”.
Throw an error if no rule matches
Given a file named “main.scm” with:
When I run scheme main.scm
Then the exit status should not be 0.
Define a local macro
Given a file named “main.scm” with:
When I successfully run scheme main.scm
Then the stdout should contain exactly “A”.
Define a local macro capturing a global value of the same name
Given a file named “main.scm” with:
When I successfully run scheme main.scm
Then the stdout should contain exactly “A”.
Define a recursive local macro
Given a file named “main.scm” with:
When I successfully run scheme main.scm
Then the stdout should contain exactly “B”.
Define a mutually recursive local macro
Given a file named “main.scm” with:
When I successfully run scheme main.scm
Then the stdout should contain exactly “A”.
Define a recursive local macro in a body
Given a file named “main.scm” with:
When I successfully run scheme main.scm
Then the stdout should contain exactly “B”.
Define a mutually recursive local macro in a body
Given a file named “main.scm” with:
When I successfully run scheme main.scm
Then the stdout should contain exactly “A”.
Shadow a global value by a global macro
Given a file named “main.scm” with:
When I successfully run scheme main.scm
Then the stdout should contain exactly “A”.
Use a global macro as a shadowed value
Given a file named “main.scm” with:
When I run scheme main.scm
Then the exit status should not be 0.
Use a higher-order macro
Given a file named “main.scm” with:
When I successfully run scheme main.scm
Then the stdout should contain exactly “A”.
Shadow a global macro by a global value
Given a file named “main.scm” with:
When I successfully run scheme main.scm
Then the stdout should contain exactly “A”.
Shadow a local value by a local macro
Given a file named “main.scm” with:
When I successfully run scheme main.scm
Then the stdout should contain exactly “A”.
Use a local macro as a shadowed value
Given a file named “main.scm” with:
When I run scheme main.scm
Then the exit status should not be 0.
Shadow a local macro by a local value
Given a file named “main.scm” with:
When I successfully run scheme main.scm
Then the stdout should contain exactly “A”.
Shadow a literal by a global value
Given a file named “main.scm” with:
When I successfully run scheme main.scm
Then the stdout should contain exactly “A”.
Shadow a literal by a local value
Given a file named “main.scm” with:
When I run scheme main.scm
Then the exit status should not be 0.
Capture a local value in a local macro
Given a file named “main.scm” with:
When I successfully run scheme main.scm
Then the stdout should contain exactly “A”.
Capture a local macro in a local macro
Given a file named “main.scm” with:
When I successfully run scheme main.scm
Then the stdout should contain exactly “A”.
Capture a local macro in a local macro of the same name
Given a file named “main.scm” with:
When I successfully run scheme main.scm
Then the stdout should contain exactly “A”.
Put a sequence in a body of let-syntax
Given a file named “main.scm” with:
When I successfully run scheme main.scm
Then the stdout should contain exactly “AB”.
Put a sequence in a body of letrec-syntax
Given a file named “main.scm” with:
When I successfully run scheme main.scm
Then the stdout should contain exactly “AB”.
Use a macro as a value
Given a file named “main.scm” with:
When I run scheme main.scm
Then the exit status should not be 0.
Resolve denotations recursively
Given a file named “main.scm” with:
When I successfully run scheme main.scm
Then the stdout should contain exactly “B”.
Bind the same name as a global value
Given a file named “main.scm” with:
When I successfully run scheme main.scm
Then the stdout should contain exactly “A”.
Bind the same name as a local value
Given a file named “main.scm” with:
When I successfully run scheme main.scm
Then the stdout should contain exactly “A”.
Bind the same name as a global macro
Given a file named “main.scm” with:
When I successfully run scheme main.scm
Then the stdout should contain exactly “A”.
Bind the same name as a local macro
Given a file named “main.scm” with:
When I successfully run scheme main.scm
Then the stdout should contain exactly “A”.
Re-define define-syntax
Given a file named “main.scm” with:
When I successfully run scheme main.scm
Then the stdout should contain exactly “A”.
Re-define ...
Given a file named “main.scm” with:
When I successfully run scheme main.scm
Then the stdout should contain exactly “A”.
Define _
Given a file named “main.scm” with:
When I successfully run scheme main.scm
Then the stdout should contain exactly “A”.