示例#1
0
 public ScopedVariableNode(
     Language.Location location,
     NameNode scope,
     NameNode name)
 {
     Location = location;
     Scope    = scope ?? throw new ArgumentNullException(nameof(scope));
     Name     = name ?? throw new ArgumentNullException(nameof(name));
 }
示例#2
0
        protected static Location[] ConvertLocation(
            Language.Location tokenLocation)
        {
            if (tokenLocation == null)
            {
                return(null);
            }

            return(new[]
            {
                new Location(
                    tokenLocation.StartToken.Line,
                    tokenLocation.StartToken.Column)
            });
        }
示例#3
0
        private static ScopedVariableNode ParseVariable(ParserContext context)
        {
            SyntaxToken start = context.ExpectDollar();
            NameNode    scope = Parser.ParseName(context);

            context.Expect(TokenKind.Colon);
            NameNode name = Parser.ParseName(context);

            Language.Location location = context.CreateLocation(start);

            return(new ScopedVariableNode
                   (
                       location,
                       scope,
                       name
                   ));
        }