Module Interpreter.FregeInterpreter

Frege Interpreter

Imports

Table of Content

Definitions

data InterpreterConfig

Constructors

InterpreterConfig {predefs ∷ String, compilerFlags ∷ Flags, useSandbox ∷ Bool}

Member Functions

compilerFlagsInterpreterConfigFlags

access field compilerFlags

initialStateInterpreterConfig
predefsInterpreterConfigString

access field predefs

useSandboxInterpreterConfigBool

access field useSandbox

type InterpreterState = StateT (Mutable RealWorld InterpreterClassLoader) (StateT Global (ST RealWorld))
data Interpreter result

Constructors

Interpreter {un ∷ ReaderT InterpreterState InterpreterConfig result}

Member Functions

askInterpreter InterpreterConfig
getInterpreter (MutableIO InterpreterClassLoader)
getCompilerStateInterpreter Global
modify ∷ (MutableIO InterpreterClassLoaderMutableIO InterpreterClassLoader) → Interpreter ()
putMutableIO InterpreterClassLoaderInterpreter ()
putCompilerStateGlobalInterpreter ()
runInterpreter resultInterpreterConfigMutableIO InterpreterClassLoaderIO (result, MutableIO InterpreterClassLoader)
unInterpreter αReaderT InterpreterState InterpreterConfig α

access field un

createopts[String]FlagsString[String]StringStringOptions

utility function to create Options data structure

standardOptionsMutableIO InterpreterClassLoaderIO Global
data InterpreterResult

Constructors

Failure [Message]
Success {sourceRepr ∷ SourceInfo, compilerState ∷ Global}

Member Functions

compilerStateInterpreterResultGlobal

access field compilerState

sourceReprInterpreterResultSourceInfo

access field sourceRepr

javaSourceGenGlobalInterpreter (Maybe String)
javagenGlobalInterpreter (Maybe String)
typecheckStringInterpreter (Global, Maybe SourceInfo)
interpretStringInterpreter InterpreterResult
runStringString → (String → [(StIO (String, Int), String)]) → StIO (Maybe SourceInfo)

run all passes, one after another until one of them returns an error

browseModuleStringInterpreter (Maybe ([Symbol], Global))
browseStringInterpreter (Maybe ([Symbol], Global))
typeofStringInterpreter ([Message] | String)
javaSourceStringInterpreter ([Message] | String)
docHelpStringInterpreter ([Message] | String)
removeDuplicateDefs ∷ [DefinitionS] → StG [DefinitionS]
data MessageType

Constructors

ERROR
HINT
INFO
WARNING

Member Functions

translateCompilerMsgTypeSeverityMessageType
data Message

Constructors

Message {pos ∷ Position, msgType ∷ MessageType, text ∷ String}

Member Functions

errorStringMessage
fromCompilerMessageGlobal.MessageMessage
fromGlobalGlobal → [Message]
hintStringMessage
infoStringMessage
msgTypeMessageMessageType

access field msgType

posMessagePosition

access field pos

textMessageString

access field text

warningStringMessage
symbolVarSymbolGlobalString
symbolClassSymbolGlobalString
findSourceTypeStringStringStIO SourceType
isDefinitionOrExprStringStringStIO SourceType
interpreterCompilerEnvMutableIO InterpreterClassLoaderFlagsIO Global
runpass(StIO (String, Int), String)StIO ()
browseSymbolsStringStIO [Symbol]
getEnvGlobalQNameMaybe Symtab
outlineSymbolsGlobal → [String]
newLineString
classNameGlobalString
data SourceType

Constructors

DefinitionsSource
ExpressionSource
ModuleSource
data SourceInfo

Constructors

