//
// Copyright (c) 2006, Brian Frank and Andy Frank
// Licensed under the Academic Free License version 3.0
//
// History:
// 4 Nov 06 Brian Frank Creation
//
**
** CompilerOutput encapsulates the result of a compile. The compiler
** can output in three modes:
** - 'transientPod': compiles to an in-memory pod
** - 'podFile': compile a pod file to the file system, but don't
** automatically load it.
** - 'js': runs through frontend of compiler to build AST and
** generates JavaScript code (doesn't perform any backend
** fcode or pod generation)
**
class CompilerOutput
{
**
** Mode indicates the type of this output
**
CompilerOutputMode? mode
**
** If `CompilerOutputMode.transientPod` mode, this is loaded pod.
**
Pod? transientPod
**
** If `CompilerOutputMode.podFile` mode, the pod zip file written to disk.
**
File? podFile
**
** If `CompilerOutputMode.js` mode, the JavaScript code string.
**
Str? js
Str? cjs
Str? esm
}
**************************************************************************
** CompilerOutputMode
**************************************************************************
**
** Input source from the file system - see `CompilerOutput`
**
enum class CompilerOutputMode
{
transientPod,
podFile,
js
}