diff --git a/src/io/io_packageparser.js b/src/io/io_packageparser.js index 72ed84d..8dd8eb0 100644 --- a/src/io/io_packageparser.js +++ b/src/io/io_packageparser.js @@ -149,20 +149,29 @@ IO.PackageParser = new (function() { } else if (import_path != undefined) { if (path.extname(entry) == ".py" && path.basename(entry) != "__init__.py") { IO.Filesystem.readFile(entry, (content) => { - var imports = entry.replace(import_path+"/", "").replace(/.py$/i, "").replace(/[\/]/g, "."); - IO.StateParser.parseState(content, imports, state_def => { - if (state_def != undefined) { - state_def.setFilePath(entry); - if (WS.Statelib.getFromLib(state_def.getStateType())) { - WS.Statelib.updateDef(state_def); - } else { - WS.Statelib.addToLib(state_def); + try { + var imports = entry.replace(import_path+"/", "").replace(/.py$/i, "").replace(/[\/]/g, "."); + IO.StateParser.parseState(content, imports, state_def => { + try { + if (state_def != undefined) { + state_def.setFilePath(entry); + if (WS.Statelib.getFromLib(state_def.getStateType())) { + WS.Statelib.updateDef(state_def); + } else { + WS.Statelib.addToLib(state_def); + } + state_defs.push(state_def); + watchStateFolder(folder, import_path); + } + } catch (error) { + console.error(error); } - state_defs.push(state_def); - watchStateFolder(folder, import_path); - } + processEntry(idx + 1); + }); + } catch (error) { + console.error(error); processEntry(idx + 1); - }); + } }); } else { processEntry(idx + 1); diff --git a/src/io/io_stateparser.js b/src/io/io_stateparser.js index 20b3ad3..8f18c1d 100644 --- a/src/io/io_stateparser.js +++ b/src/io/io_stateparser.js @@ -289,7 +289,7 @@ for data in iter(sys.stdin.readline, ""): if (last_argument != undefined) argument_doc.push(last_argument); var arg_split = l.match(/^(--|>#|#>)\s+([^\s]+)\s+([^\s]+)\s+(.+)$/); if (arg_split == null || arg_split.length < 5) { - T.logWarn('Entry in ' + state_class + ' does not fit documentation format: ' + l); + T.logWarn('Entry does not fit documentation format: ' + l); } else { last_argument = { symbol: arg_split[1], @@ -302,7 +302,7 @@ for data in iter(sys.stdin.readline, ""): if (last_argument != undefined) argument_doc.push(last_argument); var arg_split = l.match(/^(<=)\s+([^\s]+)\s+(.+)$/); if (arg_split == null || arg_split.length < 4) { - T.logWarn('Entry in ' + state_class + ' does not fit documentation format: ' + l); + T.logWarn('Entry does not fit documentation format: ' + l); } else { last_argument = { symbol: arg_split[1],