/* * Copyright (c) 2014 QNX Software Systems and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html */ package org.eclipse.cdt.core.parser; /** * Interface for providing settings for the parser. * <p> * The first version of the interface was not marked with no-implement, so methods * cannot be added to it. This version should be used going forward. It is marked * no-implement and a Default implementation is provided. Clients should base their * own implementations on Default in order to avoid being broken by futured additions * to this interface. * * @since 5.7 * @noimplement Extend {@link IParserSettings2.Default} instead. */ public interface IParserSettings2 extends IParserSettings { /** * An default implementation to be used as a base class by clients that want to * contribute parser settings. This base provides default values for all methods * so that clients will still compile when methods are added to the interface. * * @noinstantiate This class is not intended to be instantiated by clients. */ public static class Default extends ParserSettings implements IParserSettings2 { @Override public boolean shouldLimitTokensPerTranslationUnit() { return false; } @Override public int getMaximumTokensPerTranslationUnit() { return 0; } } /** * Returns true if the parser should be aborted when a single translation unit has produced * more than {@link #getMaximumTokensPerTranslationUnit()} tokens. */ public boolean shouldLimitTokensPerTranslationUnit(); /** * Returns the maximum number of tokens that should be created while parsing any one translation unit. * This value is used only when {@link #shouldLimitTokensPerTranslationUnit()} returns true. */ public int getMaximumTokensPerTranslationUnit(); }