summaryrefslogtreecommitdiff
path: root/etc/srecode/wisent.srt
diff options
context:
space:
mode:
authorChong Yidong <cyd@stupidchicken.com>2009-10-03 19:28:56 +0000
committerChong Yidong <cyd@stupidchicken.com>2009-10-03 19:28:56 +0000
commitc05676c5ac4c1722bcac8a31668f5fab2e7ae6d4 (patch)
tree51c46490ca339b80cc72377cb26c1409bb017fc5 /etc/srecode/wisent.srt
parente6e267fcba9251bbb7eeb66ca55c08e47c635ab8 (diff)
downloademacs-c05676c5ac4c1722bcac8a31668f5fab2e7ae6d4.tar.gz
emacs-c05676c5ac4c1722bcac8a31668f5fab2e7ae6d4.tar.bz2
emacs-c05676c5ac4c1722bcac8a31668f5fab2e7ae6d4.zip
* srecode: New directory for SRecode template files.
Diffstat (limited to 'etc/srecode/wisent.srt')
-rw-r--r--etc/srecode/wisent.srt94
1 files changed, 94 insertions, 0 deletions
diff --git a/etc/srecode/wisent.srt b/etc/srecode/wisent.srt
new file mode 100644
index 00000000000..ef7cddca06a
--- /dev/null
+++ b/etc/srecode/wisent.srt
@@ -0,0 +1,94 @@
+;; wisent.srt --- SRecode templates for Emacs/WISENT grammar files.
+
+;; Copyright (C) 2007, 2008 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 \ No newline at end of file