private void expression3()
	{
		if (have(NonTerminal.EXPRESSION3))
		{
			if (accept(Token.Kind.NOT))
			{
				expression3();
			}
			else if (accept(Token.Kind.OPEN_PAREN))
			{
				expression0();
				expect(Token.Kind.CLOSE_PAREN);
			}
			else if (have(NonTerminal.DESIGNATOR))
			{
				designator();
			}
			else if (have(NonTerminal.CALL_EXPRESSION))
			{
				callExpression();
			}
			else if (have(NonTerminal.LITERAL))
			{
				literal();
			}
		}
	}