Merge from trunk
[emacs.git] / etc / srecode / wisent.srt
blobd45392e93dd0c5c5c51453cb51ba03b24477c2f8
1 ;; wisent.srt --- SRecode templates for Emacs/WISENT grammar files.
3 ;; Copyright (C) 2007-2011 Free Software Foundation, Inc.
5 ;; Author: Eric M. Ludlam <eric@siege-engine.com>
7 ;; This file is part of GNU Emacs.
9 ;; GNU Emacs is free software: you can redistribute it and/or modify
10 ;; it under the terms of the GNU General Public License as published by
11 ;; the Free Software Foundation, either version 3 of the License, or
12 ;; (at your option) any later version.
14 ;; GNU Emacs is distributed in the hope that it will be useful,
15 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
16 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 ;; GNU General Public License for more details.
19 ;; You should have received a copy of the GNU General Public License
20 ;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
22 set mode "wisent-grammar-mode"
23 set comment_start  ";;"
24 set comment_prefix  ";;"
25 set comment_end  ""
27 context file
29 template empty :file :user :time
30 "Insert a skeleton for a grammar file."
31 ----
32 {{>:filecomment}}
34 ;;; Commentary:
36 ;; Parser for {{?TARGETMODE}} mode
38 %languagemode {{TARGETMODE}}-mode
39 %parsetable    wisent-{{TARGETMODE}}-parser-tables
40 %keywordtable  wisent-{{TARGETMODE}}-keywords
41 %tokentable    wisent-{{TARGETMODE}}-tokens
42 %languagemode  {{TARGETMODE}}-mode
43 %setupfunction wisent-{{TARGETMODE}}-default-setup
45 %start goal
47 ;;; KEYWORDS
48 %type <keyword>
52 goal
53   : {{^}}
54   ;
57 (define-lex wisent-{{TARGETMODE}}-lexer
58   "Lexical analzer to handle {{TARGETMODE}} buffers."
59   ;; semantic-lex-newline
60   semantic-lex-ignore-whitespace
61   semantic-lex-ignore-newline
62   semantic-lex-ignore-comments
64   semantic-lex-default-action
65   )
67 ;; {{FILENAME}} ends here
68 ----
70 context declaration
72 template function
73 ----
74 {{?NAME}}
75   : {{^}}
76   ;
77 ----
78 bind "f"
80 template keyword
81 ----
82 %keyword {{?NAME:upcase}} "{{NAME:downcase}}"
83 %put     {{NAME:upcase}} summary "{{NAME}} {{^}}"
84 ----
85 bind "k"
87 template token
88 ----
89 %type <{{?LEXTOKEN}}>
90 %token <{{LEXTOKEN}}> {{LEXTOKEN}}
91 ----
92 bind "t"
94 ;; end