Merge from emacs-23; up to 2010-05-26T14:19:15Z!monnier@iro.umontreal.ca.
[bpt/emacs.git] / etc / srecode / wisent.srt
CommitLineData
c05676c5
CY
1;; wisent.srt --- SRecode templates for Emacs/WISENT grammar files.
2
73b0cd50 3;; Copyright (C) 2007-2011 Free Software Foundation, Inc.
c05676c5
CY
4
5;; Author: Eric M. Ludlam <eric@siege-engine.com>
6
7;; This file is part of GNU Emacs.
8
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.
13
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.
18
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/>.
21
22set mode "wisent-grammar-mode"
23set comment_start ";;"
24set comment_prefix ";;"
25set comment_end ""
26
27context file
28
29template empty :file :user :time
30"Insert a skeleton for a grammar file."
31----
32{{>:filecomment}}
33
34;;; Commentary:
35;;
36;; Parser for {{?TARGETMODE}} mode
37
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
44
45%start goal
46
47;;; KEYWORDS
48%type <keyword>
49
50%%
51
52goal
53 : {{^}}
54 ;
55
56%%
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
63
64 semantic-lex-default-action
65 )
66
67;; {{FILENAME}} ends here
68----
69
70context declaration
71
72template function
73----
74{{?NAME}}
75 : {{^}}
76 ;
77----
78bind "f"
79
80template keyword
81----
82%keyword {{?NAME:upcase}} "{{NAME:downcase}}"
83%put {{NAME:upcase}} summary "{{NAME}} {{^}}"
84----
85bind "k"
86
87template token
88----
89%type <{{?LEXTOKEN}}>
90%token <{{LEXTOKEN}}> {{LEXTOKEN}}
91----
92bind "t"
93
68972a4f 94;; end