Module mscript

Class MScriptRuntime


  • public final class MScriptRuntime
    extends java.lang.Object
    This class provides a modular and dynamically generated runtime environment for MScript.
    • Constructor Summary

      Constructors 
      Constructor Description
      MScriptRuntime()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      private static java.lang.String abs()  
      private static java.lang.String add()  
      private static java.lang.String and()  
      private static java.lang.String bool()  
      private static java.lang.String ceil()  
      private static java.lang.String compareOp​(boolean isUsed, java.lang.String operation, java.lang.String opName)  
      private static java.lang.String condition()  
      private static java.lang.String createPushPopRegisters​(int registersUsed, int maxParams)  
      static java.lang.String createRuntime​(int registersUsed, int maxParams)
      Dynamically generates a string representation of the modular MScript runtime.
      static void debugOutput()  
      static java.lang.String destFunctionLabel​(java.lang.String name)
      Creates a destination label for a function.
      static java.lang.String destGotoLabel​(java.lang.String name)
      Creates a destination label for a goto label.
      private static java.lang.String destLabel​(java.lang.String type, java.lang.String name)  
      private static java.lang.String div()  
      private static java.lang.String equal()  
      private static java.lang.String exp()  
      private static java.lang.String floor()  
      static java.lang.String generateLabelName()
      Generates a unique label name.
      static int getParametersForRtFunction​(java.lang.String name, FileContext ctx)  
      private static java.lang.String greater()  
      private static java.lang.String greaterOrEqual()  
      static boolean isRtFunctionName​(java.lang.String name)  
      private static java.lang.String jFalse()  
      private static java.lang.String jRet()  
      private static java.lang.String jTrue()  
      private static java.lang.String label​(java.lang.String target, java.lang.String type, java.lang.String name)  
      private static java.lang.String less()  
      private static java.lang.String lessOrEqual()  
      private static java.lang.String log()  
      private static java.lang.String max()  
      private static java.lang.String min()  
      private static java.lang.String mod()  
      private static java.lang.String mul()  
      private static java.lang.String negate()  
      private static java.lang.String noOperator​(boolean isUsed, java.lang.String operation)  
      private static java.lang.String not()  
      private static java.lang.String notEqual()  
      private static java.lang.String oneOperator​(boolean isUsed, java.lang.String operation)  
      private static java.lang.String or()  
      private static java.lang.String rand()  
      private static java.lang.String ret()  
      private static java.lang.String retTrueFalse()  
      private static java.lang.String round()  
      static java.lang.String sourceFunctionLabel​(java.lang.String name)
      Creates a source label for a function.
      static java.lang.String sourceGotoLabel​(java.lang.String name)
      Creates a source label for a goto label.
      private static java.lang.String sourceLabel​(java.lang.String type, java.lang.String name)  
      private static java.lang.String sqrt()  
      private static java.lang.String sub()  
      private static java.lang.String trunc()  
      private static java.lang.String twoOperator​(boolean isUsed, java.lang.String operation)  
      private static java.lang.String twoOpLogic​(boolean isUsed, java.lang.String operation)  
      private static java.lang.String xor()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • COMPILER_VERSION

        public static final java.lang.String COMPILER_VERSION
        The current compiler version.
        See Also:
        Constant Field Values
      • labels

        private static java.util.Set<java.lang.String> labels
      • isDebugEnabled

        public static boolean isDebugEnabled
      • isAddUsed

        private static boolean isAddUsed
      • isSubUsed

        private static boolean isSubUsed
      • isDivUsed

        private static boolean isDivUsed
      • isMulUsed

        private static boolean isMulUsed
      • isModUsed

        private static boolean isModUsed
      • isNegateUsed

        private static boolean isNegateUsed
      • isNotUsed

        private static boolean isNotUsed
      • isAndUsed

        private static boolean isAndUsed
      • isOrUsed

        private static boolean isOrUsed
      • isXorUsed

        private static boolean isXorUsed
      • isLessUsed

        private static boolean isLessUsed
      • isLessOrEqualUsed

        private static boolean isLessOrEqualUsed
      • isGreaterUsed

        private static boolean isGreaterUsed
      • isGreaterOrEqualUsed

        private static boolean isGreaterOrEqualUsed
      • isEqualUsed

        private static boolean isEqualUsed
      • isNotEqualUsed

        private static boolean isNotEqualUsed
      • isFloorUsed

        private static boolean isFloorUsed
      • isCeilUsed

        private static boolean isCeilUsed
      • isRoundUsed

        private static boolean isRoundUsed
      • isBoolUsed

        private static boolean isBoolUsed
      • isAbsUsed

        private static boolean isAbsUsed
      • isLogUsed

        private static boolean isLogUsed
      • isMaxUsed

        private static boolean isMaxUsed
      • isMinUsed

        private static boolean isMinUsed
      • isRandUsed

        private static boolean isRandUsed
      • isTruncUsed

        private static boolean isTruncUsed
      • isSqrtUsed

        private static boolean isSqrtUsed
      • isExpUsed

        private static boolean isExpUsed
      • isFunctionCalled

        private static boolean isFunctionCalled
      • isConditionEvaluated

        private static boolean isConditionEvaluated
      • isRetUsed

        private static boolean isRetUsed
      • isRetTrueFalseUsed

        private static boolean isRetTrueFalseUsed
      • rtFunctionNames

        private static final java.util.List<java.lang.String> rtFunctionNames
      • rtFunctionParameterCount

        private static final int[] rtFunctionParameterCount
    • Constructor Detail

      • MScriptRuntime

        public MScriptRuntime()
    • Method Detail

      • debugOutput

        public static void debugOutput()
      • getParametersForRtFunction

        public static int getParametersForRtFunction​(java.lang.String name,
                                                     FileContext ctx)
        Parameters:
        name - The name of the internal runtime function.
        ctx - The file context for better error handling.
        Returns:
        The amount of parameters for the specified runtime internal function.
      • isRtFunctionName

        public static boolean isRtFunctionName​(java.lang.String name)
        Parameters:
        name - The name of the internal runtime function.
        Returns:
        True if the provided name is the name of an internal runtime function.
      • createRuntime

        public static java.lang.String createRuntime​(int registersUsed,
                                                     int maxParams)
        Dynamically generates a string representation of the modular MScript runtime.
        Parameters:
        registersUsed - The amount of maximum registers used by function parameters and variables.
        Returns:
        The runtime for the script.
      • createPushPopRegisters

        private static java.lang.String createPushPopRegisters​(int registersUsed,
                                                               int maxParams)
      • twoOperator

        private static java.lang.String twoOperator​(boolean isUsed,
                                                    java.lang.String operation)
      • oneOperator

        private static java.lang.String oneOperator​(boolean isUsed,
                                                    java.lang.String operation)
      • noOperator

        private static java.lang.String noOperator​(boolean isUsed,
                                                   java.lang.String operation)
      • compareOp

        private static java.lang.String compareOp​(boolean isUsed,
                                                  java.lang.String operation,
                                                  java.lang.String opName)
      • less

        private static java.lang.String less()
      • lessOrEqual

        private static java.lang.String lessOrEqual()
      • greater

        private static java.lang.String greater()
      • greaterOrEqual

        private static java.lang.String greaterOrEqual()
      • equal

        private static java.lang.String equal()
      • notEqual

        private static java.lang.String notEqual()
      • jTrue

        private static java.lang.String jTrue()
      • jFalse

        private static java.lang.String jFalse()
      • retTrueFalse

        private static java.lang.String retTrueFalse()
      • twoOpLogic

        private static java.lang.String twoOpLogic​(boolean isUsed,
                                                   java.lang.String operation)
      • and

        private static java.lang.String and()
      • or

        private static java.lang.String or()
      • xor

        private static java.lang.String xor()
      • add

        private static java.lang.String add()
      • sub

        private static java.lang.String sub()
      • mul

        private static java.lang.String mul()
      • div

        private static java.lang.String div()
      • mod

        private static java.lang.String mod()
      • max

        private static java.lang.String max()
      • min

        private static java.lang.String min()
      • negate

        private static java.lang.String negate()
      • not

        private static java.lang.String not()
      • floor

        private static java.lang.String floor()
      • ceil

        private static java.lang.String ceil()
      • round

        private static java.lang.String round()
      • abs

        private static java.lang.String abs()
      • log

        private static java.lang.String log()
      • bool

        private static java.lang.String bool()
      • rand

        private static java.lang.String rand()
      • trunc

        private static java.lang.String trunc()
      • sqrt

        private static java.lang.String sqrt()
      • exp

        private static java.lang.String exp()
      • jRet

        private static java.lang.String jRet()
      • ret

        private static java.lang.String ret()
      • condition

        private static java.lang.String condition()
      • sourceFunctionLabel

        public static java.lang.String sourceFunctionLabel​(java.lang.String name)
        Creates a source label for a function.
        Parameters:
        name - The function name.
        Returns:
        a source label for the function.
      • sourceGotoLabel

        public static java.lang.String sourceGotoLabel​(java.lang.String name)
        Creates a source label for a goto label.
        Parameters:
        name - The goto label name.
        Returns:
        a source label for the goto label.
      • sourceLabel

        private static java.lang.String sourceLabel​(java.lang.String type,
                                                    java.lang.String name)
      • destFunctionLabel

        public static java.lang.String destFunctionLabel​(java.lang.String name)
        Creates a destination label for a function.
        Parameters:
        name - The function name.
        Returns:
        a destination for the function.
      • destGotoLabel

        public static java.lang.String destGotoLabel​(java.lang.String name)
        Creates a destination label for a goto label.
        Parameters:
        name - The goto label name.
        Returns:
        a destinatino label for the goto label.
      • destLabel

        private static java.lang.String destLabel​(java.lang.String type,
                                                  java.lang.String name)
      • label

        private static java.lang.String label​(java.lang.String target,
                                              java.lang.String type,
                                              java.lang.String name)
      • generateLabelName

        public static java.lang.String generateLabelName()
        Generates a unique label name.
        Returns:
        a unique label name.