parser

package
v0.0.13 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 15, 2026 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Overview

* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. * * This product includes software developed at Datadog (https://www.datadoghq.com) Copyright 2024 Datadog, Inc.

Index

Constants

This section is empty.

Variables

View Source
var ErrNotSupportedFile = errors.New("unsupported file to parse")

ErrNotSupportedFile represents an error when a file is not supported by KICS

Functions

This section is empty.

Types

type Builder

type Builder struct {
	// contains filtered or unexported fields
}

Builder is a representation of parsers that will be construct

func NewBuilder

func NewBuilder(ctx context.Context) *Builder

NewBuilder creates a new Builder's reference

func (*Builder) Add

func (b *Builder) Add(p kindParser) *Builder

Add is a function that adds a new parser to the caller and returns it

func (*Builder) Build

func (b *Builder) Build(types, cloudProviders []string) ([]*Parser, error)

Build prepares parsers and associates a parser to its extension and returns it

type ParsedDocument

type ParsedDocument struct {
	Docs          []model.Document
	Kind          model.FileKind
	Content       string
	IgnoreLines   []int
	CountLines    int
	ResolvedFiles map[string]model.ResolvedFile
	IsMinified    bool
}

ParsedDocument is a struct containing data retrieved from parsing

type Parser

type Parser struct {
	// Parsers is public because necessary for testing purposes
	Parsers kindParser

	Platform []string
	SCIInfo  model.SCIInfo
	// contains filtered or unexported fields
}

Parser is a struct that associates a parser to its supported extensions

func (*Parser) CommentsCommands

func (c *Parser) CommentsCommands(ctx context.Context, filePath string, fileContent []byte) model.CommentsCommands

CommentsCommands gets commands on comments in the file beginning, before the code starts

func (*Parser) Parse

func (c *Parser) Parse(
	ctx context.Context,
	filePath string,
	fileContent []byte,
	openAPIResolveReferences, isMinified bool,
	maxResolverDepth int) (ParsedDocument, error)

Parse executes a parser on the fileContent and returns the file content as a Document, the file kind and an error, if an error has occurred

func (*Parser) SupportedExtensions

func (c *Parser) SupportedExtensions() model.Extensions

SupportedExtensions returns extensions supported by KICS

Directories

Path Synopsis
ansible
ini/comments
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
ini/config
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
ini/hosts
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
converter
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
jsonfilter
parser
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
comment
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
converter
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
functions
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
cicd
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
default
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL