Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add AbstractUniformHole #21

Merged
merged 1 commit into from
Apr 15, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 9 additions & 1 deletion src/rulenode.jl
Original file line number Diff line number Diff line change
Expand Up @@ -45,13 +45,21 @@ The `domain` is a bitvector, where the `i`th bit is set to true if the `i`th rul
"""
abstract type AbstractHole <: AbstractRuleNode end

"""
Hole <: AbstractHole

An [`AbstractUniformHole`](@ref) is a placeholder where certain rules from the grammar can still be applied,
but all rules in the domain are required to have the same childtypes.
"""
abstract type AbstractUniformHole <: AbstractHole end

"""
UniformHole <: AbstractHole

- `domain`: A bitvector, where the `i`th bit is set to true if the `i`th rule in the grammar can be applied. All rules in the domain are required to have the same childtypes.
- `children`: The children of this hole in the expression tree.
"""
mutable struct UniformHole <: AbstractHole
mutable struct UniformHole <: AbstractUniformHole
domain::BitVector
children::Vector{AbstractRuleNode}
end
Expand Down
Loading