Giter Site home page Giter Site logo

object-oriented-language-compiler's Introduction

Object-Oriented-Language-Compiler

This is a compiler for an Object Oriented language written in C++.

The following is an example program that the compiler can compile into assembly; please view the [tests page] for more examples.

class0 {
    integer	member0;

    class0(boolean arg0, integer arg1, boolean arg2) -> none {
        boolean local0;
        integer local1;
        integer i0, i1;
        
        member0 = 107;
        local1 = 244 * 4;
        local0 = 65 >= 57;
        
        i0 = -78;
        while 3 > i0 {
             i0 = i0 * 3;
        
            local0 = false;
            local1 = local1;
            i1 = 34603008;
            while i1 > 33 {
                 i1 = i1 / 4;
            
                local1 = arg1;
                local0 = arg0 and local0;
            }
        }

    }


}

class1 {
    integer	member0;

    f0(boolean arg0, boolean arg1, class0 arg2, integer arg3) -> none {
        boolean local0;
        boolean local1;
        boolean local2;
        boolean local3;
        integer local4;
        
        local4 = 91 + 242;
        local1 = 117 equals 31;
        local0 = false;
        local3 = false;
        local2 = 175 > 133;
        
        if local0 {
            if false {
                local0 = local2;
                local0 = false;
            } else {
                local4 = arg3 - 115 * arg2.member0;
                local0 = arg0;
            }
            
        }
        
        local1 = arg1;

    }

    f1() -> boolean {
        boolean local0;
        integer local1;
        integer i0;
        
        local1 = -185;
        local0 = true or true;
        
        local1 = 58;
        i0 = 400;
        while i0 >= 50 {
             i0 = i0 / 2;
        
            print local0;
            f0(false, local0, new class0(local0, member0, 227 equals local1), 65 / 62);
            local0 = local0;
        }
        print local0;
        print true;
        return local0;

    }

    f2(boolean arg0, class0 arg1, integer arg2, class0 arg3) -> boolean {
        class0 local0;
        boolean local1;
        
        local1 = false;
        local0 = new class0(not (false or true), -109, false and false);
        
        if arg2 equals local0.member0 and false {
            if true {
                f0(arg0, true, arg3, arg2);
            }
            
            f0(local0.member0 equals member0 + 135, not (false), new class0(true or false, 34, arg0), 216);
        }
        
        f0((true), false, arg3, 229 / arg2);
        return arg0;

    }

    f3(integer arg0) -> none {
        
        
        f0(f1(), true, new class0((arg0 > 44), arg0, true), arg0);

    }

    f4(integer arg0) -> integer {
        boolean local0;
        integer i0;
        
        local0 = true;
        
        i0 = -50;
        while -2 >= i0 {
             i0 = i0 + 4;
        
            print (local0);
            f0(local0, false, new class0(arg0 > member0, 180, member0 equals 71 / member0), 114);
        }
        return member0 - 128;

    }

    class1(integer arg0, integer arg1, integer arg2, integer arg3) -> none {
        integer local0;
        integer local1;
        integer i0, i1, i2, i3;
        
        member0 = 231 / 103;
        local1 = 156;
        local0 = 18;
        
        i0 = -8;
        while i0 >= -28 {
             i0 = i0 - 10;
        
            print arg1;
            i1 = 52;
            while 295 > i1 {
                 i1 = i1 * 3;
            
                local0 = 154 / 84;
            }
            f0(true, false, new class0(f2(48 > 254, new class0(40 > 82, 81, false), arg2, new class0(68 > local1, (member0), false)), member0 / member0, not (true)), arg0);
        }
        local1 = arg1;
        i2 = -69;
        while i2 > -93 {
             i2 = i2 + -6;
        
            i3 = -44;
            while 58 > i3 {
                 i3 = i3 - -6;
            
                print 222;
                f0(false or true, true, new class0(not (true), 241, arg0 equals arg2), 112);
                f0(true, not (false), new class0(false, 226, local0 equals member0), member0);
            }
            if 137 equals local1 and false {
                local1 = 236;
            } else {
                local0 = 252 - arg2;
                print arg2;
            }
            
        }

    }


}

