Exemple #1
0
        /// <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);
        }
Exemple #2
0
        /// <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
            });
        }
Exemple #3
0
 /// <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));
 }