%%
%% This is file `coolstr.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% coolstr.dtx  (with options: `package')
%% 
%% This is a generated file
%% 
%% This file may be distributed and/or modified under the
%% conditions of the Limited General Product License
%% 
\NeedsTeXFormat{LaTeX2e}[1999/12/01]
\ProvidesPackage{coolstr}
 [2006/09/17 v1.0 COntent Oriented LaTeX Strings]
\RequirePackage{ifthen}
\RequirePackage{amsmath}
\RequirePackage{amssymb}
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
\newcounter{COOL@strlen}%
\newcommand{\COOL@strEnd}{\%\%\%}
\newcommand{\COOL@intEnd}{\%@\%@\%@}
\newcommand{\setstrEnd}[1]{\renewcommand{\COOL@strEnd}{#1}}
\newcounter{COOL@strpointer}
\def\COOL@strgobble[#1]#2#3{%
\ifthenelse{\equal{#3}{\COOL@strEnd}}
{%
\ifthenelse{\value{COOL@strpointer}=#1}
{%
#2
}%
{%
}%
}%
{%
\ifthenelse{\value{COOL@strpointer}=#1}
{%
#2
}%
{%
}%
\stepcounter{COOL@strpointer}%
\COOL@strgobble[#1]#3
}%
}
\newcommand{\strchar}[2]{%
\setcounter{COOL@strpointer}{1}%
\COOL@strgobble[#2]#1\COOL@strEnd%
}
\newboolean{COOL@firstdecimalfound}
\newboolean{COOL@seconddecimalfound}
\newboolean{COOL@efound}
\newboolean{COOL@digitfound}

\def\COOL@numericgobbler#1#2{%
\ifthenelse{\equal{#2}{\COOL@strEnd}}%
{%
\ifthenelse{`#1 < `0 \OR `#1 > `9}%
{%
Not Numeric%
}%
{%
Is Numeric%
}%
}%
{%
\ifthenelse{ `#1 < `0 \OR `#1 > `9 }%
{%
\ifthenelse{ `#1 = `. }%
{%
\ifthenelse{ \boolean{COOL@seconddecimalfound} }%
{%
Not numeric%
}%
{%
\ifthenelse{ \boolean{COOL@firstdecimalfound} }%
{%
\ifthenelse{ \boolean{COOL@efound} }%
{%
\setboolean{COOL@seconddecimalfound}{true}%
\COOL@numericgobbler#2%
}%
{%
Not numeric%
}%
}%
{%
\setboolean{COOL@firstdecimalfound}{true}%
\COOL@numericgobbler#2%
}%
}%
}%
{%
\ifthenelse{ \(`#1 = `E\) \OR \(`#1 = `e\) }%
{%
\ifthenelse{ \boolean{COOL@efound} \OR \NOT \boolean{COOL@digitfound} }%
{%
Not numeric%
}%
{%
\setboolean{COOL@efound}{true}%
\COOL@numericgobbler#2%
}%
}%
{%
Not Numeric
}%
}%
}%
{%
\setboolean{COOL@digitfound}{true}%
\COOL@numericgobbler#2%
}%
}%
}
\newcommand{\isnumeric}[1]{%
\setboolean{COOL@firstdecimalfound}{false}%
\setboolean{COOL@seconddecimalfound}{false}%
\setboolean{COOL@efound}{false}%
\setboolean{COOL@digitfound}{false}%
\COOL@numericgobbler#1\COOL@strEnd%
}
\let\COOL@strStop=\relax
\newboolean{COOL@isint}
\def\COOL@intgobbler#1#2\COOL@strEnd{%
\ifcat#11
\ifthenelse{\equal{#2}{\COOL@strStop}}%
{%
\ifthenelse{`#1 < `0 \OR `#1 > `9}%
{%
\setboolean{COOL@isint}{false}%
}%
{%
\setboolean{COOL@isint}{true}%
}%
}%
{%
\ifthenelse{ `#1 < `0 \OR `#1 > `9 }%
{%
\setboolean{COOL@isint}{false}%
}%
{%
\setboolean{COOL@digitfound}{true}%
\COOL@intgobbler#2\COOL@strEnd%
}%
}%
\else
\setboolean{COOL@isint}{false}%
\fi
}
\newcommand{\isint}[1]{\COOL@intgobbler#1\COOL@strStop\COOL@strEnd}
\endinput
%%
%% End of file `coolstr.sty'.
