mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
' Comments-block
'
' The general purpose of schema is to map shortcuts to shortcuttees.
' Readme's "General rules how to use sml." should be read first.
'
' schema comprises following groups:
'
'    Comments-block
'   
'    CRLF CRLF line which is VITAL TO PUT
'
'    sml-header (optional)
'    
'    S T A T E   L I S T    
'
'    \\shortcuts
'
'    \\taggroup  
'
'    \\tagcuts
'
'
'
' pairs of taggroup, tagcuts can be met unlimited number of times in schema
' all groups must be separated by empty lines
'
' Comments block
'  has no effect on schema,
'  must be terminated by double-empty line: CRLF CRLF,
'  therefore, no empty line must be inside this block.
'  
' S T A T E   L I S T   explanation.
' FIRST COLUMN contains tags (or abbreviation) as it will be printed to output text.
' Low cases of this tokens also used to denote states.
' There are at least two states which do not correspond any of html element:
'
' #common and
' #start
' At the beginning of source text parsing, compiler is in state 
' #start.
' Shortcut's context" can be specified as "#common". 
' This means "in any state" == "in scope of any html-element."
'
' The first column also has two important functions.
'  
' 1. tokens which are in upper case denote tagable tags.
' 2. Underscore at the end of token denotes extendable element.
'
' SECOND COLUMN column used to give special status to state. Psee \please see\ comments.
' APOSTROPHE OR SINGLE COMMA allow rest-of-line comment.
'
' STATE LIST is a place where long shortcuts can be defined also.
' Long shortcuts have a syntax \^name value
' where "name" is shortcut itself. "value" is a replacee.
' value can have a form of string " one/multiline text "
'
' IMPORTANT drawback of tihs sml-version:
' to keep long shortcuts enabled, line
' ^ #common ^
' must not be deleted from \\shortcuts block;
'
' GROUP \\shortcuts must follow "STATES LIST".
' This group sets shortcuts themselves: their controls, context, and shortcuttee.
'
' GROUPS \\taggroup and \\tagcuts
'
' \\tagcuts group sets parcuts
' Column syntax is: tagcut==parcut [  ,replacee==parameter, partype [ ,nextelement-in-elements-tree]]
'    Partype defines what next characters to take from source afer parcut:
'             #          - take whole number;
'             1,2,3, ... - how many consequent chars to take .. 
'             #space     - take upto first space
'             "          - take upto first double quotes including this quotes.
'    This allows to increase functionality if to modify block PARTYPE in parser.
'    Nextelement allows to omit escaper in the often-following tag, like for tag <tr> after <table>.
'
' This schema does not shortcut most of java-script events inside the tag.
'
' ef Comments block
'
mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm

\\short-ml
escaper=\
escapee=.
indent=  
\\end of header

S T A T E S   L I S T 
KEYE_              'escape tag for "tag extentions"; not used yet; 
HTML_              ' _ means "extendable html element";
HEAD_              'comments in \\states list must start with apostrophe
title_             'low case: no tag subelements == "tagable";
'comments
BODY_			
p
pre_
hr
br
A_
TABLE_  m    'm means to print <!element-level> comment
TR_
TD_
APPLET_
BASE
DIV_
EMBED_
IMG
MAP
FONT_
b_
FORM_
INPUT
TEXTAREA_
SELECT_
OPTION_
AREA
sub_
sup_	
SCRIPT_ 	foreign  
%_		foreign  halftag       'order has no matter: "halftag foreign" will work;
?_      	foreign  halftag       
^m              SML
^s              <a href="schema.txt">schema</a>
^t              &#9;
^tt             &#9;&#9;
^4              &nbsp;&nbsp;&nbsp;&nbsp;
^2              &nbsp;&nbsp; 
&#60;           a 
&#62;           a         
&#38;           a 
&nbsp;          a                      'this is an abbreviation
#common				       
#start                                 'initial state before reading a source


