parse.c
static void ParseDoWhile(ParseContext *c)
{
    ParseTreeNode *node = NewParseTreeNode(c, NodeTypeDoWhileStatement);
    node->u.loopStatement.test = ParseExpr(c);
    AddNodeToList(c, &c->bptr->pNextStatement, node);
    PushBlock(c, BLOCK_DO, node);
    c->bptr->pNextStatement = &node->u.loopStatement.bodyStatements;
    FRequire(c, T_EOL);
}
/* ParseDoWhile - parse the 'DO WHILE' statement */
parse the 'DO WHILE' statement
parse the ' DO WHILE ' statement
static void ParseDoWhile(ParseContext *c)
{
    ParseTreeNode *node = NewParseTreeNode(c, NodeTypeDoWhileStatement);
    node->u.loopStatement.test = ParseExpr(c);
    AddNodeToList(c, &c->bptr->pNextStatement, node);
    PushBlock(c, BLOCK_DO, node);
    c->bptr->pNextStatement = &node->u.loopStatement.bodyStatements;
    FRequire(c, T_EOL);
}
static void ParseDoWhile ( ParseContext * c ) { ParseTreeNode * node = NewParseTreeNode ( c , NodeTypeDoWhileStatement ) ; node -> u . loopStatement . test = ParseExpr ( c ) ; AddNodeToList ( c , & c -> bptr -> pNextStatement , node ) ; PushBlock ( c , BLOCK_DO , node ) ; c -> bptr -> pNextStatement = & node -> u . loopStatement . bodyStatements ; FRequire ( c , T_EOL ) ; }
ParseDoWhile - parse the 'DO WHILE' statement
ParseDoWhile - parse the ' DO WHILE ' statement