/
EvilBeaver
/
OneScript
Обзор
Документация
Войти
/
EvilBeaver
/
OneScript
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
v2.0.3-alpha
src/OneScript.Language/SyntaxAnalysis/ParserContext.cs
35 строк
1 KB
EvilBeaver
Удален слой абстракции IAstBuilder и упрощено создание нод AST.
31 июл 2021, 23:11
31 июл 2021, 23:11
dd40f32
Код
Авторство
О чём код?
/*---------------------------------------------------------- This Source Code Form is subject to the terms of the Mozilla Public License, v.2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ using System.Collections.Generic; using OneScript.Language.SyntaxAnalysis.AstNodes; namespace OneScript.Language.SyntaxAnalysis { public class ParserContext { private readonly Stack<NonTerminalNode> _nodeContext = new Stack<NonTerminalNode>(); public void PushContext(NonTerminalNode node) { _nodeContext.Push(node); } public NonTerminalNode PopContext() { return _nodeContext.Pop(); } public NonTerminalNode CurrentParent => _nodeContext.Peek(); public T AddChild<T>(T child) where T : BslSyntaxNode { CurrentParent.AddChild(child); return child; } } }