resolve method

  1. @override
Danger<String, CitrusSemanticException> resolve(
  1. CitrusSymbolTable symbolTable
)
override

Implementation

@override
Danger<String, CitrusSemanticException> resolve(CitrusSymbolTable symbolTable) {

    final log = Log(classLocation: runtimeType, functionLocation: 'resolve');

    final accesserResult = accesser.resolve(symbolTable);
    log.add(accesserResult);
    if (accesserResult is! Success<CitrusSymbolValue, AccesserException>) return Failure(accesserResult.asException, log);

    if (accesserResult.wrapped is! EndValue) return Failure(ForLoopSettingExceptionB(), log.monitor({
        'type': accesserResult.wrapped.runtimeType,
    }));

    final rootCitrusSyntaxResult = RootCitrusSyntax.fromFinishSource(accesserResult.wrapped.value.toString());
    log.add(rootCitrusSyntaxResult);

    final finishResult = Finish.fromRootCitrusSyntax(rootCitrusSyntaxResult.wrapped);
    log.add(finishResult);

    final result = finishResult.wrapped.resolve(symbolTable, '', []);
    log.add(result);

    return Danger.fromDanger(result, log);

}