/**************************************************************************/ /* Lem */ /* */ /* Dominic Mulligan, University of Cambridge */ /* Francesco Zappa Nardelli, INRIA Paris-Rocquencourt */ /* Gabriel Kerneis, University of Cambridge */ /* Kathy Gray, University of Cambridge */ /* Peter Boehm, University of Cambridge (while working on Lem) */ /* Peter Sewell, University of Cambridge */ /* Scott Owens, University of Kent */ /* Thomas Tuerk, University of Cambridge */ /* */ /* The Lem sources are copyright 2010-2013 */ /* by the UK authors above and Institut National de Recherche en */ /* Informatique et en Automatique (INRIA). */ /* */ /* All files except ocaml-lib/pmap.{ml,mli} and ocaml-libpset.{ml,mli} */ /* are distributed under the license below. The former are distributed */ /* under the LGPLv2, as in the LICENSE file. */ /* */ /* */ /* Redistribution and use in source and binary forms, with or without */ /* modification, are permitted provided that the following conditions */ /* are met: */ /* 1. Redistributions of source code must retain the above copyright */ /* notice, this list of conditions and the following disclaimer. */ /* 2. Redistributions in binary form must reproduce the above copyright */ /* notice, this list of conditions and the following disclaimer in the */ /* documentation and/or other materials provided with the distribution. */ /* 3. The names of the authors may not be used to endorse or promote */ /* products derived from this software without specific prior written */ /* permission. */ /* */ /* THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS */ /* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED */ /* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE */ /* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY */ /* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL */ /* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE */ /* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS */ /* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER */ /* IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */ /* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN */ /* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /**************************************************************************/ %{ let r = fun x -> x (* Ulib.Text.of_latin1 *) %} /*Terminals with no content*/ %token Scattered Typedef Other Eof %token Id %start file %type file %% id_found: | Typedef Id { $2 } skip: | Scattered { () } | Id { () } | Other { () } scan_file: | id_found Eof { [$1] } | skip Eof { [] } | id_found scan_file { $1::$2 } | skip scan_file { $2 } file: | scan_file { $1 }