/
krasninja
/
querycat
Обзор
Документация
Войти
/
krasninja
/
querycat
Код
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
src/QueryCat.Backend/Ast/IAstNode.cs
43 строки
1 KB
Ivan Kozhin
Make most of AST classes internal
04 дек 2023, 19:35
04 дек 2023, 19:35
7aa397b
Код
Авторство
О чём код?
namespace QueryCat.Backend.Ast; /// <summary> /// AST node. Every AST node should be able to dump its state. /// </summary> internal interface IAstNode : ICloneable { /// <summary> /// Node id. /// </summary> int Id { get; } /// <summary> /// Short self descriptive code. /// </summary> string Code { get; } /// <summary> /// Get children nodes. /// </summary> IEnumerable<IAstNode> GetChildren(); /// <summary> /// The accept method for visitor pattern implementation. /// </summary> /// <param name="visitor">The visitor.</param> void Accept(AstVisitor visitor); /// <summary> /// Get attribute assigned to the node. /// </summary> /// <param name="key">Attribute key.</param> /// <typeparam name="T">Expected attribute type.</typeparam> /// <returns>Attribute value.</returns> T? GetAttribute<T>(string key); /// <summary> /// Set attribute value. /// </summary> /// <param name="key">Attribute key.</param> /// <param name="value">Value to assign.</param> void SetAttribute(string key, object? value); }