Definitions [Symbol]
Expression (Symbol)
Module (String)
noDocCommentTokenBool
moduleDeclScriptStringString
variableDeclScriptStringStringString
intercalateNewLine ∷ [String] → String
buildScriptStringSourceTypeStringStringStringString
freshVarPrefixString
freshVarRegexRegex
findUnusedVariableNameStringStringString
helpDocStringStIO [String]
sNameToQNameSNameStG [QName]
resolveSymbolStringStG [Symbol]
createSNameStringSName
matchStringRegexMaybe [Maybe String]
buildShowScriptStringIntGlobalSymbolString
openPrinterMutableIO StringWriterStIO (String, Int)
javaSourcePassesMutableIO StringWriter → [(StIO (String, Int), String)]
javagenPassesMutableIO StringWriterMutableIO MemoryJavaCompiler → [(StIO (String, Int), String)]
typecheckPassesInterpreterConfigString → [(StIO (String, Int), String)]
derivePassStG (String, Int)
javacPassMutableIO MemoryJavaCompilerMutableIO StringWriterStIO (String, Int)
matchingDefinitionSDefinitionSBool
funcMatchingDefinitionSDefinitionSBool
getSymbolTypeGlobalSymbolString
showSymbolGlobalSymbolString
getSymbolsGlobalSymtab → [Symbol]
iparsePass ∷ ([DefinitionS]→StG [DefinitionS]) → StG (String, Int)
interpreterPreludeImportDefinitionS
preludeHidingImportDefinitionS
transformDefsInterpreterConfig → [DefinitionS] → StG [DefinitionS]
indentIntStringString
lexPassStringStIO (String, Int)
isVariableGlobalSymbolBool
isIOGlobalSymbolBool
isStringGlobalSymbolBool
showThrowableCauseThrowableString
showThrowableCause'IntThrowableString
data MemoryJavaCompiler = native frege.interpreter.javasupport.MemoryJavaCompiler

Member Functions

classLoaderMutable s MemoryJavaCompilerSTMutable s InterpreterClassLoader
native classLoader
compileMutable s MemoryJavaCompilerStringStringSTMutable s JavaCompilationInfo
native compile
newMutable s InterpreterClassLoaderSTMutable s MemoryJavaCompiler
native new
data InterpreterClassLoader = native frege.interpreter.javasupport.InterpreterClassLoader

Member Functions

classesMutableIO InterpreterClassLoaderSTMutable RealWorld (JMap String ByteArray)
native classes
new()STMutable s InterpreterClassLoader
     | MutableIO ClassLoaderSTMutable RealWorld InterpreterClassLoader
     | Mutable s (JMap String ByteArray) → STMutable s InterpreterClassLoader
     | MutableIO ClassLoaderMutableIO (JMap String ByteArray) → STMutable RealWorld InterpreterClassLoader
native new
newα()STMutable s InterpreterClassLoader
native new  overloads new
newβMutableIO ClassLoaderSTMutable RealWorld InterpreterClassLoader
native new  overloads new
newγMutable s (JMap String ByteArray)STMutable s InterpreterClassLoader
native new  overloads new
newδMutableIO ClassLoaderMutableIO (JMap String ByteArray)STMutable RealWorld InterpreterClassLoader
native new  overloads new
data JavaCompilationInfo = native frege.interpreter.javasupport.CompilationInfo

Member Functions

errorsAsStringMutable s JavaCompilationInfoST s String
native errorsAsString
isSuccessMutable s JavaCompilationInfoST s Bool
native isSuccess
type ByteArray = JArray Byte
data JMap k v = native java.util.Map

Member Functions

getMutable s (JMap k v)kST s (Maybe v)
native get
isEmptyMutable s (JMap k v)ST s Bool
native isEmpty
putMutable s (JMap k v)kvST s ()
native put
putAllMutable s (JMap k v)Mutable s (JMap k v)ST s ()
native putAll
data HashMap k v = native java.util.HashMap

Member Functions

new()STMutable s (HashMap k v)
native new
groupCountMatchResultInt
pure native groupCount
fieldValueStringStringMutableIO InterpreterClassLoaderIO (Maybe Object)
native frege.interpreter.javasupport.JavaUtils.fieldValue
sandboxFieldValueStringStringStringMutableIO StringWriterMutableIO StringWriterMutableIO InterpreterClassLoaderIO (Maybe Object)
native frege.interpreter.javasupport.JavaUtils.sandboxFieldValue
fieldValueWithRuntimeStringStringStringMutableIO StringWriterMutableIO StringWriterMutableIO InterpreterClassLoaderIO (Maybe Object)
native frege.interpreter.javasupport.JavaUtils.fieldValueWithRuntime
longToStringLongIntString
pure native Long.toString
showNativeaString
pure native String.valueOf
throwableCauseThrowableMaybe Throwable
pure native getCause
data Method = pure native java.lang.reflect.Method

Member Functions

getNameMethodString
pure native getName
splitStringStringJArray String
pure native split
trimStringString
pure native trim
asURLClassLoaderMutableIO InterpreterClassLoaderSTMutable RealWorld URLClassLoader
native (java.net.URLClassLoader)

Instances

instance MonadIO Interpreter

