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); }
public object Visit(GetElementPtr getElementPtr) { return(null); }