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<CitrusDataType, AccesserException>) return Failure(accesserResult.asException, log);

    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);

}