Refactor Runtime

Signed-off-by: Will Hawkins <hawkinsw@obs.cr>
This commit is contained in:
Will Hawkins
2026-02-19 22:50:19 -05:00
parent 3693bdc02d
commit d9c8c5aeb0
17 changed files with 897 additions and 439 deletions
+3 -2
View File
@@ -75,14 +75,15 @@ export default grammar({
// General statements
statements: $ => repeat1(seq($.statement, $.semicolon)),
statement: $ => choice($.conditionalStatement, $.blockStatement, $.expressionStatement),// Limited, so far.
statement: $ => choice($.conditionalStatement, $.blockStatement, $.expressionStatement, $.assignmentStatement),// Limited, so far.
blockStatement: $ => seq(optional($.annotations), '{', optional($.statements), '}'),
conditionalStatement: $ => choice(prec(1, seq($.if, '(', $.expression, ')', $.statement)), prec(2, seq($.if, '(', $.expression, ')', $.statement, $.else, $.statement))),
expressionStatement: $=> $.expression,
assignmentStatement: $=> seq($.expression, $.assignment, $.expression),
// Parser statements
parserStatements: $ => repeat1(seq($.parserStatement, $.semicolon)),
parserStatement: $ => choice($.conditionalStatement, $.parserBlockStatement, $.expressionStatement), // Limited, so far.
parserStatement: $ => choice($.conditionalStatement, $.parserBlockStatement, $.expressionStatement, $.assignmentStatement), // Limited, so far.
parserBlockStatement: $ => seq(optional($.annotations), '{', $.parserStatements, '}'),
parserTransitionStatement: $ => seq($.transition, $.transitionSelectionExpression),
+16 -7
View File
@@ -1,7 +1,16 @@
parser simple() {
state start {
bool l;
transition accept;
}
}
parser main_parser() {
state next_state {
transition reject;
}
state not_next_state {
transition reject;
}
state start {
transition starts;
}
state starts {
transition select (se) {
true: next_state;
};
}
};
+26 -38
View File
@@ -106,15 +106,12 @@ parser simple() {
)
=========================
Simple If Statement (With Body)
Simple Assignment Statement (To Identifier)
=========================
parser simple() {
state start {
if (true) {
true;
} else {
false;
};
string l = "testing";
l = "five";
transition accept;
}
};
@@ -131,41 +128,32 @@ parser simple() {
(parserState
(state)
(identifier)
(parserLocalElements
(parserLocalElement
(variableDeclaration
(typeRef
(baseType
(string)
)
)
(identifier)
(assignment)
(expression
(string_literal)
)
)
)
(semicolon)
)
(parserStatements
(parserStatement
(conditionalStatement
(if)
(assignmentStatement
(expression
(true)
(identifier)
)
(statement
(blockStatement
(statements
(statement
(expressionStatement
(expression
(true)
)
)
)
(semicolon)
)
)
)
(else)
(statement
(blockStatement
(statements
(statement
(expressionStatement
(expression
(false)
)
)
)
(semicolon)
)
)
(assignment)
(expression
(string_literal)
)
)
)
@@ -184,4 +172,4 @@ parser simple() {
)
(semicolon)
)