parseFileObject function

File? parseFileObject(
  1. MethodInvocation fileMethod
)

//解析基本数据类型 解析File 对象 ast

Implementation

//dynamic _parseLiteral(Map ast) {
//  var valueType = ast['type'];
//  if (valueType == astNodeNameValue(AstNodeName.StringLiteral)) {
//    return _parseStringValue(ast);
//  } else if (valueType == astNodeNameValue(AstNodeName.NumericLiteral)) {
//    return _parseNumericValue(ast);
//  } else if (valueType == astNodeNameValue(AstNodeName.BooleanLiteral)) {
//    return _parseBooleanValue(ast);
//  } else if (valueType == astNodeNameValue(AstNodeName.SetOrMapLiteral)) {
//    return MapLiteral.fromAst(ast);
//  } else if (valueType == astNodeNameValue(AstNodeName.ListLiteral)) {
//    return ListLiteral.fromAst(ast);
//  }
//  return null;
//}

///解析File 对象 ast
File? parseFileObject(MethodInvocation fileMethod) {
  var callee = fileMethod.callee;
  if (callee?.isIdentifier==true && callee?.asIdentifier.name == 'File') {
    var argumentList = fileMethod.argumentList;
    if (argumentList != null &&
        argumentList.isNotEmpty &&
        argumentList[0]?.isStringLiteral==true) {
      var path = argumentList[0]?.asStringLiteral.value;
      return File(path??'');
    }
  }
  return null;
}