Skip to content

Commit 4cfc041

Browse files
committed
Add Class getters and setters.
1 parent bedbb53 commit 4cfc041

File tree

2 files changed

+27
-2
lines changed

2 files changed

+27
-2
lines changed

src/main/java/org/luapp/language/handlers/ClassGetSetHandler.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package org.luapp.language.handlers;
22

33
import org.antlr.v4.runtime.ParserRuleContext;
4+
import org.antlr.v4.runtime.tree.ParseTree;
5+
import org.antlr.v4.runtime.tree.TerminalNodeImpl;
46
import org.luapp.language.generator.luappParser;
57
import org.luapp.language.listeners.LuaPPListener;
68

@@ -17,6 +19,29 @@ public void onSetManager() {
1719

1820
@Override
1921
public void onEnterContext(ParserRuleContext enterContext) {
22+
luappParser.ClassgetsetContext ctx = (luappParser.ClassgetsetContext)enterContext;
23+
24+
ParseTree name = ctx.getChild(0);
25+
String nameText = name.getText();
26+
27+
for (int i=2; i < ctx.getChildCount(); i++) {
28+
ParseTree getset = ctx.getChild(i);
29+
if(getset == null){
30+
return;
31+
}
32+
if(getset instanceof TerminalNodeImpl) continue;
33+
if(((ParserRuleContext)getset).getRuleIndex() == luappParser.RULE_classgetorset){
34+
String getSet = getset.getText();
35+
if(getSet.equals("get")){
36+
this.addToLuaPPResult("function " + this.getLuaPP().currentClass + ":get_" + nameText + "()" +
37+
"\n\treturn self." + nameText + "\nend" );
38+
}else if(getSet.equals("set")){
39+
this.addToLuaPPResult("function " + this.getLuaPP().currentClass + ":set_" + nameText + "(obj)" +
40+
"\n\tself." + nameText + " = obj\nend" );
41+
}
42+
}
43+
}
44+
2045

2146
}
2247

src/main/java/org/luapp/language/listeners/MasterLuaPPListener.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -424,12 +424,12 @@ public void exitClassgetorset(luappParser.ClassgetorsetContext ctx) {
424424

425425
@Override
426426
public void enterClassgetset(luappParser.ClassgetsetContext ctx) {
427-
427+
Main.luaPPInstance.handleEnterContext(ctx);
428428
}
429429

430430
@Override
431431
public void exitClassgetset(luappParser.ClassgetsetContext ctx) {
432-
432+
Main.luaPPInstance.handleExitContext(ctx);
433433
}
434434

435435
@Override

0 commit comments

Comments
 (0)