class2 {
    class1	member0;
    integer	member1;
    integer	member2;
    integer	member3;
    boolean	member4;

    f0(integer arg0, boolean arg1, integer arg2, boolean arg3) -> boolean {
        integer local0;
        integer local1;
        integer i0, i1, i2, i3, i4;
        
        local1 = 9;
        local0 = 22;
        
        i0 = -72;
        while 18 >= i0 {
             i0 = i0 - -6;
        
            member0.f3(member3 + member2 * -118);
            member0.f0(false, member1 equals local1, new class0(member2 * 37 equals member3, 35, false), 75);
            local1 = member0.f4(144);
        }
        if not (true) {
            local1 = member1 / 73;
            local0 = 66;
            i1 = -69;
            while i1 >= -89 {
                 i1 = i1 + -2;
            
                print not (arg1);
                local1 = member0.member0;
                local1 = member0.member0;
            }
        } else {
            if member2 equals 79 {
                i2 = 85;
                while 121 >= i2 {
                     i2 = i2 + 2;
                
                    i3 = -86;
                    while i3 >= -230 {
                         i3 = i3 - 8;
                    
                        i4 = 73;
                        while i4 >= -22 {
                             i4 = i4 + -5;
                        
                            local0 = member2 / member3;
                            member0.f0(false and true, arg3, new class0(member0.f1(), member3, arg3), member1);
                        }
                    }
                    member0.f0(member0.member0 >= 99, arg3, new class0(false, arg0, arg3), 100);
                }
                print arg2;
                print 158 - member2;
            } else {
                local0 = arg0;
            }
            
            local0 = arg0 + 3;
            print local1;
        }
        
        return arg1;

    }

    f1(boolean arg0, integer arg1, boolean arg2, integer arg3, class1 arg4) -> boolean {
        integer local0;
        integer i0;
        
        local0 = 103 + 193;
        
        if true {
            arg4.f3(arg3 * member2);
            local0 = 131;
        }
        
        arg4.f0(arg3 equals (member1), member4, new class0(arg4.f2(((member4)), new class0(20 > member2, arg1, true), 64, new class0((false), 158, member4)), 134, arg0), -178);
        local0 = member2;
        i0 = 61;
        while 1085 >= i0 {
             i0 = i0 * 4;
        
            local0 = arg4.member0;
            arg4.f3(120 - 119);
        }
        return true;

    }

    f2(integer arg0, boolean arg1) -> integer {
        boolean local0;
        boolean local1;
        integer i0;
        
        local1 = false;
        local0 = 13 >= 78;
        
        member0.f3(member0.member0 * member0.member0);
        if local1 {
            i0 = -30;
            while 994 >= i0 {
                 i0 = i0 * 2;
            
                member0.f0(175 + 0 > member0.member0, local0, new class0(false, member0.f4(135), false and true), 82);
            }
            local1 = true;
        }
        
        local0 = member2 > 237;
        print -member3;
        return member1;

    }

    f3(integer arg0) -> boolean {
        
        
        print false;
        print arg0;
        print 69;
        return true;

    }

    f4(integer arg0) -> class0 {
        integer local0;
        class0 local1;
        class1 local2;
        boolean local3;
        integer local4;
        integer i0, i1, i2;
        
        local4 = 176;
        local1 = new class0(true, 130 * 167, 54 - 116 >=127 );
        local0 = 195;
        local3 = 18 equals 139;
        local2 = new class1(80, 164 * 106 * 93, 182, 121);
        
        i0 = -52;
        while i0 > -54 {
             i0 = i0 + -2;
        
            print member4;
        }
        if arg0 equals local0 {
            i1 = 20971520;
            while i1 >= 80 {
                 i1 = i1 / 4;
            
                print 59 > 128;
            }
            local2.member0 = 251 + -148;
            if member4 {
                local3 = member4;
                i2 = -48;
                while i2 > -132 {
                     i2 = i2 + -6;
                
                    print 247 >= 105;
                }
            } else {
                local0 = 105;
                print member4 and true;
                if member4 and member4 {
                    local4 = f2(142, true or local3 or false) - 169;
                    local1.member0 = 184;
                }
                
            }
            
        } else {
            local2.member0 = 103;
        }
        
        print 224 / 67;
        return local1;

    }

    class2() -> none {
        integer local0;
        integer local1;
        boolean local2;
        integer local3;
        integer local4;
        
        member4 = 61 > 98;
        member1 = 57 - 54;
        member0 = new class1(204, -172, 115, 69 - (123));
        member3 = 138;
        member2 = 55 - 239;
        local4 = 253 / 171;
        local1 = 119;
        local0 = 26;
        local3 = 19;
        local2 = true;
        
        member0.f0((member4), member4, new class0(11 equals local3, local3, local2 or local2), -108);
        print 246 / member3;

    }


}

Main {


    main() -> none {
        boolean local0;
        integer local1;
        class0 local2;
        integer local3;
        integer i0, i1;
        
        local1 = 201;
        local0 = 29 equals 26;
        local3 = 173 + 67;
        local2 = new class0(false, 59, (true));
        
        i0 = 160;
        while i0 >= 10 {
             i0 = i0 / 4;
        
            print -59;
            print local1;
            if local0 {
                local2.member0 = 84;
            } else {
                print (47);
                local0 = local0;
                i1 = 3;
                while 1027 > i1 {
                     i1 = i1 * 2;
                
                    local2.member0 = 33;
                }
            }
            
        }
        if local0 {
            local2.member0 = (68);
            if local1 + 255 > local1 {
                local0 = local0;
            }
            
        }
        
        local3 = local1;
        if local0 {
            local3 = 54;
        }
        
        print local0;
        print false;

    }


}~~~

object-oriented-language-compiler's People

Contributors

mishaobu avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.