die("Filupload fejlede!"); } else { $data = file_get_contents($_FILES["file"]["tmp_name"]); } //Nodes and decisions $nodes_outer = "/(node|decision)[\\s]*([^\\s]*)[\\s]*{[\\s]*((([^\\s]*) = ([^;]+);[\\s]*)*)}/i"; $nodes_inner = "/([^\\s]*) = [\"\\(]?([^;]*?)[\"\\)]?;[\\s]*/i"; $state_labels = "/\"([^\"]*)\"/i"; $potential_outer = "/potential[\\s]*\\(([^\\s]+)( \\| ([^\\)]+))?\\)[\\s]*{[\\s]*data[\\s]*=([\\s]*[^}]+)}/i"; $potential_inner = "/[\\(]+([^\\)]+)[\\)]+/i"; $nodes = new Nodes(); //Parse nodes & decisions preg_match_all($nodes_outer, $data, $matches, PREG_SET_ORDER); foreach ($matches as $match) { $node = new Node($match[1], $match[2]); $nodes->addNode($node); preg_match_all($nodes_inner, $match[3], $settings, PREG_SET_ORDER); foreach ($settings as $setting) { if ($setting[1] == 'states') { preg_match_all($state_labels, $setting[2], $states, PREG_SET_ORDER); foreach ($states as $state) { $node->addState($state[1]); } break; } } } //Parse potentials preg_match_all($potential_outer, $data, $matches, PREG_SET_ORDER); foreach ($matches as $match) { $node = $nodes->findNode($match[1]);