mirror of
https://github.com/adelphes/android-dev-ext.git
synced 2025-12-23 01:48:18 +00:00
extract statement types into separate files
This commit is contained in:
@@ -16,6 +16,7 @@ const { TokenList } = require("./TokenList");
|
|||||||
const { AnyMethod, AnyType, AnyValue, ArrayLiteral, Label, LiteralNumber, LiteralValue, Local,
|
const { AnyMethod, AnyType, AnyValue, ArrayLiteral, Label, LiteralNumber, LiteralValue, Local,
|
||||||
MethodDeclarations, ResolvedIdent, Value, } = require("./body-types");
|
MethodDeclarations, ResolvedIdent, Value, } = require("./body-types");
|
||||||
const { resolveImports, resolveSingleImport } = require('../java/import-resolver');
|
const { resolveImports, resolveSingleImport } = require('../java/import-resolver');
|
||||||
|
|
||||||
const { ArrayIndexExpression } = require("./expressiontypes/ArrayIndexExpression");
|
const { ArrayIndexExpression } = require("./expressiontypes/ArrayIndexExpression");
|
||||||
const { BinaryOpExpression } = require("./expressiontypes/BinaryOpExpression");
|
const { BinaryOpExpression } = require("./expressiontypes/BinaryOpExpression");
|
||||||
const { BracketedExpression } = require("./expressiontypes/BracketedExpression");
|
const { BracketedExpression } = require("./expressiontypes/BracketedExpression");
|
||||||
@@ -28,6 +29,22 @@ const { MethodCallExpression } = require("./expressiontypes/MethodCallExpression
|
|||||||
const { TernaryOpExpression } = require("./expressiontypes/TernaryOpExpression");
|
const { TernaryOpExpression } = require("./expressiontypes/TernaryOpExpression");
|
||||||
const { ThisMemberExpression } = require("./expressiontypes/ThisMemberExpression");
|
const { ThisMemberExpression } = require("./expressiontypes/ThisMemberExpression");
|
||||||
|
|
||||||
|
const { AssertStatement } = require("./statementtypes/AssertStatement");
|
||||||
|
const { Block } = require("./statementtypes/Block");
|
||||||
|
const { BreakStatement } = require("./statementtypes/BreakStatement");
|
||||||
|
const { ContinueStatement } = require("./statementtypes/ContinueStatement");
|
||||||
|
const { DoStatement } = require("./statementtypes/DoStatement");
|
||||||
|
const { EmptyStatement } = require("./statementtypes/EmptyStatement");
|
||||||
|
const { ForStatement } = require("./statementtypes/ForStatement");
|
||||||
|
const { IfStatement } = require("./statementtypes/IfStatement");
|
||||||
|
const { InvalidStatement } = require("./statementtypes/InvalidStatement");
|
||||||
|
const { ReturnStatement } = require("./statementtypes/ReturnStatement");
|
||||||
|
const { SwitchStatement } = require("./statementtypes/SwitchStatement");
|
||||||
|
const { SynchronizedStatement } = require("./statementtypes/SynchronizedStatement");
|
||||||
|
const { ThrowStatement } = require("./statementtypes/ThrowStatement");
|
||||||
|
const { TryStatement } = require("./statementtypes/TryStatement");
|
||||||
|
const { WhileStatement } = require("./statementtypes/WhileStatement");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @typedef {SourceMethod|SourceConstructor|SourceInitialiser} SourceMC
|
* @typedef {SourceMethod|SourceConstructor|SourceInitialiser} SourceMC
|
||||||
* @typedef {SourceType|SourceMC} Scope
|
* @typedef {SourceType|SourceMC} Scope
|
||||||
@@ -424,73 +441,6 @@ function statement(tokens, mdecls, method, imports, typemap) {
|
|||||||
return new InvalidStatement();
|
return new InvalidStatement();
|
||||||
}
|
}
|
||||||
|
|
||||||
class Statement {}
|
|
||||||
class EmptyStatement extends Statement {}
|
|
||||||
class SwitchStatement extends Statement {
|
|
||||||
/** @type {ResolvedIdent} */
|
|
||||||
test = null;
|
|
||||||
cases = [];
|
|
||||||
caseBlocks = [];
|
|
||||||
}
|
|
||||||
class Block extends Statement {
|
|
||||||
statements = [];
|
|
||||||
}
|
|
||||||
class TryStatement extends Statement {
|
|
||||||
resources = [];
|
|
||||||
block = null;
|
|
||||||
catches = [];
|
|
||||||
}
|
|
||||||
class IfStatement extends Statement {
|
|
||||||
test = null;
|
|
||||||
statement = null;
|
|
||||||
elseStatement = null;
|
|
||||||
}
|
|
||||||
class WhileStatement extends Statement {
|
|
||||||
test = null;
|
|
||||||
statement = null;
|
|
||||||
}
|
|
||||||
class BreakStatement extends Statement {
|
|
||||||
/** @type {Token} */
|
|
||||||
target = null;
|
|
||||||
}
|
|
||||||
class ContinueStatement extends Statement {
|
|
||||||
/** @type {Token} */
|
|
||||||
target = null;
|
|
||||||
}
|
|
||||||
class DoStatement extends Statement {
|
|
||||||
test = null;
|
|
||||||
block = null;
|
|
||||||
}
|
|
||||||
class ReturnStatement extends Statement {
|
|
||||||
expression = null;
|
|
||||||
}
|
|
||||||
class ThrowStatement extends Statement {
|
|
||||||
expression = null;
|
|
||||||
}
|
|
||||||
class InvalidStatement extends Statement {}
|
|
||||||
class ForStatement extends Statement {
|
|
||||||
/** @type {ResolvedIdent[] | Local[]} */
|
|
||||||
init = null;
|
|
||||||
/** @type {ResolvedIdent} */
|
|
||||||
test = null;
|
|
||||||
/** @type {ResolvedIdent[]} */
|
|
||||||
update = null;
|
|
||||||
/** @type {ResolvedIdent} */
|
|
||||||
iterable = null;
|
|
||||||
/** @type {Statement} */
|
|
||||||
statement = null;
|
|
||||||
}
|
|
||||||
class SynchronizedStatement extends Statement {
|
|
||||||
/** @type {ResolvedIdent} */
|
|
||||||
expression = null;
|
|
||||||
/** @type {Statement} */
|
|
||||||
statement = null;
|
|
||||||
}
|
|
||||||
class AssertStatement extends Statement {
|
|
||||||
expression = null;
|
|
||||||
message = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {Token[]} modifiers
|
* @param {Token[]} modifiers
|
||||||
* @param {TokenList} tokens
|
* @param {TokenList} tokens
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* @typedef {import('../body-types').ResolvedIdent} ResolvedIdent
|
* @typedef {import('../body-types').ResolvedIdent} ResolvedIdent
|
||||||
* @typedef {import('../tokenizer').Token} Token
|
* @typedef {import('../statementtypes/Block').Block} Block
|
||||||
*/
|
*/
|
||||||
const { Expression } = require("./Expression");
|
const { Expression } = require("./Expression");
|
||||||
|
|
||||||
|
|||||||
8
langserver/java/statementtypes/AssertStatement.js
Normal file
8
langserver/java/statementtypes/AssertStatement.js
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
const { Statement } = require("./Statement");
|
||||||
|
|
||||||
|
class AssertStatement extends Statement {
|
||||||
|
expression = null;
|
||||||
|
message = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
exports.AssertStatement = AssertStatement;
|
||||||
8
langserver/java/statementtypes/Block.js
Normal file
8
langserver/java/statementtypes/Block.js
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
const { Statement } = require("./Statement");
|
||||||
|
|
||||||
|
class Block extends Statement {
|
||||||
|
/** @type {Statement[]} */
|
||||||
|
statements = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
exports.Block = Block;
|
||||||
11
langserver/java/statementtypes/BreakStatement.js
Normal file
11
langserver/java/statementtypes/BreakStatement.js
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
/**
|
||||||
|
* @typedef {import('../tokenizer').Token} Token
|
||||||
|
*/
|
||||||
|
const { Statement } = require("./Statement");
|
||||||
|
|
||||||
|
class BreakStatement extends Statement {
|
||||||
|
/** @type {Token} */
|
||||||
|
target = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
exports.BreakStatement = BreakStatement;
|
||||||
11
langserver/java/statementtypes/ContinueStatement.js
Normal file
11
langserver/java/statementtypes/ContinueStatement.js
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
/**
|
||||||
|
* @typedef {import('../tokenizer').Token} Token
|
||||||
|
*/
|
||||||
|
const { Statement } = require("./Statement");
|
||||||
|
|
||||||
|
class ContinueStatement extends Statement {
|
||||||
|
/** @type {Token} */
|
||||||
|
target = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
exports.ContinueStatement = ContinueStatement;
|
||||||
14
langserver/java/statementtypes/DoStatement.js
Normal file
14
langserver/java/statementtypes/DoStatement.js
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
/**
|
||||||
|
* @typedef {import('../body-types').ResolvedIdent} ResolvedIdent
|
||||||
|
* @typedef {import('./Block').Block} Block
|
||||||
|
*/
|
||||||
|
const { Statement } = require("./Statement");
|
||||||
|
|
||||||
|
class DoStatement extends Statement {
|
||||||
|
/** @type {ResolvedIdent} */
|
||||||
|
test = null;
|
||||||
|
/** @type {Block} */
|
||||||
|
block = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
exports.DoStatement = DoStatement;
|
||||||
6
langserver/java/statementtypes/EmptyStatement.js
Normal file
6
langserver/java/statementtypes/EmptyStatement.js
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
const { Statement } = require("./Statement");
|
||||||
|
|
||||||
|
class EmptyStatement extends Statement {
|
||||||
|
}
|
||||||
|
|
||||||
|
exports.EmptyStatement = EmptyStatement;
|
||||||
21
langserver/java/statementtypes/ForStatement.js
Normal file
21
langserver/java/statementtypes/ForStatement.js
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
/**
|
||||||
|
* @typedef {import('../body-types').Local} Local
|
||||||
|
* @typedef {import('../body-types').ResolvedIdent} ResolvedIdent
|
||||||
|
* @typedef {import('../tokenizer').Token} Token
|
||||||
|
*/
|
||||||
|
const { Statement } = require("./Statement");
|
||||||
|
|
||||||
|
class ForStatement extends Statement {
|
||||||
|
/** @type {ResolvedIdent[] | Local[]} */
|
||||||
|
init = null;
|
||||||
|
/** @type {ResolvedIdent} */
|
||||||
|
test = null;
|
||||||
|
/** @type {ResolvedIdent[]} */
|
||||||
|
update = null;
|
||||||
|
/** @type {ResolvedIdent} */
|
||||||
|
iterable = null;
|
||||||
|
/** @type {Statement} */
|
||||||
|
statement = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
exports.ForStatement = ForStatement;
|
||||||
15
langserver/java/statementtypes/IfStatement.js
Normal file
15
langserver/java/statementtypes/IfStatement.js
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
/**
|
||||||
|
* @typedef {import('../body-types').ResolvedIdent} ResolvedIdent
|
||||||
|
*/
|
||||||
|
const { Statement } = require("./Statement");
|
||||||
|
|
||||||
|
class IfStatement extends Statement {
|
||||||
|
/** @type {ResolvedIdent} */
|
||||||
|
test = null;
|
||||||
|
/** @type {Statement} */
|
||||||
|
statement = null;
|
||||||
|
/** @type {Statement} */
|
||||||
|
elseStatement = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
exports.IfStatement = IfStatement;
|
||||||
6
langserver/java/statementtypes/InvalidStatement.js
Normal file
6
langserver/java/statementtypes/InvalidStatement.js
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
const { Statement } = require("./Statement");
|
||||||
|
|
||||||
|
class InvalidStatement extends Statement {
|
||||||
|
}
|
||||||
|
|
||||||
|
exports.InvalidStatement = InvalidStatement;
|
||||||
11
langserver/java/statementtypes/ReturnStatement.js
Normal file
11
langserver/java/statementtypes/ReturnStatement.js
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
/**
|
||||||
|
* @typedef {import('../body-types').ResolvedIdent} ResolvedIdent
|
||||||
|
*/
|
||||||
|
const { Statement } = require("./Statement");
|
||||||
|
|
||||||
|
class ReturnStatement extends Statement {
|
||||||
|
/** @type {ResolvedIdent} */
|
||||||
|
expression = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
exports.ReturnStatement = ReturnStatement;
|
||||||
4
langserver/java/statementtypes/Statement.js
Normal file
4
langserver/java/statementtypes/Statement.js
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
class Statement {
|
||||||
|
}
|
||||||
|
|
||||||
|
exports.Statement = Statement;
|
||||||
13
langserver/java/statementtypes/SwitchStatement.js
Normal file
13
langserver/java/statementtypes/SwitchStatement.js
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
/**
|
||||||
|
* @typedef {import('../body-types').ResolvedIdent} ResolvedIdent
|
||||||
|
*/
|
||||||
|
const { Statement } = require("./Statement");
|
||||||
|
|
||||||
|
class SwitchStatement extends Statement {
|
||||||
|
/** @type {ResolvedIdent} */
|
||||||
|
test = null;
|
||||||
|
cases = [];
|
||||||
|
caseBlocks = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
exports.SwitchStatement = SwitchStatement;
|
||||||
13
langserver/java/statementtypes/SynchronizedStatement.js
Normal file
13
langserver/java/statementtypes/SynchronizedStatement.js
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
/**
|
||||||
|
* @typedef {import('../body-types').ResolvedIdent} ResolvedIdent
|
||||||
|
*/
|
||||||
|
const { Statement } = require("./Statement");
|
||||||
|
|
||||||
|
class SynchronizedStatement extends Statement {
|
||||||
|
/** @type {ResolvedIdent} */
|
||||||
|
expression = null;
|
||||||
|
/** @type {Statement} */
|
||||||
|
statement = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
exports.SynchronizedStatement = SynchronizedStatement;
|
||||||
11
langserver/java/statementtypes/ThrowStatement.js
Normal file
11
langserver/java/statementtypes/ThrowStatement.js
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
/**
|
||||||
|
* @typedef {import('../body-types').ResolvedIdent} ResolvedIdent
|
||||||
|
*/
|
||||||
|
const { Statement } = require("./Statement");
|
||||||
|
|
||||||
|
class ThrowStatement extends Statement {
|
||||||
|
/** @type {ResolvedIdent} */
|
||||||
|
expression = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
exports.ThrowStatement = ThrowStatement;
|
||||||
15
langserver/java/statementtypes/TryStatement.js
Normal file
15
langserver/java/statementtypes/TryStatement.js
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
/**
|
||||||
|
* @typedef {import('../body-types').ResolvedIdent} ResolvedIdent
|
||||||
|
* @typedef {import('./Block').Block} Block
|
||||||
|
*/
|
||||||
|
const { Statement } = require("./Statement");
|
||||||
|
|
||||||
|
class TryStatement extends Statement {
|
||||||
|
/** @type {ResolvedIdent[]} */
|
||||||
|
resources = [];
|
||||||
|
/** @type {Block} */
|
||||||
|
block = null;
|
||||||
|
catches = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
exports.TryStatement = TryStatement;
|
||||||
14
langserver/java/statementtypes/WhileStatement.js
Normal file
14
langserver/java/statementtypes/WhileStatement.js
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
/**
|
||||||
|
* @typedef {import('../body-types').ResolvedIdent} ResolvedIdent
|
||||||
|
* @typedef {import('./Block').Block} Block
|
||||||
|
*/
|
||||||
|
const { Statement } = require("./Statement");
|
||||||
|
|
||||||
|
class WhileStatement extends Statement {
|
||||||
|
/** @type {ResolvedIdent} */
|
||||||
|
test = null;
|
||||||
|
/** @type {Statement} */
|
||||||
|
statement = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
exports.WhileStatement = WhileStatement;
|
||||||
Reference in New Issue
Block a user