Member Functions

liftIOIO α → Interpreter α
instance Monad Interpreter

Member Functions

*>Interpreter α → Interpreter β → Interpreter β
infixl  4

inherited from Applicative.*>

<*Interpreter α → Interpreter β → Interpreter α
infixl  4

inherited from Applicative.<*

<*>Interpreter (α→β) → Interpreter α → Interpreter β
infixl  4

inherited from Monad.<*>

>>Interpreter αInterpreter β → Interpreter β
infixl  3

inherited from Monad.>>

>>=Interpreter α → (α → Interpreter β) → Interpreter β
infixl  3
fmap ∷ (α → β) → Interpreter αInterpreter β
infixl  4

inherited from Monad.fmap

joinInterpreter (Interpreter α)Interpreter α

inherited from Monad.join

pure ∷ α → Interpreter α
instance Show Message

Member Functions

displayMessageString

inherited from Show.display

showMessageString
showCharsMessage → [Char]

inherited from Show.showChars

showList[Message]StringString

inherited from Show.showList

showsPrecIntMessageStringString

inherited from Show.showsPrec

showsubMessageString

inherited from Show.showsub

instance Show MessageType

Member Functions

displayMessageTypeString

inherited from Show.display

showMessageTypeString

Function generated for derived instance.

showCharsMessageType → [Char]

inherited from Show.showChars

showList[MessageType]StringString

inherited from Show.showList

showsPrecIntMessageTypeStringString

inherited from Show.showsPrec

showsubMessageTypeString

Function generated for derived instance.

instance Show SourceInfo

Member Functions

displaySourceInfoString

inherited from Show.display

showSourceInfoString
showCharsSourceInfo → [Char]

inherited from Show.showChars

showList[SourceInfo]StringString

inherited from Show.showList

showsPrecIntSourceInfoStringString

inherited from Show.showsPrec

showsubSourceInfoString

inherited from Show.showsub

instance Show SourceType

Member Functions

displaySourceTypeString

inherited from Show.display

showSourceTypeString

Function generated for derived instance.

showCharsSourceType → [Char]

inherited from Show.showChars

showList[SourceType]StringString

inherited from Show.showList

showsPrecIntSourceTypeStringString

inherited from Show.showsPrec

showsubSourceTypeString

Function generated for derived instance.

Functions and Values by Type

(StIO (String, Int), String) → StIO ()

runpass

(MutableIO InterpreterClassLoaderMutableIO InterpreterClassLoader) → Interpreter ()

Interpreter.modify

([DefinitionS]→StG [DefinitionS]) → StG (String, Int)

iparsePass

MutableIO InterpreterClassLoaderFlagsIO Global

interpreterCompilerEnv

MutableIO InterpreterClassLoaderSTMutable RealWorld (JMap String ByteArray)

InterpreterClassLoader.classes

MutableIO InterpreterClassLoaderSTMutable RealWorld URLClassLoader

asURLClassLoader

MutableIO InterpreterClassLoaderIO Global

standardOptions

MutableIO InterpreterClassLoaderInterpreter ()

Interpreter.put

MutableIO MemoryJavaCompilerMutableIO StringWriterStIO (String, Int)

javacPass

MutableIO StringWriterMutableIO MemoryJavaCompiler → [(StIO (String, Int), String)]

javagenPasses

MutableIO StringWriterStIO (String, Int)

openPrinter

MutableIO StringWriter → [(StIO (String, Int), String)]

javaSourcePasses

MutableIO ClassLoaderMutableIO (JMap String ByteArray) → STMutable RealWorld InterpreterClassLoader

InterpreterClassLoader.newδ

MutableIO ClassLoaderSTMutable RealWorld InterpreterClassLoader

InterpreterClassLoader.newβ

SymbolGlobalString

symbolClass, symbolVar

SymbolSourceInfo

SourceInfo.Expression

StringFlagsBoolInterpreterConfig

InterpreterConfig.InterpreterConfig

StringString → (String → [(StIO (String, Int), String)]) → StIO (Maybe SourceInfo)

run

StringStringMutableIO InterpreterClassLoaderIO (Maybe Object)

fieldValue

StringStringStringMutableIO StringWriterMutableIO StringWriterMutableIO InterpreterClassLoaderIO (Maybe Object)

fieldValueWithRuntime, sandboxFieldValue

StringStringStIO SourceType

findSourceType, isDefinitionOrExpr

