/// <exception cref="ArgumentNullException"><paramref name="context" /> is <c>null</c>.</exception> internal static LSLVariableDeclarationNode CreateVar(LSLParser.LocalVariableDeclarationContext context) { if (context == null) { throw new ArgumentNullException("context"); } var n = new LSLVariableDeclarationNode(); n.VariableNode = LSLVariableNode.CreateVarReference(context, n); n.SourceRange = new LSLSourceCodeRange(context); n.VariableNode.Parent = n; n.SourceRangeType = new LSLSourceCodeRange(context.variable_type); n.SourceRangeName = new LSLSourceCodeRange(context.variable_name); n.SourceRangesAvailable = true; if (context.operation != null) { n.SourceRangeOperator = new LSLSourceCodeRange(context.operation); } return(n); }
/// <exception cref="ArgumentNullException"><paramref name="context" /> or <paramref name="declaration" /> is <c>null</c>.</exception> internal static LSLVariableNode CreateVarReference(LSLParser.LocalVariableDeclarationContext context, ILSLVariableDeclarationNode declaration) { if (context == null) { throw new ArgumentNullException("context"); } if (declaration == null) { throw new ArgumentNullException("declaration"); } return(new LSLVariableNode { Name = context.variable_name.Text, TypeName = context.variable_type.Text, Type = LSLTypeTools.FromLSLTypeName(context.variable_type.Text), ExpressionType = LSLExpressionType.LocalVariable, IsConstant = false, SourceRange = new LSLSourceCodeRange(context), Declaration = declaration }); }
/// <summary> /// Exit a parse tree produced by <see cref="LSLParser.localVariableDeclaration"/>. /// <para>The default implementation does nothing.</para> /// </summary> /// <param name="context">The parse tree.</param> public virtual void ExitLocalVariableDeclaration([NotNull] LSLParser.LocalVariableDeclarationContext context) { }
/// <summary> /// Visit a parse tree produced by <see cref="LSLParser.localVariableDeclaration"/>. /// <para> /// The default implementation returns the result of calling <see cref="AbstractParseTreeVisitor{Result}.VisitChildren(IRuleNode)"/> /// on <paramref name="context"/>. /// </para> /// </summary> /// <param name="context">The parse tree.</param> /// <return>The visitor result.</return> public virtual Result VisitLocalVariableDeclaration([NotNull] LSLParser.LocalVariableDeclarationContext context) { return(VisitChildren(context)); }