Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

J2EO & Polystat compatibility. Declarations #27

Open
someilay opened this issue May 27, 2022 · 0 comments
Open

J2EO & Polystat compatibility. Declarations #27

someilay opened this issue May 27, 2022 · 0 comments

Comments

@someilay
Copy link

Declarations

Normal class declarations (without generics):

Java:

public class A extends B { }

Eo:

[] > class__A
  class__Object > super
  super > @
  [] > new
    [] > this
      class__Object.new > super
      super > @
      "class__A" > className
      [this] > init
        seq > @
          TRUE
    seq > @
      this
  # null :: null -> void
  [this] > constructor
    seq > @
      initialization
      s1471868639
      this
    [] > initialization
      this.init > @
        this
    [] > s1471868639
      super.constructor > @
        this

Nested normal class declarations (without generics) are supposed to be a static:

Java:

public class Main {
    static class Inner {}
}

Eo:

[] > class__Main
  class__Object > super
  super > @
  [] > new
    [] > this
      class__Object.new > super
      super > @
      "class__Main" > className
      [this] > init
        seq > @
          TRUE
    seq > @
      this
  [] > class__Inner
    class__Object > super
    super > @
    [] > new
      [] > this
        class__Object.new > super
        super > @
        "class__Inner" > className
        [this] > init
          seq > @
            TRUE
      seq > @
        this
    # null :: null -> void
    [this] > constructor
      seq > @
        initialization
        s724125922
        this
      [] > initialization
        this.init > @
          this
      [] > s724125922
        super.constructor > @
          this
  # null :: null -> void
  [this] > constructor
    seq > @
      initialization
      s1846412426
      this
    [] > initialization
      this.init > @
        this
    [] > s1846412426
      super.constructor > @
        this

Method declarations (without generics):

Java:

public int f(int a, B b) {
    return a + b.v;
}
...
public static int g(int a, int b) {
    return a * b;
}

Eo:

[this a b] > f
  seq > @
    s1073533248
  [] > s1073533248
    b1782148126 > @
  [] > b1782148126
    s_r306206744.add > @
      f_a827084938
  [] > s_r306206744
    a > @
  [] > f_a827084938
    s_r280265505.v > @
  [] > s_r280265505
    b > @
...
[a b] > g
  seq > @
    s1607305514
  [] > s1607305514
    b40472007 > @
  [] > b40472007
    s_r398110318.mul > @
      s_r1765250898
  [] > s_r398110318
    a > @
  [] > s_r1765250898
    b > @

Constructor declarations with explicit super call:

Java:

public A(int a, int b) {
    super(a);
    this.v = a + b;
}

Eo:

[this a b] > constructor
  seq > @
    initialization
    s1392906938
    s1485697819
    this
  [] > initialization
    this.init > @
      this
  [] > s1392906938
    super.constructor > @
      this
      s_r660879561
  [] > s_r660879561
    a > @
  [] > s1485697819
    f_a2007331442.write > @
      b1904324159
  [] > f_a2007331442
    t1176735295.v > @
  [] > t1176735295
    this > @
  [] > b1904324159
    s_r1848415041.add > @
      s_r843467284
  [] > s_r1848415041
    a > @
  [] > s_r843467284
      b > @

Variable declarations (without var and non-static):

Java:

A a;
int b;
C c = new C();
float d = 1.9 + f;

Eo:

seq > @
  d1849201180
  d1691875296
  d667346055
  d1366025231
cage > a
[] > d1849201180
  TRUE > @
prim__int.constructor_1 > b
  prim__int.new
[] > d1691875296
  TRUE > @
cage > c
[] > d667346055
  c.write > @
    i_s1669712678
[] > i_s1669712678
  inst513700442 > @
[] > inst513700442
  C.constructor > @
    C.new
prim__float.constructor_1 > d
  prim__float.new
[] > d1366025231
  d.write > @
    i_s1007309018
[] > i_s1007309018
  b1684792003 > @
[] > b1684792003
  l2008966511.add > @
    s_r433874882
[] > l2008966511
  prim__float.constructor_2 > @
    prim__float.new
    1.9
[] > s_r433874882
  f > @
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant