diff --git a/ui2abc/libarkts/playground/src/playground.cc b/ui2abc/libarkts/playground/src/playground.cc index bf613acfedb244519a6d0b11a242d40c468e6a98..bb968c255603efc4b43430ad9090d7f3984a1615 100644 --- a/ui2abc/libarkts/playground/src/playground.cc +++ b/ui2abc/libarkts/playground/src/playground.cc @@ -44,10 +44,16 @@ es2panda_Impl *GetImpl() { return impl; } -static const char* source = -"export class XXX {}" +static const char* source = R"( +interface I { + readonly p: number +} + +class C implements I { + readonly p: number = 8.0 +} +)" ; -static es2panda_AstNode* newStatements[1]; int main() { impl = GetImpl(); @@ -70,49 +76,17 @@ int main() { if(GetImpl()->ContextState(context) == ES2PANDA_STATE_ERROR) { std::cout << "PROCEED TO PARSE ERROR" << std::endl; - std::cout << GetImpl()->ContextErrorMessage(context) << std::endl; + std::cout << GetImpl()->GetAllErrorMessages(context) << std::endl; } else { std::cout << "PROCEED TO PARSE SUCCESS" << std::endl; } - auto ast = GetImpl()->ProgramAst(context, GetImpl()->ContextProgram(context)); - - std::cout << GetImpl()->AstNodeDumpEtsSrcConst(context, ast) << std::endl; - - std::size_t count = 0; - auto statements = impl->BlockStatementStatements(context, ast, &count); - auto oldClass = statements[0]; - auto oldDef = GetImpl()->ClassDeclarationDefinition(context, oldClass); - - std::cout << "statement count: " << count << std::endl; - - auto *identifier = impl->CreateIdentifier1(context, (char *)"XXX"); - auto *newDef = impl->CreateClassDefinition1( - context, - // oldDef, - identifier, nullptr, 0, Es2pandaClassDefinitionModifiers::CLASS_DEFINITION_MODIFIERS_CLASS_DECL, - Es2pandaModifierFlags::MODIFIER_FLAGS_DECLARE - ); - auto *newClazz = impl->CreateClassDeclaration(context, newDef); - newStatements[0] = newClazz; - - impl->BlockStatementSetStatements(context, ast, newStatements, 1); - impl->AstNodeSetParent(context, newDef, newClazz); - impl->AstNodeSetParent(context, identifier, newDef); - - impl->BlockStatementSetStatements(context, ast, newStatements, 1); - - (void)impl->BlockStatementStatements(context, ast, &count); - std::cout << "new statement count: " << count << std::endl; - - std::cout << GetImpl()->AstNodeDumpEtsSrcConst(context, ast) << std::endl; - GetImpl()->ProceedToState(context, ES2PANDA_STATE_BOUND); if(GetImpl()->ContextState(context) == ES2PANDA_STATE_ERROR) { std::cout << "PROCEED TO BOUND ERROR" << std::endl; - std::cout << GetImpl()->ContextErrorMessage(context) << std::endl; + std::cout << GetImpl()->GetAllErrorMessages(context) << std::endl; } else { std::cout << "PROCEED TO BOUND SUCCESS" << std::endl; @@ -122,17 +96,27 @@ int main() { if(GetImpl()->ContextState(context) == ES2PANDA_STATE_ERROR) { std::cout << "PROCEED TO CHECKED ERROR" << std::endl; - std::cout << GetImpl()->ContextErrorMessage(context) << std::endl; + std::cout << GetImpl()->GetAllErrorMessages(context) << std::endl; } else { std::cout << "PROCEED TO CHECKED SUCCESS" << std::endl; } + GetImpl()->AstNodeRecheck(context, GetImpl()->ProgramAst(context, GetImpl()->ContextProgram(context))); + if(GetImpl()->ContextState(context) == ES2PANDA_STATE_ERROR) + { + std::cout << "PROCEED TO RECHECKED ERROR" << std::endl; + std::cout << GetImpl()->GetAllErrorMessages(context) << std::endl; + } + else { + std::cout << "PROCEED TO RECHECKED SUCCESS" << std::endl; + } + GetImpl()->ProceedToState(context, ES2PANDA_STATE_LOWERED); if(GetImpl()->ContextState(context) == ES2PANDA_STATE_ERROR) { std::cout << "PROCEED TO LOWERED ERROR" << std::endl; - std::cout << GetImpl()->ContextErrorMessage(context) << std::endl; + std::cout << GetImpl()->GetAllErrorMessages(context) << std::endl; } else { std::cout << "PROCEED TO LOWERED SUCCESS" << std::endl; @@ -142,7 +126,7 @@ int main() { if(GetImpl()->ContextState(context) == ES2PANDA_STATE_ERROR) { std::cout << "PROCEED TO ASM ERROR" << std::endl; - std::cout << GetImpl()->ContextErrorMessage(context) << std::endl; + std::cout << GetImpl()->GetAllErrorMessages(context) << std::endl; } else { std::cout << "PROCEED TO ASM SUCCESS" << std::endl; @@ -152,7 +136,7 @@ int main() { if(GetImpl()->ContextState(context) == ES2PANDA_STATE_ERROR) { std::cout << "PROCEED TO BIN ERROR" << std::endl; - std::cout << GetImpl()->ContextErrorMessage(context) << std::endl; + std::cout << GetImpl()->GetAllErrorMessages(context) << std::endl; } else { std::cout << "PROCEED TO BIN SUCCESS" << std::endl;