Package net.sourceforge.plantuml.jasic
Class Jasic
- java.lang.Object
-
- net.sourceforge.plantuml.jasic.Jasic
-
public class Jasic extends Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description class
Jasic.AssignStatement
An assignment statement evaluates an expression and stores the result in a variable.static interface
Jasic.Expression
Base interface for an expression.class
Jasic.GotoStatement
A "goto" statement jumps execution to another place in the program.class
Jasic.IfThenStatement
An if then statement jumps execution to another place in the program, but only if an expression evaluates to something other than 0.class
Jasic.InputStatement
An "input" statement reads input from the user and stores it in a variable.class
Jasic.NumberValue
A numeric value.class
Jasic.OperatorExpression
An operator expression evaluates two expressions and then performs some arithmetic operation on the results.class
Jasic.PrintStatement
A "print" statement evaluates an expression, converts the result to a string, and displays it to the user.static interface
Jasic.Statement
Base interface for a Jasic statement.class
Jasic.StringValue
A string value.static interface
Jasic.Value
This is the base interface for a value.class
Jasic.VariableExpression
A variable expression evaluates to the current value stored in that variable.
-
Constructor Summary
Constructors Constructor Description Jasic()
Constructs a new Jasic instance.
-
-
-
Method Detail
-
interpret
public void interpret(String source)
This is where the magic happens. This runs the code through the parsing pipeline to generate the AST. Then it executes each statement. It keeps track of the current line in a member variable that the statement objects have access to. This lets "goto" and "if then" do flow control by simply setting the index of the current statement. In an interpreter that didn't mix the interpretation logic in with the AST node classes, this would be doing a lot more work.- Parameters:
source
- A string containing the source code of a .jas script to interpret.
-
-