resolve method

Danger<Iterable<FileSystemModelRoute>, CitrusSemanticException> resolve(
  1. CitrusSymbolTable symbolTable,
  2. FileSystemModelRoute target,
  3. FileSystemModelRouteRoster<FileSystemModelRoute> base
)

Implementation

Danger<Iterable<FileSystemModelRoute>, CitrusSemanticException> resolve(CitrusSymbolTable symbolTable, FileSystemModelRoute target, FileSystemModelRouteRoster<FileSystemModelRoute> base) {

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

    final List<FileSystemModelRoute> list = [];

    // たとえ複数存在しても 1 つしか処理しない.
    for (final i in frameCitrusSemanticList) {

        final result = i.resolve(symbolTable, target, base);
        log.add(result);
        if (result is! Success<List<FileSystemModelRoute>, CitrusSemanticException>) return Failure(result.asException, log);

        list.addAll(result.wrapped);

        break;

    }

    return Success(list, log);

}