001/*-------------------------------------------------------------------------+ 002| | 003| Copyright 2005-2011 the ConQAT Project | 004| | 005| Licensed under the Apache License, Version 2.0 (the "License"); | 006| you may not use this file except in compliance with the License. | 007| You may obtain a copy of the License at | 008| | 009| http://www.apache.org/licenses/LICENSE-2.0 | 010| | 011| Unless required by applicable law or agreed to in writing, software | 012| distributed under the License is distributed on an "AS IS" BASIS, | 013| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 014| See the License for the specific language governing permissions and | 015| limitations under the License. | 016+-------------------------------------------------------------------------*/ 017package eu.cqse.check.framework.shallowparser; 018 019import java.util.List; 020 021import eu.cqse.check.framework.scanner.IToken; 022import eu.cqse.check.framework.shallowparser.framework.ShallowEntity; 023 024/** 025 * Interface for a shallow parser. All shallow parsers are sufficiently robust 026 * to support parsing even of non-compiling code and arbitrary code snippets. 027 */ 028public interface IShallowParser { 029 030 /** 031 * Shallow parses the given list of tokens and returns all entities found. 032 * The tokens provided are expected to represent an entire top-level element 033 * of the language (typically a file). 034 */ 035 List<ShallowEntity> parseTopLevel(List<IToken> tokens); 036 037 /** 038 * Shallow parses the given list of tokens and returns all entities found. 039 * The tokens provided may be from an arbitrary contiguous chunk of source 040 * code. 041 */ 042 List<ShallowEntity> parseFragment(List<IToken> tokens); 043}