[[
   "start",
  ["comment","# Function"]
],[
   "start",
  ["constant.language.escape","snippet"],
  ["text"," fun"]
],[
   "sn-start",
  ["text","\tfunction "],
  ["markup.list","${"],
  ["constant.numeric","1"],
  ["text","?:function_name"],
  ["markup.list","}"],
  ["text","("],
  ["markup.list","${"],
  ["constant.numeric","2"],
  ["punctuation.operator",":"],
  ["text","argument"],
  ["markup.list","}"],
  ["text",") {"]
],[
   "sn-start",
  ["text","\t\t"],
  ["markup.list","${"],
  ["constant.numeric","3"],
  ["punctuation.operator",":"],
  ["text","// body..."],
  ["markup.list","}"]
],[
   "sn-start",
  ["text","\t}"]
],[
   "start",
  ["comment","# Anonymous Function"]
],[
   "start",
  ["constant.language.escape","regex "],
  ["keyword","/"],
  ["text","((=)\\s*|(:)\\s*|(\\()|\\b)"],
  ["keyword","/"],
  ["text","f"],
  ["keyword","/"],
  ["text","(\\))?"],
  ["keyword","/"]
],[
   "start",
  ["constant.language.escape","name"],
  ["text"," f"]
],[
   "sn-start",
  ["text","\tfunction"],
  ["markup.list","${"],
  ["variable","M1"],
  ["text","?: "],
  ["markup.list","${"],
  ["constant.numeric","1"],
  ["punctuation.operator",":"],
  ["text","functionName"],
  ["markup.list","}}"],
  ["text","("],
  ["variable","$2"],
  ["text",") {"]
],[
   "sn-start",
  ["text","\t\t"],
  ["markup.list","${"],
  ["constant.numeric","0"],
  ["punctuation.operator",":"],
  ["keyword","$TM_SELECTED_TEXT"],
  ["markup.list","}"]
],[
   "sn-start",
  ["text","\t}"],
  ["markup.list","${"],
  ["variable","M2"],
  ["text","?;"],
  ["markup.list","}${"],
  ["variable","M3"],
  ["text","?,"],
  ["markup.list","}${"],
  ["variable","M4"],
  ["text","?)"],
  ["markup.list","}"]
],[
   "start",
  ["comment","# Immediate function"]
],[
   "start",
  ["constant.language.escape","trigger"],
  ["text"," \\(?f\\("]
],[
   "start",
  ["constant.language.escape","endTrigger"],
  ["text"," \\)?"]
],[
   "start",
  ["constant.language.escape","snippet"],
  ["text"," f("]
],[
   "sn-start",
  ["text","\t(function("],
  ["markup.list","${"],
  ["constant.numeric","1"],
  ["markup.list","}"],
  ["text",") {"]
],[
   "sn-start",
  ["text","\t\t"],
  ["markup.list","${"],
  ["constant.numeric","0"],
  ["punctuation.operator",":"],
  ["markup.list","${"],
  ["keyword","TM_SELECTED_TEXT"],
  ["punctuation.operator",":"],
  ["text","/* code */"],
  ["markup.list","}}"]
],[
   "sn-start",
  ["text","\t}("],
  ["markup.list","${"],
  ["constant.numeric","1"],
  ["markup.list","}"],
  ["text","));"]
],[
   "start",
  ["comment","# if"]
],[
   "start",
  ["constant.language.escape","snippet"],
  ["text"," if"]
],[
   "sn-start",
  ["text","\tif ("],
  ["markup.list","${"],
  ["constant.numeric","1"],
  ["punctuation.operator",":"],
  ["text","true"],
  ["markup.list","}"],
  ["text",") {"]
],[
   "sn-start",
  ["text","\t\t"],
  ["markup.list","${"],
  ["constant.numeric","0"],
  ["markup.list","}"]
],[
   "sn-start",
  ["text","\t}"]
],[
   "sn-start",
  ["text","\t"]
],[
   "sn-start",
  ["text","\t"]
],[
   "sn-start",
  ["text","\t"]
]]