public BlockArgumentsPTN(BELLocation loc, BlockPTN block, QualifiedBlockArgumentsPTN qualifiedBlocks)
     : base(loc)
 {
     Block = block;
     QualifiedBlocks = qualifiedBlocks;
 }
Exemple #2
0
		/*
			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;
		}