Subject: 24.0.50; Calc:Error in Parser of Syntax Tables
From: Andreas Politz <[email-masked]>
To: [email-masked]
Date: Fri, 17 Sep 2010 22:14:02 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

There is something wrong with the Parser of Calcs User Syntax Tables.
The Example given is from (info "(calc) Advanced Syntax Patterns"), so
it should work, but gives an error "Blank tokens are not allowed",
originating in the function `calc-fix-token-name' in calc-prog.el .

Removing the last cond-part in this function is a workaround.

emacs -Q
M-x calc RET
ZS
foo ( # { , # , # }? ) := bar(#1,#2)
C-c C-c

Yours,
A. Politz

In GNU Emacs 24.0.50.2 (x86_64-unknown-linux-gnu, GTK+ Version 2.20.1)
 of 2010-06-13 on raven
Windowing system distributor `The X.Org Foundation', version 11.0.10707000
Important settings:
  value of $LC_ALL: C
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Emacs-Lisp

Minor modes in effect:
  server-mode: t
  easy-repeat-mode: t
  eldoc-mode: t
  shell-dirtrack-mode: t
  recentf-mode: t
  ido-hacks-mode: t
  window-numbering-mode: t
  show-paren-mode: t
  ido-everywhere: t
  global-hi-lock-mode: t
  hi-lock-mode: t
  display-time-mode: t
  savehist-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
