fromBlockSandwich static method
Implementation
static Danger<ProtectContent, ImmatureCitrusSemanticException> fromBlockSandwich(BlockSandwich syntax) {
final log = Log(classLocation: ProtectContent, functionLocation: 'fromBlockSandwich');
final blockTypeKeyword = syntax.first.second.second;
if (blockTypeKeyword is! Protect) return Failure(ProtectContentExceptionB(), log.monitor({
'invalid block type keyword': blockTypeKeyword.runtimeType,
}));
final startBlockArgumentable = syntax.first.fourth;
if (startBlockArgumentable is! AccesserableCollection) return Failure(ProtectContentExceptionC(), log.monitor({
'invalid start block argument': startBlockArgumentable.runtimeType,
}));
final accesserResult = Accesser.fromAccesserableCollection(startBlockArgumentable);
log.add(accesserResult);
if (accesserResult is! Success<Accesser, AccesserException>) return Failure(accesserResult.asException, log);
final result = ProtectContent(syntax.source, accesserResult.wrapped);
return Success(result, log);
}