StringStringJArray String

split

StringStringString

findUnusedVariableName, variableDeclScript

StringSourceTypeStringStringStringString

buildScript

StringRegexMaybe [Maybe String]

match

StringIntGlobalSymbolString

buildShowScript

StringStIO (String, Int)

lexPass

StringStIO [Symbol]

browseSymbols

StringStIO [String]

helpDoc

StringStG [Symbol]

resolveSymbol

StringInterpreter (Global, Maybe SourceInfo)

typecheck

StringInterpreter ([Message] | String)

docHelp, javaSource, typeof

StringInterpreter (Maybe ([Symbol], Global))

browse, browseModule

StringInterpreter InterpreterResult

interpret

StringString

moduleDeclScript, trim

StringSName

createSName

StringMessage

Message.warning, Message.info, Message.hint, Message.error

StringSourceInfo

SourceInfo.Module

[Symbol] → SourceInfo

SourceInfo.Definitions

[String] → FlagsString → [String] → StringStringOptions

createopts

[String] → String

intercalateNewLine

[DefinitionS] → StG [DefinitionS]

removeDuplicateDefs

[Message] → StringString

Show_Message.showList

[Message] → InterpreterResult

InterpreterResult.Failure

[MessageType] → StringString

Show_MessageType.showList

[SourceInfo] → StringString

Show_SourceInfo.showList

[SourceType] → StringString

Show_SourceType.showList

GlobalSymtab → [Symbol]

getSymbols

GlobalSymbolString

getSymbolType, showSymbol

GlobalSymbolBool

isIO, isString, isVariable

GlobalQNameMaybe Symtab

getEnv

GlobalInterpreter (Maybe String)

javaSourceGen, javagen

GlobalInterpreter ()

Interpreter.putCompilerState

GlobalString

className

Global → [String]

outlineSymbols

Global → [Message]

Message.fromGlobal

Global.MessageMessage

Message.fromCompilerMessage

SeverityMessageType

MessageType.translateCompilerMsgType

PositionMessageTypeStringMessage

Message.Message

SNameStG [QName]

sNameToQName

DefinitionSDefinitionSBool

funcMatching, matching

TokenBool

noDocComment

InterpreterConfig → (FlagsFlags) → InterpreterConfig

InterpreterConfig.chg$compilerFlags

InterpreterConfig → (StringString) → InterpreterConfig

InterpreterConfig.chg$predefs

InterpreterConfig → (BoolBool) → InterpreterConfig

InterpreterConfig.chg$useSandbox

InterpreterConfigFlagsInterpreterConfig

InterpreterConfig.upd$compilerFlags

InterpreterConfigString → [(StIO (String, Int), String)]

typecheckPasses

InterpreterConfigStringInterpreterConfig

InterpreterConfig.upd$predefs

InterpreterConfig → [DefinitionS] → StG [DefinitionS]

transformDefs

InterpreterConfigBoolInterpreterConfig

InterpreterConfig.upd$useSandbox

InterpreterConfigFlags

InterpreterConfig.compilerFlags

InterpreterConfigString

InterpreterConfig.predefs

InterpreterConfigBool

InterpreterConfig.useSandbox

InterpreterResult → (GlobalGlobal) → InterpreterResult

InterpreterResult.chg$compilerState

InterpreterResult → (SourceInfoSourceInfo) → InterpreterResult

InterpreterResult.chg$sourceRepr

InterpreterResultGlobalInterpreterResult

InterpreterResult.upd$compilerState

InterpreterResultSourceInfoInterpreterResult

InterpreterResult.upd$sourceRepr

InterpreterResultGlobal

InterpreterResult.compilerState

InterpreterResultSourceInfo

InterpreterResult.sourceRepr

InterpreterResultBool

InterpreterResult.has$compilerState, InterpreterResult.has$sourceRepr

Message → (StringString) → Message

Message.chg$text

Message → (PositionPosition) → Message

Message.chg$pos

Message → (MessageTypeMessageType) → Message

Message.chg$msgType

MessageStringMessage

Message.upd$text

MessagePositionMessage

Message.upd$pos

MessageMessageTypeMessage

Message.upd$msgType

MessageString

Show_Message.showsub, Show_Message.display, Show_Message.show, Message.text

Message → [Char]

Show_Message.showChars

MessagePosition

Message.pos

MessageMessageType

Message.msgType

MessageTypeString

Show_MessageType.showsub, Show_MessageType.display, Show_MessageType.show

