Skip to content

Combine QSymbols, QWords, Symbols, Words into ArrayLiteral #346

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

Closed
wants to merge 12 commits into from
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a

- Fixed the AST output by adding blocks to `Command` and `CommandCall` nodes in the `FieldVisitor`.
- Fixed the location of lambda local variables (e.g., `->(; a) {}`).
- The `Elsif` node has been folded into `IfNode`. A `keyword` field has been added to `IfNode` specifying if the node represents an `if` or `elsif`.

## [6.0.1] - 2023-02-26

Expand Down
49 changes: 2 additions & 47 deletions lib/syntax_tree/dsl.rb
Original file line number Diff line number Diff line change
Expand Up @@ -347,16 +347,6 @@ def Else(keyword, statements)
)
end

# Create a new Elsif node.
def Elsif(predicate, statements, consequent)
Elsif.new(
predicate: predicate,
statements: statements,
consequent: consequent,
location: Location.default
)
end

# Create a new EmbDoc node.
def EmbDoc(value)
EmbDoc.new(value: value, location: Location.default)
Expand Down Expand Up @@ -478,8 +468,9 @@ def Ident(value)
end

# Create a new IfNode node.
def IfNode(predicate, statements, consequent)
def IfNode(keyword, predicate, statements, consequent)
IfNode.new(
keyword: keyword,
predicate: predicate,
statements: statements,
consequent: consequent,
Expand Down Expand Up @@ -658,29 +649,11 @@ def Program(statements)
Program.new(statements: statements, location: Location.default)
end

# Create a new QSymbols node.
def QSymbols(beginning, elements)
QSymbols.new(
beginning: beginning,
elements: elements,
location: Location.default
)
end

# Create a new QSymbolsBeg node.
def QSymbolsBeg(value)
QSymbolsBeg.new(value: value, location: Location.default)
end

# Create a new QWords node.
def QWords(beginning, elements)
QWords.new(
beginning: beginning,
elements: elements,
location: Location.default
)
end

# Create a new QWordsBeg node.
def QWordsBeg(value)
QWordsBeg.new(value: value, location: Location.default)
Expand Down Expand Up @@ -839,15 +812,6 @@ def SymbolLiteral(value)
SymbolLiteral.new(value: value, location: Location.default)
end

# Create a new Symbols node.
def Symbols(beginning, elements)
Symbols.new(
beginning: beginning,
elements: elements,
location: Location.default
)
end

# Create a new SymbolsBeg node.
def SymbolsBeg(value)
SymbolsBeg.new(value: value, location: Location.default)
Expand Down Expand Up @@ -979,15 +943,6 @@ def Word(parts)
Word.new(parts: parts, location: Location.default)
end

# Create a new Words node.
def Words(beginning, elements)
Words.new(
beginning: beginning,
elements: elements,
location: Location.default
)
end

# Create a new WordsBeg node.
def WordsBeg(value)
WordsBeg.new(value: value, location: Location.default)
Expand Down
37 changes: 0 additions & 37 deletions lib/syntax_tree/field_visitor.rb
Original file line number Diff line number Diff line change
Expand Up @@ -353,15 +353,6 @@ def visit_else(node)
end
end

def visit_elsif(node)
node(node, "elsif") do
field("predicate", node.predicate)
field("statements", node.statements)
field("consequent", node.consequent) if node.consequent
comments(node)
end
end

def visit_embdoc(node)
node(node, "embdoc") { field("value", node.value) }
end
Expand Down Expand Up @@ -663,24 +654,10 @@ def visit_program(node)
end
end

def visit_qsymbols(node)
node(node, "qsymbols") do
list("elements", node.elements)
comments(node)
end
end

def visit_qsymbols_beg(node)
node(node, "qsymbols_beg") { field("value", node.value) }
end

def visit_qwords(node)
node(node, "qwords") do
list("elements", node.elements)
comments(node)
end
end

def visit_qwords_beg(node)
node(node, "qwords_beg") { field("value", node.value) }
end
Expand Down Expand Up @@ -856,13 +833,6 @@ def visit_symbol_literal(node)
end
end

def visit_symbols(node)
node(node, "symbols") do
list("elements", node.elements)
comments(node)
end
end

def visit_symbols_beg(node)
node(node, "symbols_beg") { field("value", node.value) }
end
Expand Down Expand Up @@ -982,13 +952,6 @@ def visit_word(node)
end
end

def visit_words(node)
node(node, "words") do
list("elements", node.elements)
comments(node)
end
end

def visit_words_beg(node)
node(node, "words_beg") { field("value", node.value) }
end
Expand Down
40 changes: 0 additions & 40 deletions lib/syntax_tree/mutation_visitor.rb
Original file line number Diff line number Diff line change
Expand Up @@ -322,14 +322,6 @@ def visit_else(node)
)
end

# Visit a Elsif node.
def visit_elsif(node)
node.copy(
statements: visit(node.statements),
consequent: visit(node.consequent)
)
end

# Visit a EmbDoc node.
def visit_embdoc(node)
node.copy
Expand Down Expand Up @@ -599,27 +591,11 @@ def visit_program(node)
node.copy(statements: visit(node.statements))
end

# Visit a QSymbols node.
def visit_qsymbols(node)
node.copy(
beginning: visit(node.beginning),
elements: visit_all(node.elements)
)
end

# Visit a QSymbolsBeg node.
def visit_qsymbols_beg(node)
node.copy
end

# Visit a QWords node.
def visit_qwords(node)
node.copy(
beginning: visit(node.beginning),
elements: visit_all(node.elements)
)
end

# Visit a QWordsBeg node.
def visit_qwords_beg(node)
node.copy
Expand Down Expand Up @@ -760,14 +736,6 @@ def visit_symbol_literal(node)
node.copy(value: visit(node.value))
end

# Visit a Symbols node.
def visit_symbols(node)
node.copy(
beginning: visit(node.beginning),
elements: visit_all(node.elements)
)
end

# Visit a SymbolsBeg node.
def visit_symbols_beg(node)
node.copy
Expand Down Expand Up @@ -887,14 +855,6 @@ def visit_word(node)
node.copy(parts: visit_all(node.parts))
end

# Visit a Words node.
def visit_words(node)
node.copy(
beginning: visit(node.beginning),
elements: visit_all(node.elements)
)
end

# Visit a WordsBeg node.
def visit_words_beg(node)
node.copy
Expand Down
Loading