Class WatParser
- java.lang.Object
-
- de.inetsoftware.jwebassembly.module.WasmCodeBuilder
-
- de.inetsoftware.jwebassembly.watparser.WatParser
-
public class WatParser extends WasmCodeBuilder
Parser for text format of a function.
-
-
Constructor Summary
Constructors Constructor Description WatParser()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private intaddMemoryInstruction(MemoryOperator op, ValueType type, java.util.List<java.lang.String> tokens, int i, int lineNumber)Parse the optional tokens of a load memory instruction and add it.private java.lang.Stringget(java.util.List<java.lang.String> tokens, int idx)Get the token at given positionprivate intgetInt(java.util.List<java.lang.String> tokens, int idx)Get the token at given position as int.voidparse(java.lang.String wat, MethodInfo method, java.util.Iterator<AnyType> signature, int lineNumber)Parse the given wasm text format and generate a list of WasmInstuctionsprivate java.util.List<java.lang.String>splitTokens(java.lang.String wat)Split the string in tokens.-
Methods inherited from class de.inetsoftware.jwebassembly.module.WasmCodeBuilder
addArrayInstruction, addBlockInstruction, addCallInstruction, addCallInterfaceInstruction, addCallVirtualInstruction, addConstInstruction, addConstInstruction, addConvertInstruction, addDupInstruction, addDupX1Instruction, addDupX2Instruction, addGlobalInstruction, addGlobalInstruction, addInvokeDynamic, addJumpPlaceholder, addLoadStoreInstruction, addLocalInstruction, addMemoryInstruction, addMultiNewArrayInstruction, addMultiNewArrayInstruction, addNopInstruction, addNumericInstruction, addStructInstruction, addTableInstruction, calculateVariables, getTypeManager, reset
-
-
-
-
Method Detail
-
parse
public void parse(java.lang.String wat, MethodInfo method, java.util.Iterator<AnyType> signature, int lineNumber)Parse the given wasm text format and generate a list of WasmInstuctions- Parameters:
wat- the text format content of a functionmethod- the method with signature as fallback for a missing variable tablesignature- alternative for method signature, can be null if method is setlineNumber- the line number for an error message
-
getInt
private int getInt(java.util.List<java.lang.String> tokens, @Nonnegative int idx)Get the token at given position as int.- Parameters:
tokens- the token listidx- the position in the tokens- Returns:
- the int value
-
get
@Nonnull private java.lang.String get(java.util.List<java.lang.String> tokens, @Nonnegative int idx)Get the token at given position- Parameters:
tokens- the token listidx- the position in the tokens- Returns:
- the token
-
splitTokens
private java.util.List<java.lang.String> splitTokens(@Nullable java.lang.String wat)Split the string in tokens.- Parameters:
wat- string with wasm text format- Returns:
- the token list.
-
addMemoryInstruction
private int addMemoryInstruction(MemoryOperator op, ValueType type, java.util.List<java.lang.String> tokens, int i, int lineNumber)
Parse the optional tokens of a load memory instruction and add it.- Parameters:
op- the operationtype- the type of the static fieldtokens- the token listi- the position in the tokenslineNumber- the line number in the Java source code- Returns:
- the current index to the tokens
-
-