Explorar o código

Shell: Implement leftmost_trivial_literal() for Sequence nodes

Ali Mohammad Pur %!s(int64=3) %!d(string=hai) anos
pai
achega
c4d9377477
Modificáronse 2 ficheiros con 10 adicións e 0 borrados
  1. 9 0
      Userland/Shell/AST.cpp
  2. 1 0
      Userland/Shell/AST.h

+ 9 - 0
Userland/Shell/AST.cpp

@@ -2736,6 +2736,15 @@ HitTestResult Sequence::hit_test_position(size_t offset) const
     return {};
 }
 
+RefPtr<Node> Sequence::leftmost_trivial_literal() const
+{
+    for (auto& entry : m_entries) {
+        if (auto node = entry.leftmost_trivial_literal())
+            return node;
+    }
+    return nullptr;
+}
+
 Sequence::Sequence(Position position, NonnullRefPtrVector<Node> entries, Vector<Position> separator_positions)
     : Node(move(position))
     , m_entries(move(entries))

+ 1 - 0
Userland/Shell/AST.h

@@ -1183,6 +1183,7 @@ private:
     virtual HitTestResult hit_test_position(size_t) const override;
     virtual bool is_list() const override { return true; }
     virtual bool should_override_execution_in_current_process() const override { return true; }
+    virtual RefPtr<Node> leftmost_trivial_literal() const override;
 
     NonnullRefPtrVector<Node> m_entries;
     Vector<Position> m_separator_positions;