<return> C-n C-n C-n M-f M-f M-f M-f C-h C-d M-f M-f 
M-f C-h C-d C-e C-n M-b M-b M-b M-b C-h C-h M-f M-f 
M-f C-d C-h C-e C-x C-e C-x b <return> C-x b <return> 
C-x b C-s <return> ) M-b M-b C-b C-x b <return> C-x 
b <return> C-d C-d n i l C-e M-b M-b M-d 0 C-f C-f 
C-f C-h 4 C-e C-c C-c [ SPC C-s : C-f C-f C-f C-f C-f 
C-f C-f C-f ] SPC C-c C-c ' [ SPC " f i l e : / / f 
o o . o d s " SPC s h e e t 1 . A 1 : . B 2 SPC ] <return> 
' M-p C-g Z S M-f M-b p <backspace> a p p l y ( M-f 
, a p p e n d C-M-f ) C-c C-c ' M-p <return> Z S M-f 
C-/ C-x k <return> Z S C-M-f C-b C-b C-h C-h M-b C-n 
C-n M-m M-f C-r { C-d C-a C-f C-f C-f C-f " # " SPC 
M-f M-h C-d C-M-f M-d C-e C-h C-c C-c q C-c C-c C-M-x 
q C-c C-c C-d \ C-h M-: ( p u M-p M-p M-p M-p M-p M-p 
M-p M-f M-f M-f M-f M-f M-f M-b C-b C-b C-b C-b C-h 
# <return> M-: 9 <backspace> ( c a l c - e M-p M-p 
M-p M-n M-f C-f C-f C-f C-f C-f C-d # <return> M-: 
M-p M-f M-f C-f C-f C-f C-f C-f SPC C-f SPC <return> 
% C-c C-c ' M-p C-f C-M-f % C-d <return> ' M-p C-g 
M-1 C-M-a C-M-a C-M-e C-M-e C-M-a C-M-l C-M-l M-x r 
p o r <backspace> <backspace> <backspace> r <backspace> 
e p o r t M-p <return>

Recent messages:
Back to top level.
Working...
cond: Token '#' is reserved
(("#" * 1 1))
"2"
(2 "Syntax error")
Working... [2 times]
(Cancelled)
Quit
Mark set

Load-path shadows:
/home/politza/.emacs.d/minor-modes/ido hides /home/politza/src/emacs23/lisp/ido

Features:
(shadow emacsbug calc-math calc-cplx calc-bin nxml-uchnm rng-xsd
xsd-regexp rng-cmpct rng-nxml rng-valid rng-loc rng-uri rng-parse
nxml-parse rng-match rng-dt rng-util rng-pttrn nxml-ns nxml-mode
nxml-outln nxml-rap nxml-util nxml-glyph nxml-enc xmltok arc-mode
archive-mode calc-embed calc-mode fortran cus-edit gnus-fun bbdb-gui
flow-fill qp reveal fix-umlaut org-wl org-w3m org-vm org-rmail org-mhe
org-mew org-irc org-jsinfo org-infojs org-html org-exp org-exp-blocks
org-agenda org-info org-gnus org-docview org-bibtex org-bbdb newcomment
ielm etags cc-mode cc-fonts cc-menus cc-cmds cc-styles cc-align
cc-engine cc-vars cc-defs w3m-search macroexp calc-rewr browse-kill-ring
calc-trail calc-incom calc-undo iso-transl quail gnus-cite ansi-color
gnus-async gnus-bcklg gnus-kill gnus-ml parse-time nnfolder nnmbox utf-7
utf7 netrc starttls nnimap imap nndraft nnmh bbdb-gnus bbdb-snarf
mail-extr bbdb-com warnings nnnil gnus-agent gnus-srvr gnus-score
score-mode nnvirtual gnus-msg gnus-art mm-uu mml2015 epg-config mm-view
smime dig mailcap nntp gnus-cache gnus-sum nnoo gnus-group gnus-undo
nnmail mail-source gnus-start gnus-spec gnus-win w3m-cookie sort
mule-util w3m-form w3m-bookmark w3m-tabmenu w3m-session browse-url w3m
doc-view jka-compr image-mode w3m-hist w3m-fb w3m-ems w3m-ccl ccl
w3m-favicon w3m-image w3m-proc w3m-util debug cl-specs edebug find-dired
autorevert ffap thingatpt vc-dispatcher vc-svn bookmark pp reposition
vc-git find-func calc-stuff calc-frac apropos calc-poly calc-units
calc-alg calcalg2 calc-forms calc-vec calc-arith calc-lang calccomp
calc-map calc-aent help-mode view multi-isearch calc-help calc-yank
calc-prog calc-ext calc-misc calc-menu calc calc-loaddefs calc-macs
linux tex-site auto-loads info color-theme disp-table closure
minibuffer-regexp derived pascal org byte-opt bytecomp byte-compile
org-footnote org-src org-list org-faces org-compat org-entities org-macs
imenu ispell gnus-int gnus-range message rfc822 mml mml-sec mm-decode
mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums
mailabbrev gmm-utils mailheader gnus gnus-ems nnheader mail-utils
mm-util mail-prsvr avoid server easy-repeat repeat eldoc ibuf-macs
ibuf-ext ibuffer dired-x dired-aux dired dired-details tramp-imap assoc
tramp-gw tramp-fish tramp-smb tramp-cache tramp-ftp tramp-cmds tramp
auth-source gnus-util shell password-cache format-spec tramp-compat
trampver time-date recentf tree-widget wid-edit easymenu generic
ido-hacks hippie-exp my-anything anything kbd-helper foldout noutline
outline edmacro kmacro org-install bbdb-autoloads bbdb timezone
persistent-scratch-buffer window-numbering easy-mmode cl cl-19 uniquify
winner paren ido grep compile comint regexp-opt ring hi-lock time
cus-start cus-load saveplace savehist advice help-fns advice-preload
tooltip ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar
dnd fontset image fringe lisp-mode register page menu-bar rfn-eshadow
timer select scroll-bar mldrag mouse jit-lock font-lock syntax facemenu
font-core frame cham georgian utf-8-lang misc-lang vietnamese tibetan
thai tai-viet lao korean japanese hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese case-table epa-hook
jka-cmpr-hook help simple abbrev loaddefs button minibuffer faces
cus-face files text-properties overlay md5 base64 format env code-pages
mule custom widget hashtable-print-readable backquote
make-network-process dbusbind dynamic-setting font-render-setting gtk
x-toolkit x multi-tty emacs)