public BlockArgumentsPTN(BELLocation loc, BlockPTN block, QualifiedBlockArgumentsPTN qualifiedBlocks) : base(loc) { Block = block; QualifiedBlocks = qualifiedBlocks; }
/* qualifiedBlockArguments := identifier blockLiteral | identifier blockLiteral qualifiedBlockArguments */ QualifiedBlockArgumentsPTN QualifiedBlockArguments() { QualifiedBlockArgumentsPTN answer = null; Token next; while (true) { next = Scanner.Next(); if (next.Type != TokenType.TokenIdentifier) { Scanner.Pushback(next); break; // we're done! } // OK, we've got an identifier -- there better be a block BlockPTN block = BlockLiteral(); if (block == null) throw new ExpectedTokenParseException(LocationFromToken(next), "block {}", Scanner.LatestToken); if (answer == null) answer = new QualifiedBlockArgumentsPTN(LocationFromToken(next)); answer.AddQualifiedBlock(new QualifiedBlockPTN(LocationFromToken(next), next.Value, block)); } return answer; }
public BlockArgumentsPTN(BlockPTN block, QualifiedBlockArgumentsPTN qualifiedBlocks) : base() { Block = block; QualifiedBlocks = qualifiedBlocks; }