[[
   "commandItem"
],[
   "commandItem",
  ["keyword","proc"],
  ["text"," "],
  ["identifier","dijkstra"],
  ["text"," "],
  ["paren.lparen","{"],
  ["keyword","graph"],
  ["text"," "],
  ["identifier","origin"],
  ["paren.rparen","}"],
  ["text"," "],
  ["paren.lparen","{"]
],[
   "start",
  ["text","    "],
  ["comment","# Initialize"]
],[
   "commandItem",
  ["text","    "],
  ["keyword","dict"],
  ["text"," "],
  ["identifier","for"],
  ["text"," "],
  ["paren.lparen","{"],
  ["keyword","vertex"],
  ["text"," "],
  ["identifier","distmap"],
  ["paren.rparen","}"],
  ["text"," "],
  ["variable.instance","$graph"],
  ["text"," "],
  ["paren.lparen","{"]
],[
   "start",
  ["text","\t"],
  ["keyword","dict"],
  ["text"," "],
  ["identifier","set"],
  ["text"," "],
  ["identifier","dist"],
  ["text"," "],
  ["variable.instance","$vertex"],
  ["text"," "],
  ["identifier","Inf"]
],[
   "commandItem",
  ["text","\t"],
  ["keyword","dict"],
  ["text"," "],
  ["identifier","set"],
  ["text"," "],
  ["identifier","path"],
  ["text"," "],
  ["variable.instance","$vertex"],
  ["text"," "],
  ["paren.lparen","{"],
  ["paren.rparen","}"]
],[
   "commandItem",
  ["text","    "],
  ["paren.rparen","}"]
],[
   "start",
  ["text","    "],
  ["keyword","dict"],
  ["text"," "],
  ["identifier","set"],
  ["text"," "],
  ["identifier","dist"],
  ["text"," "],
  ["variable.instance","$origin"],
  ["text"," 0"]
],[
   "start",
  ["text","    "],
  ["keyword","dict"],
  ["text"," "],
  ["identifier","set"],
  ["text"," "],
  ["identifier","path"],
  ["text"," "],
  ["variable.instance","$origin"],
  ["text"," "],
  ["paren.lparen","["],
  ["keyword","list"],
  ["text"," "],
  ["variable.instance","$origin"],
  ["paren.rparen","]"]
],[
   "commandItem",
  ["text"," "]
],[
   "commandItem",
  ["text","    "],
  ["keyword","while"],
  ["text"," "],
  ["paren.lparen","{["],
  ["keyword","dict"],
  ["text"," "],
  ["identifier","size"],
  ["text"," "],
  ["variable.instance","$graph"],
  ["paren.rparen","]}"],
  ["text"," "],
  ["paren.lparen","{"]
],[
   "start",
  ["text","\t"],
  ["comment","# Find unhandled node with least weight"]
],[
   "start",
  ["text","\t"],
  ["keyword","set"],
  ["text"," "],
  ["identifier","d"],
  ["text"," "],
  ["identifier","Inf"]
],[
   "commandItem",
  ["text","\t"],
  ["keyword","dict"],
  ["text"," "],
  ["identifier","for"],
  ["text"," "],
  ["paren.lparen","{"],
  ["keyword","uu"],
  ["text"," "],
  ["support.function","-"],
  ["paren.rparen","}"],
  ["text"," "],
  ["variable.instance","$graph"],
  ["text"," "],
  ["paren.lparen","{"]
],[
   "commandItem",
  ["text","\t    "],
  ["keyword","if"],
  ["text"," "],
  ["paren.lparen","{"],
  ["variable.instance","$d"],
  ["text"," "],
  ["support.function",">"],
  ["text"," "],
  ["paren.lparen","["],
  ["keyword","set"],
  ["text"," "],
  ["identifier","dd"],
  ["text"," "],
  ["paren.lparen","["],
  ["keyword","dict"],
  ["text"," "],
  ["identifier","get"],
  ["text"," "],
  ["variable.instance","$dist"],
  ["text"," "],
  ["variable.instance","$uu"],
  ["paren.rparen","]]}"],
  ["text"," "],
  ["paren.lparen","{"]
],[
   "start",
  ["text","\t\t"],
  ["keyword","set"],
  ["text"," "],
  ["identifier","u"],
  ["text"," "],
  ["variable.instance","$uu"]
],[
   "start",
  ["text","\t\t"],
  ["keyword","set"],
  ["text"," "],
  ["identifier","d"],
  ["text"," "],
  ["variable.instance","$dd"]
],[
   "commandItem",
  ["text","\t    "],
  ["paren.rparen","}"]
],[
   "commandItem",
  ["text","\t"],
  ["paren.rparen","}"]
],[
   "commandItem",
  ["text"," "]
],[
   "start",
  ["text","\t"],
  ["comment","# No such node; graph must be disconnected"]
],[
   "start",
  ["text","\t"],
  ["keyword","if"],
  ["text"," "],
  ["paren.lparen","{"],
  ["variable.instance","$d"],
  ["text"," "],
  ["support.function","=="],
  ["text"," "],
  ["identifier","Inf"],
  ["paren.rparen","}"],
  ["text"," "],
  ["identifier","break"]
],[
   "commandItem",
  ["text"," "]
],[
   "commentfollow",
  ["text","\t"],
  ["comment","# Update the weights for nodes\\"]
],[
   "start",
  ["comment","\t lead to by the node we've picked"]
],[
   "commandItem",
  ["text","\t"],
  ["keyword","dict"],
  ["text"," "],
  ["identifier","for"],
  ["text"," "],
  ["paren.lparen","{"],
  ["keyword","v"],
  ["text"," "],
  ["identifier","dd"],
  ["paren.rparen","}"],
  ["text"," "],
  ["paren.lparen","["],
  ["keyword","dict"],
  ["text"," "],
  ["identifier","get"],
  ["text"," "],
  ["variable.instance","$graph"],
  ["text"," "],
  ["variable.instance","$u"],
  ["paren.rparen","]"],
  ["text"," "],
  ["paren.lparen","{"]
],[
   "commandItem",
  ["text","\t    "],
  ["keyword","if"],
  ["text"," "],
  ["paren.lparen","{["],
  ["keyword","dict"],
  ["text"," "],
  ["identifier","exists"],
  ["text"," "],
  ["variable.instance","$graph"],
  ["text"," "],
  ["variable.instance","$v"],
  ["paren.rparen","]}"],
  ["text"," "],
  ["paren.lparen","{"]
],[
   "start",
  ["text","\t\t"],
  ["keyword","set"],
  ["text"," "],
  ["identifier","alt"],
  ["text"," "],
  ["paren.lparen","["],
  ["keyword","expr"],
  ["text"," "],
  ["paren.lparen","{"],
  ["variable.instance","$d"],
  ["text"," "],
  ["support.function","+"],
  ["text"," "],
  ["variable.instance","$dd"],
  ["paren.rparen","}]"]
],[
   "commandItem",
  ["text","\t\t"],
  ["keyword","if"],
  ["text"," "],
  ["paren.lparen","{"],
  ["variable.instance","$alt"],
  ["text"," "],
  ["support.function","<"],
  ["text"," "],
  ["paren.lparen","["],
  ["keyword","dict"],
  ["text"," "],
  ["identifier","get"],
  ["text"," "],
  ["variable.instance","$dist"],
  ["text"," "],
  ["variable.instance","$v"],
  ["paren.rparen","]}"],
  ["text"," "],
  ["paren.lparen","{"]
],[
   "start",
  ["text","\t\t    "],
  ["keyword","dict"],
  ["text"," "],
  ["identifier","set"],
  ["text"," "],
  ["identifier","dist"],
  ["text"," "],
  ["variable.instance","$v"],
  ["text"," "],
  ["variable.instance","$alt"]
],[
   "start",
  ["text","\t\t    "],
  ["keyword","dict"],
  ["text"," "],
  ["identifier","set"],
  ["text"," "],
  ["identifier","path"],
  ["text"," "],
  ["variable.instance","$v"],
  ["text"," "],
  ["paren.lparen","["],
  ["keyword","list"],
  ["text"," "],
  ["support.function","{*}"],
  ["paren.lparen","["],
  ["keyword","dict"],
  ["text"," "],
  ["identifier","get"],
  ["text"," "],
  ["variable.instance","$path"],
  ["text"," "],
  ["variable.instance","$u"],
  ["paren.rparen","]"],
  ["text"," "],
  ["variable.instance","$v"],
  ["paren.rparen","]"]
],[
   "commandItem",
  ["text","\t\t"],
  ["paren.rparen","}"]
],[
   "commandItem",
  ["text","\t    "],
  ["paren.rparen","}"]
],[
   "commandItem",
  ["text","\t"],
  ["paren.rparen","}"]
],[
   "commandItem",
  ["text"," "]
],[
   "start",
  ["text","\t"],
  ["comment","# Remove chosen node from graph still to be handled"]
],[
   "start",
  ["text","\t"],
  ["keyword","dict"],
  ["text"," "],
  ["identifier","unset"],
  ["text"," "],
  ["identifier","graph"],
  ["text"," "],
  ["variable.instance","$u"]
],[
   "commandItem",
  ["text","    "],
  ["paren.rparen","}"]
],[
   "start",
  ["text","    "],
  ["keyword","return"],
  ["text"," "],
  ["paren.lparen","["],
  ["keyword","list"],
  ["text"," "],
  ["variable.instance","$dist"],
  ["text"," "],
  ["variable.instance","$path"],
  ["paren.rparen","]"]
],[
   "commandItem",
  ["paren.rparen","}"]
]]