// newAppScanner creates a new api parser func newAppScanner(bp string, input *spec.Swagger, includes, excludes packageFilters) (*appScanner, error) { var ldr loader.Config ldr.ParserMode = goparser.ParseComments ldr.ImportWithTests(bp) prog, err := ldr.Load() if err != nil { return nil, err } if input == nil { input = new(spec.Swagger) input.Swagger = "2.0" } if input.Paths == nil { input.Paths = new(spec.Paths) } if input.Definitions == nil { input.Definitions = make(map[string]spec.Schema) } if input.Responses == nil { input.Responses = make(map[string]spec.Response) } return &appScanner{ MainPackage: bp, prog: prog, input: input, loader: &ldr, operations: collectOperationsFromInput(input), definitions: input.Definitions, responses: input.Responses, classifier: &programClassifier{ Includes: includes, Excludes: excludes, }, }, nil }