semantic / bovine / skeleton.by

;;; skeleton.by -- Skeleton for creating BY files.
;;
;; Copyright (C) 2001, 2003 Eric M. Ludlam
;;
;; Author: 
;; X-RCS: $Id$
;;
;; .bnf is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 2, or (at your option)
;; any later version.
;;
;; This software is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;; GNU General Public License for more details.
;;
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING.  If not, write to the
;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
;; Boston, MA 02110-1301, USA.
;;

;; Replace occurance of "skeleton" with the name of your language.

;; Replace start, and scopestart names with something apropriate for
;; your language.

%package semantic-skeleton-by

%languagemode  skeleton-mode
%start         starting_rule
%scopestart    start_scope_rule

;; Make common keywords into tokens returned by the lexer.
;; This improves accuracy, makes this file more readable.
;; Use SOMETHING in your rules as a terminal
%token SOMETHING "something"
;; Adding a summary help's `eldoc' mode display useful information
;; in your language.
%put SOMETHING summary "Describe something"

;; Turn common punctuation elements into tokens.
;; This does not effect lexical analysis or accuracy,
;; but does make your file more readable.
%token <punctuation> PERIOD "\\`[.]\\'"
%token <punctuation> OPERATORS "[-+*/%^|&]"

%%

starting_rule : something
	      ;

start_scope_rule : something_else
		 ;


something : SOMETHING
	  ;

;; Examples from c.by:

opt-expression : expression
	       | ;; EMPTY
	       ;

;; This expression parses over expressions, but doesn't return
;; anything
expression : number
	     ( )
	   | symbol
	     ( )
	   | string
	     ( )
           | semantic-list
	     ( )
	   | OPERATORS expression
	   ;; ( nil )
	   ;

;;; skeleton.by ends here
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.