0001 // 0002 // ArgsParser.swift 0003 // Swiftline 0004 // 0005 // Created by Omar Abdelhafith on 27/11/2015. 0006 // Copyright © 2015 Omar Abdelhafith. All rights reserved. 0007 // 0008 0009 class ArgsParser{ 0010 0011 static func parseFlags
Args.swift:31 let parsedArgs = ArgsParser.parseFlags(all)(args: [String]) -> ([Option], [String]) { 0012 var options = [Option]() 0013 var others = [String]() 0014 var previousArgument: Argument? 0015 var argsTerminated = false 0016 0017 for argumentString in args { 0018 let argument = Argument(argumentString) 0019 defer { previousArgument = argument } 0020 0021 if argsTerminated { 0022 others += [argumentString] 0023 continue 0024 } 0025 0026 if argument.isFlagTerminator { 0027 argsTerminated = true 0028 continue 0029 } 0030 0031 if argument.isFlag { 0032 options += [Option(argument: argument)] 0033 continue 0034 } 0035 0036 if let previousArgument = previousArgument where previousArgument.isFlag { 0037 updatelastOption(forArray: &options, withValue: argumentString) 0038 } else { 0039 others += [argument.name] 0040 } 0041 } 0042 0043 return (options, others) 0044 0045 } 0046 0047 static func updatelastOption
Args.swift:31 let parsedArgs = ArgsParser.parseFlags(all)(inout forArray array: [Option], withValue value: String) { 0048 var previousOption = array.last! 0049 previousOption.value = value 0050 array.removeLast() 0051 array += [previousOption] 0052 } 0053 } 0054
ArgsParser.swift:37 updatelastOption(forArray: &options, withValue: argumentString)