Example #1
0
        GetElementPtr ParseGetElementPtr()
        {
            var ptr = new GetElementPtr();

            AcceptElement(Token.GetElementPtr);
            AcceptElementIfNext(Token.Inbounds);

            var parens = AcceptElementIfNext(Token.ParenOpen);

            ptr.PtrType = ParseType();
            AcceptElement(Token.Comma);
            ptr.Type = ParseType();
            //ptr.PtrVar = AcceptElement(Token.LocalIdentifier, Token.GlobalIdentifier).Data;
            ptr.PtrVal = ParseExpression();

            AcceptElement(Token.Comma);
            while (true)
            {
                AcceptElement(Token.I32);
                ptr.Indices.Add(ParseExpression());

                if (PeekElement().Type == Token.Comma)
                {
                    AcceptElement(Token.Comma);
                }
                else
                {
                    if (parens)
                    {
                        AcceptElement(Token.ParenClose);
                    }
                    break;
                }
            }
            return(ptr);
        }
Example #2
0
 public object Visit(GetElementPtr getElementPtr)
 {
     return(null);
 }