view etc/srecode/wisent.srt @ 106482:806e9f7990d8

* minibuffer.el (completion-at-point-functions): New var. (completion-at-point): New command. * indent.el (indent-for-tab-command): Handle the new `complete' behavior. * progmodes/python.el (python-mode-map): Use completion-at-point. (python-completion-at-point): Rename from python-partial-symbol and adjust for use in completion-at-point-functions. (python-mode): Setup completion-at-point for Python completion. * emacs-lisp/lisp.el (lisp-completion-at-point): New function extracted from lisp-complete-symbol. (lisp-complete-symbol): Use it. * emacs-lisp/lisp-mode.el (emacs-lisp-mode): Use define-derived-mode, setup completion-at-point for Elisp completion. (emacs-lisp-mode-map, lisp-interaction-mode-map): Use completion-at-point. * ielm.el (ielm-map): Use completion-at-point. (inferior-emacs-lisp-mode): Setup completion-at-point for Elisp completion. * progmodes/sym-comp.el: Move to... * obsolete/sym-comp.el: Move from progmodes.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Mon, 07 Dec 2009 20:06:26 +0000
parents c6cabc736460
children 1d1d5d9bd884
line wrap: on
line source

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

;; Copyright (C) 2007, 2008, 2009 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