public PythonAst ParseInteractiveCode(out ScriptCodeParseResult properties) {
bool parsingMultiLineCmpdStmt;
bool isEmptyStmt = false;
properties = ScriptCodeParseResult.Complete;
_globalParent = new PythonAst(false, _languageFeatures, true, _context);
StartParsing();
Statement ret = InternalParseInteractiveInput(out parsingMultiLineCmpdStmt, out isEmptyStmt);
if (_errorCode == 0) {
if (isEmptyStmt) {
properties = ScriptCodeParseResult.Empty;
} else if (parsingMultiLineCmpdStmt) {
properties = ScriptCodeParseResult.IncompleteStatement;
}
if (isEmptyStmt) {
return null;
}
return FinishParsing(ret);
} else {
if ((_errorCode & ErrorCodes.IncompleteMask) != 0) {
if ((_errorCode & ErrorCodes.IncompleteToken) != 0) {
properties = ScriptCodeParseResult.IncompleteToken;
return null;
}
if ((_errorCode & ErrorCodes.IncompleteStatement) != 0) {
if (parsingMultiLineCmpdStmt) {
properties = ScriptCodeParseResult.IncompleteStatement;
} else {
properties = ScriptCodeParseResult.IncompleteToken;
}
return null;
}
}
properties = ScriptCodeParseResult.Invalid;
return null;
}
}