Module dev.civl.mc

Class IntOperationTransformer

java.lang.Object
dev.civl.abc.transform.IF.BaseTransformer
dev.civl.mc.transform.IF.IntOperationTransformer
All Implemented Interfaces:
dev.civl.abc.transform.IF.Transformer

public class IntOperationTransformer extends dev.civl.abc.transform.IF.BaseTransformer
This transformer is used to
  • replace integer division ('/') and integer modulo ('%') in the program with $int_div(int, int) and $int_mod(int, int) functions respectively
  • replace unsigned integer arithmetic operations with corresponding library functions: int $unsigned_add, int $unsigned_subtract, int $unsigned_multiply
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
    The code (short name) of this transformer.
    static final String
    The long name of the transformer.
    static final String
    The description of this transformer.

    Fields inherited from class dev.civl.abc.transform.IF.BaseTransformer

    astFactory, code, longName, nodeFactory, shortDescription
  • Constructor Summary

    Constructors
    Constructor
    Description
    IntOperationTransformer(dev.civl.abc.ast.IF.ASTFactory astFactory, Map<String,String> macros, CIVLConfiguration config)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    dev.civl.abc.ast.IF.AST
    transform(dev.civl.abc.ast.IF.AST ast)
     

    Methods inherited from class dev.civl.abc.transform.IF.BaseTransformer

    getCode, getConfiguration, getShortDescription, newStringLiteralNode, toString

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

  • Constructor Details

  • Method Details

    • transform

      public dev.civl.abc.ast.IF.AST transform(dev.civl.abc.ast.IF.AST ast) throws dev.civl.abc.token.IF.SyntaxException
      Throws:
      dev.civl.abc.token.IF.SyntaxException