$ // This file is part of NIT ( http://www.nitlanguage.org ). $ // $ // Copyright 2008 Jean Privat $ // Based on algorithms developped for ( http://www.sablecc.org/ ). $ // $ // Licensed under the Apache License, Version 2.0 (the "License"); $ // you may not use this file except in compliance with the License. $ // You may obtain a copy of the License at $ // $ // http://www.apache.org/licenses/LICENSE-2.0 $ // $ // Unless required by applicable law or agreed to in writing, software $ // distributed under the License is distributed on an "AS IS" BASIS, $ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. $ // See the License for the specific language governing permissions and $ // limitations under the License. $ template make_abs_tokens() $ foreach {//token} $ if {@parser_index} class @ename super Token end $ end $ end class EOF super Token end class PError super EOF end class PLexerError super PError end class PParserError super PError end $ end template $ template make_tokens() $ foreach {//token} $ if {@parser_index} redef class @ename redef fun parser_index: Int do return @parser_index end init init_tk(loc: Location) do _location = loc end end $ end if $ end foreach redef class EOF redef fun parser_index: Int do return ${tokens/eof/@parser_index} end end $ end template