MessageType → [Char]

Show_MessageType.showChars

MethodString

Method.getName

SourceInfoGlobalInterpreterResult

InterpreterResult.Success

SourceInfoString

Show_SourceInfo.showsub, Show_SourceInfo.display, Show_SourceInfo.show

SourceInfo → [Char]

Show_SourceInfo.showChars

SourceTypeString

Show_SourceType.showsub, Show_SourceType.display, Show_SourceType.show

SourceType → [Char]

Show_SourceType.showChars

MatchResultInt

groupCount

IntStringString

indent

IntMessageStringString

Show_Message.showsPrec

IntMessageTypeStringString

Show_MessageType.showsPrec

IntSourceInfoStringString

Show_SourceInfo.showsPrec

IntSourceTypeStringString

Show_SourceType.showsPrec

IntThrowableString

showThrowableCause'

LongIntString

longToString

ThrowableMaybe Throwable

throwableCause

ThrowableString

showThrowableCause

StG (String, Int)

derivePass

Interpreter (MutableIO InterpreterClassLoader)

Interpreter.get

Interpreter Global

Interpreter.getCompilerState

Interpreter InterpreterConfig

Interpreter.ask

String

freshVarPrefix, newLine

DefinitionS

interpreterPreludeImport, preludeHidingImport

InterpreterConfig

InterpreterConfig.initialState

MessageType

MessageType.INFO, MessageType.ERROR, MessageType.HINT, MessageType.WARNING

SourceType

SourceType.DefinitionsSource, SourceType.ExpressionSource, SourceType.ModuleSource

Regex

freshVarRegex

ReaderT InterpreterState InterpreterConfig result → Interpreter result

Interpreter.Interpreter

IO α → Interpreter α

MonadIO_Interpreter.liftIO

Mutable s (JMap String ByteArray) → STMutable s InterpreterClassLoader

InterpreterClassLoader.newγ

Mutable s InterpreterClassLoaderSTMutable s MemoryJavaCompiler

MemoryJavaCompiler.new

Mutable s JavaCompilationInfoST s String

JavaCompilationInfo.errorsAsString

Mutable s JavaCompilationInfoST s Bool

JavaCompilationInfo.isSuccess

Mutable s MemoryJavaCompilerStringStringSTMutable s JavaCompilationInfo

MemoryJavaCompiler.compile

Mutable s MemoryJavaCompilerSTMutable s InterpreterClassLoader

MemoryJavaCompiler.classLoader

Interpreter (Interpreter α) → Interpreter α

Monad_Interpreter.join

Interpreter result → InterpreterConfigMutableIO InterpreterClassLoaderIO (result, MutableIO InterpreterClassLoader)

Interpreter.run

Interpreter α → ReaderT InterpreterState InterpreterConfig α

Interpreter.un

()STMutable s InterpreterClassLoader

InterpreterClassLoader.newα

a → String

showNative

α → Interpreter α

Monad_Interpreter.pure

α → Bool

Interpreter.has$un, InterpreterConfig.has$predefs, InterpreterConfig.has$compilerFlags, InterpreterConfig.has$useSandbox, Message.has$text, Message.has$msgType, Message.has$pos

ω

InterpreterClassLoader.new

(α → β) → Interpreter α → Interpreter β

Monad_Interpreter.fmap

Interpreter (α→β) → Interpreter α → Interpreter β

Monad_Interpreter.<*>

Interpreter α → (α → Interpreter β) → Interpreter β

Monad_Interpreter.>>=

Interpreter α → ReaderT InterpreterState InterpreterConfig β → Interpreter β

Interpreter.upd$un

Interpreter α → (ReaderT InterpreterState InterpreterConfig α→ReaderT InterpreterState InterpreterConfig β) → Interpreter β

Interpreter.chg$un

Interpreter α → Interpreter β → Interpreter α

Monad_Interpreter.<*

Interpreter α → Interpreter β → Interpreter β

Monad_Interpreter.*>, Monad_Interpreter.>>

Mutable s (JMap k v) → Mutable s (JMap k v) → ST s ()

JMap.putAll

Mutable s (JMap k v) → k → v → ST s ()

JMap.put

Mutable s (JMap k v) → k → ST s (Maybe v)

JMap.get

Mutable s (JMap k v) → ST s Bool

JMap.isEmpty

()STMutable s (HashMap k v)

HashMap.new

Valid HTML 4.01 Strict