compileFragments static method
Danger<CitrusSymbolTable, CitrusLanguageException>
compileFragments(
- CitrusSymbolTable symbolTable,
- TemplateFileSetting templateFileSetting,
- String generateLocation,
- ObjectDefinitionRoster objectDefinitionRoster,
Implementation
static Danger<CitrusSymbolTable, CitrusLanguageException> compileFragments(CitrusSymbolTable symbolTable, TemplateFileSetting templateFileSetting, String generateLocation, ObjectDefinitionRoster objectDefinitionRoster) {
final log = Log(classLocation: CitrusLanguage, functionLocation: 'compileFragments');
final List<FragmentSymbol> list = [];
for (final i in templateFileSetting.fragmentDefinitions) {
final rootCitrusSyntaxResult = RootCitrusSyntax.fromFinishSource(i.content);
log.add(rootCitrusSyntaxResult);
final finishResult = Finish.fromRootCitrusSyntax(rootCitrusSyntaxResult.wrapped);
log.add(finishResult);
final resolveResult = finishResult.wrapped.resolve(symbolTable, generateLocation, [], objectDefinitionRoster);
log.add(resolveResult);
final result = FragmentSymbol(i.name, CitrusText(resolveResult.wrapped));
list.add(result);
}
final fragmentSymbolRosterResult = CitrusSymbolRoster.result(list);
log.add(fragmentSymbolRosterResult);
if (fragmentSymbolRosterResult is! Success<CitrusSymbolRoster<FragmentSymbol>, CitrusSymbolExceptionA>) return Failure(CitrusLanguageExceptionA(), log);
final changeFragmentSymbolRosterResult = symbolTable.changeFragmentSymbolRoster(fragmentSymbolRosterResult.wrapped);
log.add(changeFragmentSymbolRosterResult);
if (changeFragmentSymbolRosterResult is! Success<CitrusSymbolTable, CitrusSymbolTableExceptionA>) return Failure(CitrusLanguageExceptionB(), log);
return Success(changeFragmentSymbolRosterResult.wrapped, log);
}