using Canon.Core.Abstractions;
using Canon.Core.CodeGenerators;
using Canon.Core.Enums;
using Canon.Core.LexicalParser;
namespace Canon.Core.SyntaxNodes;
public class ValueParameter : NonTerminatedSyntaxNode
{
public override NonTerminatorType Type => NonTerminatorType.ValueParameter;
///
/// 是否为参数中的引用参数
///
public bool IsReference { get; set; }
public IdentifierSemanticToken Token =>
Children[0].Convert().Token.Convert();
public IdentifierList IdentifierList => Children[1].Convert();
public override void PreVisit(SyntaxNodeVisitor visitor)
{
visitor.PreVisit(this);
}
public override void PostVisit(SyntaxNodeVisitor visitor)
{
visitor.PostVisit(this);
}
public static ValueParameter Create(List children)
{
return new ValueParameter { Children = children };
}
}