static void findFeatureEnd (tokenInfo *const token) { boolean isFound = isKeyword (token, KEYWORD_is); if (isFound) readToken (token); switch (token->keyword) { case KEYWORD_attribute: case KEYWORD_deferred: case KEYWORD_do: case KEYWORD_external: case KEYWORD_local: case KEYWORD_note: case KEYWORD_obsolete: case KEYWORD_once: case KEYWORD_require: { int depth = 1; while (depth > 0 && ! isType (token, TOKEN_EOF)) { switch (token->keyword) { case KEYWORD_check: case KEYWORD_debug: case KEYWORD_from: case KEYWORD_across: case KEYWORD_if: case KEYWORD_inspect: ++depth; break; case KEYWORD_local: parseLocal (token); break; case KEYWORD_end: --depth; break; default: break; } readToken (token); } break; } default: /* is this a manifest constant? */ if (isFound || isType (token, TOKEN_OPERATOR)) { if (isType (token, TOKEN_OPERATOR)) readToken (token); readToken (token); } break; } }
vector<vector<Local *> > parseLocais(vector<vector<string> > linhas) { vector<vector<Local *> > vecLinhas; vector<Local *> locais; /* */ for (unsigned linha = 0; linha < linhas.size(); linha++) { for (unsigned local = 0; local < linhas[linha].size(); local++) { locais.push_back(parseLocal(linhas[linha][local])); } vecLinhas.push_back(locais); locais.clear(); } return vecLinhas; }
static void findFeatureEnd (tokenInfo *const token) { readToken (token); switch (token->keyword) { default: if (isType (token, TOKEN_OPERATOR)) /* sign of manifest constant */ readToken (token); readToken (token); /* skip to next token after constant */ break; case KEYWORD_deferred: case KEYWORD_do: case KEYWORD_external: case KEYWORD_local: case KEYWORD_obsolete: case KEYWORD_once: case KEYWORD_require: { int depth = 1; while (depth > 0) { #ifdef TYPE_REFERENCE_TOOL if (isType (token, TOKEN_OPEN_BRACE)) { readToken (token); if (isType (token, TOKEN_IDENTIFIER)) parseType (token); } else if (isType (token, TOKEN_BANG)) { readToken (token); if (isType (token, TOKEN_IDENTIFIER)) parseType (token); if (isType (token, TOKEN_BANG)) readToken (token); } else #endif switch (token->keyword) { case KEYWORD_check: case KEYWORD_debug: case KEYWORD_from: case KEYWORD_if: case KEYWORD_inspect: ++depth; break; case KEYWORD_local: parseLocal (token); break; case KEYWORD_end: --depth; break; default: break; } readToken (token); } break; } } }
static void findFeatureEnd (tokenInfo *const token) { boolean isFound = isKeyword (token, KEYWORD_is); if (isFound) readToken (token); switch (token->keyword) { case KEYWORD_deferred: case KEYWORD_do: case KEYWORD_external: case KEYWORD_local: case KEYWORD_obsolete: case KEYWORD_once: case KEYWORD_require: { int depth = 1; while (depth > 0 && ! isType (token, TOKEN_EOF)) { #ifdef TYPE_REFERENCE_TOOL if (isType (token, TOKEN_OPEN_BRACE)) { readToken (token); if (isType (token, TOKEN_IDENTIFIER)) parseType (token); } else if (isType (token, TOKEN_BANG)) { readToken (token); if (isType (token, TOKEN_IDENTIFIER)) parseType (token); if (isType (token, TOKEN_BANG)) readToken (token); } else #endif switch (token->keyword) { case KEYWORD_check: case KEYWORD_debug: case KEYWORD_from: case KEYWORD_if: case KEYWORD_inspect: ++depth; break; case KEYWORD_local: parseLocal (token); break; case KEYWORD_end: --depth; break; default: break; } readToken (token); } break; } default: /* is this a manifest constant? */ if (isFound || isType (token, TOKEN_OPERATOR)) { if (isType (token, TOKEN_OPERATOR)) readToken (token); readToken (token); } break; } }