mirror of
https://github.com/adelphes/android-dev-ext.git
synced 2025-12-23 09:59:25 +00:00
extract expression types into separate files
This commit is contained in:
18
langserver/java/expressiontypes/ArrayIndexExpression.js
Normal file
18
langserver/java/expressiontypes/ArrayIndexExpression.js
Normal file
@@ -0,0 +1,18 @@
|
||||
/**
|
||||
* @typedef {import('../body-types').ResolvedIdent} ResolvedIdent
|
||||
*/
|
||||
const { Expression } = require("./Expression");
|
||||
|
||||
class ArrayIndexExpression extends Expression {
|
||||
/**
|
||||
* @param {ResolvedIdent} instance
|
||||
* @param {ResolvedIdent} index
|
||||
*/
|
||||
constructor(instance, index) {
|
||||
super();
|
||||
this.instance = instance;
|
||||
this.index = index;
|
||||
}
|
||||
}
|
||||
|
||||
exports.ArrayIndexExpression = ArrayIndexExpression;
|
||||
21
langserver/java/expressiontypes/BinaryOpExpression.js
Normal file
21
langserver/java/expressiontypes/BinaryOpExpression.js
Normal file
@@ -0,0 +1,21 @@
|
||||
/**
|
||||
* @typedef {import('../body-types').ResolvedIdent} ResolvedIdent
|
||||
* @typedef {import('../tokenizer').Token} Token
|
||||
*/
|
||||
const { Expression } = require("./Expression");
|
||||
|
||||
class BinaryOpExpression extends Expression {
|
||||
/**
|
||||
* @param {ResolvedIdent} lhs
|
||||
* @param {Token} op
|
||||
* @param {ResolvedIdent} rhs
|
||||
*/
|
||||
constructor(lhs, op, rhs) {
|
||||
super();
|
||||
this.lhs = lhs;
|
||||
this.op = op;
|
||||
this.rhs = rhs;
|
||||
}
|
||||
}
|
||||
|
||||
exports.BinaryOpExpression = BinaryOpExpression;
|
||||
16
langserver/java/expressiontypes/BracketedExpression.js
Normal file
16
langserver/java/expressiontypes/BracketedExpression.js
Normal file
@@ -0,0 +1,16 @@
|
||||
/**
|
||||
* @typedef {import('../body-types').ResolvedIdent} ResolvedIdent
|
||||
*/
|
||||
const { Expression } = require("./Expression");
|
||||
|
||||
class BracketedExpression extends Expression {
|
||||
/**
|
||||
* @param {ResolvedIdent} expression
|
||||
*/
|
||||
constructor(expression) {
|
||||
super();
|
||||
this.expression = expression;
|
||||
}
|
||||
}
|
||||
|
||||
exports.BracketedExpression = BracketedExpression;
|
||||
18
langserver/java/expressiontypes/CastExpression.js
Normal file
18
langserver/java/expressiontypes/CastExpression.js
Normal file
@@ -0,0 +1,18 @@
|
||||
/**
|
||||
* @typedef {import('../body-types').ResolvedIdent} ResolvedIdent
|
||||
*/
|
||||
const { Expression } = require("./Expression");
|
||||
|
||||
class CastExpression extends Expression {
|
||||
/**
|
||||
* @param {ResolvedIdent} castType
|
||||
* @param {ResolvedIdent} expression
|
||||
*/
|
||||
constructor(castType, expression) {
|
||||
super();
|
||||
this.castType = castType;
|
||||
this.expression = expression;
|
||||
}
|
||||
}
|
||||
|
||||
exports.CastExpression = CastExpression;
|
||||
18
langserver/java/expressiontypes/ClassMemberExpression.js
Normal file
18
langserver/java/expressiontypes/ClassMemberExpression.js
Normal file
@@ -0,0 +1,18 @@
|
||||
/**
|
||||
* @typedef {import('../body-types').ResolvedIdent} ResolvedIdent
|
||||
* @typedef {import('../tokenizer').Token} Token
|
||||
*/
|
||||
const { Expression } = require("./Expression");
|
||||
|
||||
class ClassMemberExpression extends Expression {
|
||||
/**
|
||||
* @param {ResolvedIdent} instance
|
||||
* @param {Token} class_token
|
||||
*/
|
||||
constructor(instance, class_token) {
|
||||
super();
|
||||
this.instance = instance;
|
||||
this.classToken = class_token;
|
||||
}
|
||||
}
|
||||
exports.ClassMemberExpression = ClassMemberExpression;
|
||||
6
langserver/java/expressiontypes/Expression.js
Normal file
6
langserver/java/expressiontypes/Expression.js
Normal file
@@ -0,0 +1,6 @@
|
||||
const { ValueBase } = require("../body-types");
|
||||
|
||||
class Expression extends ValueBase {
|
||||
}
|
||||
|
||||
exports.Expression = Expression;
|
||||
21
langserver/java/expressiontypes/IncDecExpression.js
Normal file
21
langserver/java/expressiontypes/IncDecExpression.js
Normal file
@@ -0,0 +1,21 @@
|
||||
/**
|
||||
* @typedef {import('../body-types').ResolvedIdent} ResolvedIdent
|
||||
* @typedef {import('../tokenizer').Token} Token
|
||||
*/
|
||||
const { Expression } = require("./Expression");
|
||||
|
||||
class IncDecExpression extends Expression {
|
||||
/**
|
||||
* @param {ResolvedIdent} expr
|
||||
* @param {Token} operator
|
||||
* @param {'prefix'|'postfix'} which
|
||||
*/
|
||||
constructor(expr, operator, which) {
|
||||
super();
|
||||
this.expr = expr;
|
||||
this.operator = operator;
|
||||
this.which = which;
|
||||
}
|
||||
}
|
||||
|
||||
exports.IncDecExpression = IncDecExpression;
|
||||
19
langserver/java/expressiontypes/LambdaExpression.js
Normal file
19
langserver/java/expressiontypes/LambdaExpression.js
Normal file
@@ -0,0 +1,19 @@
|
||||
/**
|
||||
* @typedef {import('../body-types').ResolvedIdent} ResolvedIdent
|
||||
* @typedef {import('../tokenizer').Token} Token
|
||||
*/
|
||||
const { Expression } = require("./Expression");
|
||||
|
||||
class LambdaExpression extends Expression {
|
||||
/**
|
||||
*
|
||||
* @param {*[]} params
|
||||
* @param {Expression|Block} body
|
||||
*/
|
||||
constructor(params, body) {
|
||||
super();
|
||||
this.params = params;
|
||||
this.body = body;
|
||||
}
|
||||
}
|
||||
exports.LambdaExpression = LambdaExpression;
|
||||
20
langserver/java/expressiontypes/MemberExpression.js
Normal file
20
langserver/java/expressiontypes/MemberExpression.js
Normal file
@@ -0,0 +1,20 @@
|
||||
/**
|
||||
* @typedef {import('../body-types').ResolvedIdent} ResolvedIdent
|
||||
* @typedef {import('../tokenizer').Token} Token
|
||||
*/
|
||||
const { Expression } = require("./Expression");
|
||||
|
||||
class MemberExpression extends Expression {
|
||||
/**
|
||||
* @param {ResolvedIdent} instance
|
||||
* @param {Token|null} member
|
||||
*/
|
||||
constructor(instance, member) {
|
||||
super();
|
||||
this.instance = instance;
|
||||
// member will be null for incomplete expressions
|
||||
this.member = member;
|
||||
}
|
||||
}
|
||||
|
||||
exports.MemberExpression = MemberExpression;
|
||||
18
langserver/java/expressiontypes/MethodCallExpression.js
Normal file
18
langserver/java/expressiontypes/MethodCallExpression.js
Normal file
@@ -0,0 +1,18 @@
|
||||
/**
|
||||
* @typedef {import('../body-types').ResolvedIdent} ResolvedIdent
|
||||
*/
|
||||
const { Expression } = require("./Expression");
|
||||
|
||||
class MethodCallExpression extends Expression {
|
||||
/**
|
||||
* @param {ResolvedIdent} instance
|
||||
* @param {ResolvedIdent[]} args
|
||||
*/
|
||||
constructor(instance, args) {
|
||||
super();
|
||||
this.instance = instance;
|
||||
this.args = args;
|
||||
}
|
||||
}
|
||||
|
||||
exports.MethodCallExpression = MethodCallExpression;
|
||||
20
langserver/java/expressiontypes/TernaryOpExpression.js
Normal file
20
langserver/java/expressiontypes/TernaryOpExpression.js
Normal file
@@ -0,0 +1,20 @@
|
||||
/**
|
||||
* @typedef {import('../body-types').ResolvedIdent} ResolvedIdent
|
||||
*/
|
||||
const { Expression } = require("./Expression");
|
||||
|
||||
class TernaryOpExpression extends Expression {
|
||||
/**
|
||||
* @param {ResolvedIdent} test
|
||||
* @param {ResolvedIdent} truthExpression
|
||||
* @param {ResolvedIdent} falseExpression
|
||||
*/
|
||||
constructor(test, truthExpression, falseExpression) {
|
||||
super();
|
||||
this.test = test;
|
||||
this.truthExpression = truthExpression;
|
||||
this.falseExpression = falseExpression;
|
||||
}
|
||||
}
|
||||
|
||||
exports.TernaryOpExpression = TernaryOpExpression;
|
||||
19
langserver/java/expressiontypes/ThisMemberExpression.js
Normal file
19
langserver/java/expressiontypes/ThisMemberExpression.js
Normal file
@@ -0,0 +1,19 @@
|
||||
/**
|
||||
* @typedef {import('../body-types').ResolvedIdent} ResolvedIdent
|
||||
* @typedef {import('../tokenizer').Token} Token
|
||||
*/
|
||||
const { Expression } = require("./Expression");
|
||||
|
||||
class ThisMemberExpression extends Expression {
|
||||
/**
|
||||
* @param {ResolvedIdent} instance
|
||||
* @param {Token} this_token
|
||||
*/
|
||||
constructor(instance, this_token) {
|
||||
super();
|
||||
this.instance = instance;
|
||||
this.thisToken = this_token;
|
||||
}
|
||||
}
|
||||
|
||||
exports.ThisMemberExpression = ThisMemberExpression;
|
||||
Reference in New Issue
Block a user