view etc/srecode/wisent.srt @ 109179:8cfee7d2955f

Convert DEFUNs to standard C. * src/alloc.c: Convert DEFUNs to standard C. * src/buffer.c: * src/bytecode.c: * src/callint.c: * src/callproc.c: * src/casefiddle.c: * src/casetab.c: * src/category.c: * src/character.c: * src/charset.c: * src/chartab.c: * src/cmds.c: * src/coding.c: * src/composite.c: * src/data.c: * src/dbusbind.c: * src/dired.c: * src/dispnew.c: * src/doc.c: * src/dosfns.c: * src/editfns.c: * src/emacs.c: * src/eval.c: * src/fileio.c: * src/filelock.c: * src/floatfns.c: * src/fns.c: * src/font.c: * src/fontset.c: * src/frame.c: * src/fringe.c: * src/image.c: * src/indent.c: * src/insdel.c: * src/keyboard.c: * src/keymap.c: * src/lread.c: * src/macros.c: * src/marker.c: * src/menu.c: * src/minibuf.c: * src/msdos.c: * src/nsfns.m: * src/nsmenu.m: * src/nsselect.m: * src/print.c: * src/process.c: * src/search.c: * src/sound.c: * src/syntax.c: * src/term.c: * src/terminal.c: * src/textprop.c: * src/undo.c: * src/w16select.c: * src/w32console.c: * src/w32fns.c: * src/w32font.c: * src/w32menu.c: * src/w32proc.c: * src/w32select.c: * src/window.c: * src/xdisp.c: * src/xfaces.c: * src/xfns.c: * src/xmenu.c: * src/xselect.c: * src/xsettings.c: * src/xsmfns.c: Likewise.
author Dan Nicolaescu <dann@ics.uci.edu>
date Thu, 08 Jul 2010 14:25:08 -0700
parents 1d1d5d9bd884
children 376148b31b5e
line wrap: on
line source

;; wisent.srt --- SRecode templates for Emacs/WISENT grammar files.

;; Copyright (C) 2007, 2008, 2009, 2010 Free Software Foundation, Inc.

;; Author: Eric M. Ludlam <eric@siege-engine.com>

;; This file is part of GNU Emacs.

;; GNU Emacs 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 3 of the License, or
;; (at your option) any later version.

;; GNU Emacs 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.  If not, see <http://www.gnu.org/licenses/>.

set mode "wisent-grammar-mode"
set comment_start  ";;"
set comment_prefix  ";;"
set comment_end  ""

context file

template empty :file :user :time
"Insert a skeleton for a grammar file."
----
{{>:filecomment}}

;;; Commentary:
;;
;; Parser for {{?TARGETMODE}} mode

%languagemode {{TARGETMODE}}-mode
%parsetable    wisent-{{TARGETMODE}}-parser-tables
%keywordtable  wisent-{{TARGETMODE}}-keywords
%tokentable    wisent-{{TARGETMODE}}-tokens
%languagemode  {{TARGETMODE}}-mode
%setupfunction wisent-{{TARGETMODE}}-default-setup

%start goal

;;; KEYWORDS
%type <keyword>

%%

goal
  : {{^}}
  ;

%%
(define-lex wisent-{{TARGETMODE}}-lexer
  "Lexical analzer to handle {{TARGETMODE}} buffers."
  ;; semantic-lex-newline
  semantic-lex-ignore-whitespace
  semantic-lex-ignore-newline
  semantic-lex-ignore-comments

  semantic-lex-default-action
  )

;; {{FILENAME}} ends here
----

context declaration

template function
----
{{?NAME}}
  : {{^}}
  ;
----
bind "f"

template keyword
----
%keyword {{?NAME:upcase}} "{{NAME:downcase}}"
%put     {{NAME:upcase}} summary "{{NAME}} {{^}}"
----
bind "k"

template token
----
%type <{{?LEXTOKEN}}>
%token <{{LEXTOKEN}}> {{LEXTOKEN}}
----
bind "t"

;; end