\\shortcuts; column syntax: control, state,  element or abbreviation which is used in shortcuttee
h     #start            html
h     html              head	
t     head              title
b     html              body
k     #common           keye
h     #common           hr
r     #common           tr
d     #common           td
b     #common           b
p     #common           p
a     #common           a
_     #common           br
t     #common           table
f     #common           font
g     #common           img
o     #common           form
i     #common           input
x     #common           textarea
s     #common           select
c     #common           option
w     #common           pre
v     #common           div
-     #common           &nbsp;
<     #common           &#60;
>     #common           &#62; 
&     #common           &#38;
l     #common           script
%     #common           %
?     #common           ?
[     #common           sub
]     #common           sup
^     #common           ^

\\taggroup  'one word \\taggroup is required in first line.
KEYE

\\tagcuts


\\taggroup
A

\\tagcuts:  column syntax: tagcut==parcut [  ,replacee==parameter, partype [ ,nextelement-in-elements-tree]]
r  href="               "
a  href="http://        "
n  name="               "
#  href="#              "
t  target="             "
m  href="mailto:        "


\\taggroup
TABLE
TR
TD

\\tagcuts:  column syntax: tagcut==parcut [  ,replacee==parameter, partype [ ,nextelement-in-elements-tree]]
r       rowspan=                #		
c       colspan=                #		
vt      valign=top              ,		
vm      valign=middle           ,       ,
vb      valign=bottom           ,       ,
al      align=left
ac      align=center
ar      align=right
#       bgcolor=#               6       ,
w       width=                  #       ,
h       height=                 #       ,
p       cellpadding=            #
s       cellspacing=            #

\\taggroup
TABLE

\\tagcuts
b       border=         #       ,
R       ,               ,       tr


\\taggroup
TR

\\tagcuts
D     ,			,           TD


\\taggroup
TD

\\tagcuts
nw      nowrap          ,
F       ,               ,       font
B       ,               ,       bold
D       ,               ,       td	


\\taggroup
INPUT

\\tagcuts
b `type=button name="`   	"
h `type=hidden name="`   	"
p `type=password name="` 	"
r `type=radio name="rdb`	"
c `type=checkbox name="`        "
u `type=submit name="`   	"
t `type=text name="`     	"
f `type=file name="`		"
n  name="			"
v   value="            	   	"
s   size=                       #
m   maxlength=                  #
oc  onClick="                   "
om  onMove="                    "


\\taggroup
FORM

\\tagcuts
a action="	    	"
p method=post   	,
g method=get    	,
n name="         	"	



\\taggroup
SELECT

\\tagcuts
n name="  	"
s size=	     	#
m multiple
f onFocus="  	"


\\taggroup
OPTION

\\tagcuts
v value="    	"
s selected 


\\taggroup
TEXTAREA

\\tagcuts
r rows=		#
c cols=		#
n name="        "
o wrap=off      
v wrap=virtual
p wrap=physical




\\taggroup
BODY

\\tagcuts
t text=#                6		
g target=               #space     
G target="              "
w width=#               #
# bgcolor=#             6
l link=#                6
v vlink=#               6
a alink=#               6
P ,                     ,             p





\\taggroup
FONT

\\tagcuts
f     face=  		#space     
#     color=#		6
s     size=			#
a     face=arial
t     face=times
v     face=veranda,helvetica,arial
l     face="lucida,verdana,helvetica,arial"
h     face='tahoma,verdana,arial,helvetica,sans-serif'
c     face="courier"
B     ,			,	b


\\taggroup
BASE

\\tagcuts
t     target=	#space


\\taggroup
DIV

\\tagcuts
ac    align=center
al    align=left
ar    align=right

\\taggroup
EMBED

\\tagcuts
s     src="		"
h     height=		#
w     width=		#
u     units="		"
p     pluginspage="	"

\\taggroup
AREA

\\tagcuts
s  shape=
-n  name="	"
n   name="are   "
c   coords="	"
h   href="	"
t   target="	"
ot  onMouseOut="	"
ov  onMouseOver="	"


\\taggroup
IMG

\\tagcuts
r	src="		"
a	src="http://	"


\\taggroup
HTML

\\tagcuts
H     ,			,           HEAD

\\taggroup
HEAD

\\tagcuts
T     ,			,           TITLE


\\taggroup
SCRIPT

\\tagcuts
j     language="JavaScript"
b     language="VBScript"