{
    "_version": "2.0.0-alpha.3",
    "_name": "base",
    "norm":
    {"output":{
        "latex":"||{$1}||",
        "asciimath":"norm({$1})"},
     "attrs":{
	 "type":"norm",
	 "group":"functions"},
     "args":[
	 {"delete":"1"}]
    },
    
    "text":
    {"output":{
        "latex":"\\text{{$1}}",
        "asciimath":"text({$1})"},
     "attrs":{
	 "type":"text",
	 "group":"editor"},
     "args":[
	 {"mode":"text"}]
    },
    
    "sym_name":
    {"output":{
        "latex":"\\backslash\\texttt{{$1}}",
        "asciimath":"SYMBOL({$1})"},
     "attrs":{
	 "type":"symbol",
	 "group":"editor"},
     "args":[
	 {"mode":"symbol","is_bracket":"yes"}]
    },
    
    "abs":
    {"output":{
        "latex":"\\left|{$1}\\right|",
	"asciimath":"|{$1}|"},
     "keys":["|"],
     "attrs":{
	 "type":"absolutevalue",
	 "group":"functions"},
     "args":[
	 {"delete":"1","is_bracket":"yes"}]
    },
    
    "eval":
    {"output":{
        "latex":"{$1}({$2})",
	"asciimath":"{$1}({$2})"},
     "attrs":{
	 "type":"eval",
	 "group":"functions"},
     "args":[
	 {"delete":"2","name":"function"},
	 {"delete":"1","name":"argument"}]
    },
    
    "sqrt":
    {"output":{
        "latex":"\\sqrt{{$1}\\phantom{\\tiny{!}}}",
        "asciimath":"sqrt({$1})"},
     "attrs":{
	 "type":"squareroot",
	 "group":"functions"},
     "args":[
	 {"delete":"1"}]
    },
    
    "paren":
    {"output":{
        "latex":"\\left({$1}\\right)",
	"asciimath":"({$1})"},
     "keys":["("],
     "attrs":{
	 "type":"bracket",
	 "group":"functions"},
     "ast":{
	 "type":"pass"
     },
     "args":[
	 {"delete":"1","is_bracket":"yes"}]
    },
    
    "floor":
    {"output":{
        "latex":"\\lfloor {$1} \\rfloor",
	"asciimath":"|_ {$1} _|"},
     "attrs":{
	 "type":"floor",
	 "group":"functions"},
     "args":[
	 {"delete":"1"}]
    },
    
    "factorial":
    {"output":{
        "latex":"{$1}!",
	"asciimath":"({$1})!"},
     "input":1,
     "keys":["!"],
     "attrs":{
	 "type":"factorial",
	 "group":"functions"},
     "args":[
	 {"bracket":"yes","delete":"1"}]
    },
    
    "exp":
    {"output":{
        "latex":"{{$1}}^{{$2}}",
	"asciimath":"({$1})^({$2})"},
     "input":1,
     "keys":["^","shift+up"],
     "attrs":{
	 "type":"exponential",
	 "group":"functions"},
     "args":[
	 {"up":"2","bracket":"yes","delete":"1","name":"base"},
	 {"down":"1","delete":"1","name":"exponent","small":"yes"}
     ]
    },
    
    "sub":
    {"output":{
        "latex":"{{$1}}_{{$2}}",
	"asciimath":"{$1}{$2}"},
     "input":1,
     "keys":["_","shift+down"],
     "attrs":{
	 "type":"subscript",
	 "group":"functions"},
     "args":[
	 {"down":"2","bracket":"yes","delete":"1","name":"base"},
	 {"up":"1","delete":"1","name":"subscript","small":"yes"}
     ]
    },
    
    "frac":
    {"output":{
        "latex":"\\dfrac{{$1}}{{$2}}",
        "small_latex":"\\frac{{$1}}{{$2}}",
	"asciimath":"({$1})/({$2})"},
     "input":1,
     "keys":["/"],
     "attrs":{
	 "type":"fraction",
	 "group":"functions"},
     "args":[
	 {"up":"1","down":"2","name":"numerator"},
	 {"up":"1","down":"2","delete":"1","name":"denominator"}
     ]
    },
        
    "int":
    {"output":{
        "latex":"\\displaystyle\\int{{$1}}d{$2}",
        "small_latex":"\\int{{$1}}d{$2}",
	"asciimath":"int {$1} d{$2}"},
     "attrs":{
	 "type":"integral",
	 "group":"calculus"},
     "args":[
	 {"delete":"1","name":"integrand"},
	 {"delete":"1","bracket":"yes","name":"variable"}
     ]
    },
    
    "defi":
    {"output":{
        "latex":"\\displaystyle\\int_{{$1}}^{{$2}}{$3}d{$4}",
        "small_latex":"\\int_{{$1}}^{{$2}}{$3}d{$4}",
	"asciimath":"int_{{$1}}^{{$2}} {$3} d{$4}"},
     "attrs":{
	 "type":"defintegral",
	 "group":"calculus"},
     "args":[
	 {"down":"1","up":"2","small":"yes","name":"lower_limit"},
	 {"down":"1","up":"2","small":"yes","name":"upper_limit"},
	 {"down":"1","up":"2","delete":"3","name":"integrand"},
	 {"down":"1","up":"2","bracket":"yes","delete":"4","name":"variable"}
     ]
    },
    
    "deriv":
    {"output":{
        "latex":"\\displaystyle\\frac{d{$1}}{d{$2}}",
        "small_latex":"\\frac{d{$1}}{d{$2}}",
	"asciimath":"diff({$1},{$2})"},
     "attrs":{
	 "type":"derivative",
	 "group":"calculus"},
     "args":[
	 {"down":"1","up":"2","bracket":"yes","name":"function"},
	 {"down":"1","up":"2","bracket":"yes","name":"variable"}
     ]
    },
        
    "sum":
    {"output":{
        "latex":"\\displaystyle\\sum_{{$1}}^{{$2}}{$3}",
        "small_latex":"\\sum_{{$1}}^{{$2}}{$3}",
	"asciimath":"sum_{{$1}}^{{$2}} {$3}"},
     "attrs":{
	 "type":"summation",
	 "group":"functions"},
     "args":[
	 {"down":"1","up":"2","small":"yes","name":"lower_limit"},
	 {"down":"1","up":"2","small":"yes","name":"upper_limit"},
	 {"down":"1","up":"2","delete":"3","bracket":"yes","name":"summand"}
     ]
    },

    "prod":
    {"output":{
        "latex":"\\displaystyle\\prod_{{$1}}^{{$2}}{$3}",
        "small_latex":"\\prod_{{$1}}^{{$2}}{$3}",
	"asciimath":"prod_{{$1}}^{{$2}} {$3}"},
     "attrs":{
	 "type":"summation",
	 "group":"functions"},
     "args":[
	 {"down":"1","up":"2","small":"yes","name":"lower_limit"},
	 {"down":"1","up":"2","small":"yes","name":"upper_limit"},
	 {"down":"1","up":"2","delete":"3","bracket":"yes","name":"summand"}
     ]
    },
    
    "root":
    {"output":{
        "latex":"\\sqrt[{$1}]{{$2}\\phantom{\\tiny{!}}}",
	"asciimath":"nroot({$1},{$2})"},
     "attrs":{
	 "type":"root",
	 "group":"functions"},
     "args":[
	 {"down":"2","up":"1","small":"yes","delete":"1","name":"index"},
	 {"down":"2","up":"1","delete":"1","name":"radicand"}
     ]
    },

    "vec":
    {"output":{
        "latex":"\\left\\langle {$1{,}} \\right\\rangle",
	"asciimath":"vec({$1{,}})"},
     "keys":["{"],
     "attrs":{
	 "group":"array",
	 "type":"vector"}
    },

    "mat":
    {"output":{
        "latex":"\\left(\\begin{matrix} {$1{ & }{\\\\}} \\end{matrix}\\right)",
	"asciimath":"matrix({$1{,}{;}})"},
     "keys":["["],
     "attrs":{
	 "group":"array",
	 "type":"matrix"}
    },
    
    "*":
    {"output":{
        "latex":"\\cdot",
	"asciimath":"*"},
     "keys":["*"],
     "attrs":{
	 "group":"operations",
	 "type":"*"},
     "ast":{
	 "type":"operator"}
    },

    "infinity":{"output":{"latex":"\\infty",
			  "asciimath":"oo"},
		"attrs":{"group":"qwerty",
			 "type":"infinity"}
	       },
    
    "_templates":
    {
	"latex_func":{"output":{"latex":"\\{$name}\\left({$1}\\right)",
				"asciimath":" {$name}({$1})"},
		"attrs":{
		    "type":"{$name}",
		    "group":"functions"},
		"args":[
		    {"delete":"1"}
		]},
	
	"func":{"output":{"latex":"{$latex}\\left({$1}\\right)",
			  "asciimath":" {$asciimath}({$1})"},
		"attrs":{
		    "type":"{$name}",
		    "group":"functions"},
		"args":[
		    {"delete":"1"}
		]},
	
	"char":{"output":{"latex":"\\{$name}",
			   "asciimath":" {$name} "},
		 "attrs":{
		     "group":"greek",
		     "type":"{$name}"}},

	"binop":{"output":{"latex":"{$latex}",
			   "asciimath":"{$asciimath}"},
		 "keys":["{$type}"],
		 "attrs":{
		     "group":"operations",
		     "type":"{$type}"},
		 "ast":{
		     "type":"operator"}}
    },

    "functions":{
	"template":"latex_func",
	"values":["sin","cos","tan","sec","csc","cot","log","ln","arcsin","arccos","arctan","sinh","cosh","tanh"]},
    
    "greek":{
	"template":"char",
	"values":["alpha","beta","gamma","delta","epsilon","zeta","eta","theta","iota","kappa","lambda","mu","nu","xi","omicron","pi","rho","sigma","tau","upsilon","phi","chi","psi","omega","Gamma","Delta","Theta","Lambda","Xi","Pi","Sigma","Phi","Psi","Omega"]},

    "comparisons":{
	"template":"binop",
	"values":{"equal":{"latex":"=","asciimath":" = ","type":"="},
		   "leq":{"latex":"\\leq","asciimath":" <= ","type":"<="},
		   "less":{"latex":"<","asciimath":" < ","type":"<"},
		   "geq":{"latex":"\\geq","asciimath":" >= ","type":">="},
		   "greater":{"latex":">","asciimath":" > ","type":">"},
		  "neq":{"latex":"\\neq","asciimath":" != ","type":"!="}}}
}
