Сразу скажу, реализация на Node.js
Итак, если цикл While в нём switch. Есть условие в switch, при котором нужно выйти из While. Break, конечно выходит из switch. С метками не помогает, насколько я понял, прыжок вперед невозможен.
Рассматриваю реализацию через throw
CODE (javascript):
скопировать код в буфер обмена
скопировать код в буфер обмена
- function compile(file) {
- try{
- JQL = NewJQL(file);
- while (JQL.next()!==false) {
- if (JQL.is_line()) {
- switch (true)
- {
- case (JQL.test(/^\s*\/\//)):
- debug ('comment detect:' + JQL.__line);
- JQL.pushblank();
- break;
- case (JQL.test(/^\s+/)):
- debug('Column detect: ' + JQL.__line);
- //JQL.push(JQL.getblank(), true);
- process_column();
- break;
- case(JQL.is_endtable()):
- jql_close();
- //NO break!! This lines must be run for two conditions!!!
- case(JQL.test(/^[a-zA-Z]/)):
- debug('Begin table detect: '.bold + JQL.table().bold);
- jql_create();
- JQL.push(' id int (11) unsigned NOT NULL AUTO_INCRENENT,');
- }
- }
- }
- }
- catch(e)
- {
- JQL.push('// ' + e);
- console.log(e);
- }
- finally {
- jql_close();
- savedata(file);
- }
- }