module volt.arg

Code Map

module volt.arg;


class Arg
{
public:
	enum Conditional
	{
		None,
		Std,
		Arch,
		Platform,
	}

	enum Kind
	{
		File,
		Identifier,
		IncludePath,
		SrcPath,
		Warnings,
		//! -E
		PreprocessOnly,
		//! -S
		CompileOnly,
		//! --missing
		MissingDeps,
		//! --import-as-src
		ImportAsSrc,
		//! --debug
		Debug,
		//! --release
		Release,
		DebugSimpleTrace,
		//! --dep
		Dep,
		Output,
		//! --emit-llvm
		EmitLLVM,
		//! --emit-bitcode (depricated)
		EmitBitcode,
		NoLink,
		CCompiler,
		CCompilerArg,
		LD,
		LDArg,
		Link,
		LinkArg,
		Clang,
		ClangArg,
		LLVMAr,
		LLVMArArg,
		Linker,
		LinkerArg,
		LibraryPath,
		LibraryName,
		FrameworkPath,
		FrameworkName,
		StringImportPath,
		JSONOutput,
		PerfOutput,
		InternalDiff,
		InternalPerf,
		InternalDebug,
		InternalNoCatch,
	}


public:
	arg: string;
	condArch: i32;
	condPlatform: i32;
	kind: Kind;
	cond: Conditional;


public:
	this(kind: Kind) { }
	this(arg: string, kind: Kind) { }
}

fn filterArgs(args: Arg[], files: string[], ver: VersionSet, settings: Settings) { }
fn parseArch(a: string) Arch { }
fn parsePlatform(p: string, cRuntime: CRuntime) Platform { }