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 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.private java.lang.String
get(java.util.List<java.lang.String> tokens, int idx)
Get the token at given positionprivate int
getInt(java.util.List<java.lang.String> tokens, int idx)
Get the token at given position as int.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 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
-
-