mirror of
https://codeberg.org/ProgramSnail/truffle-lama.git
synced 2025-12-05 22:38:43 +00:00
most part of attributed grammar (without scopes and string casts) done, if node fixed
This commit is contained in:
parent
515207481f
commit
b08a2e0fff
13 changed files with 1849 additions and 1773 deletions
|
|
@ -4,6 +4,9 @@ import com.oracle.truffle.api.frame.VirtualFrame;
|
|||
import com.oracle.truffle.api.nodes.UnexpectedResultException;
|
||||
import com.oracle.truffle.api.profiles.ConditionProfile;
|
||||
import org.programsnail.truffle_lama.nodes.LamaExpressionNode;
|
||||
import org.programsnail.truffle_lama.runtime.LamaUnit;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
public final class LamaIfNode extends LamaExpressionNode {
|
||||
@Child
|
||||
|
|
@ -22,6 +25,7 @@ public final class LamaIfNode extends LamaExpressionNode {
|
|||
if (this.condition.profile(this.conditionExpr.executeBoolean(frame))) {
|
||||
return this.thenExpr.executeGeneric(frame);
|
||||
}
|
||||
return this.elseExpr; // TODO: cases with no else
|
||||
// TODO: or throw ??
|
||||
return Objects.requireNonNullElse(this.elseExpr, LamaUnit.INSTANCE);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -49,6 +49,7 @@ grammar Lama;
|
|||
{
|
||||
// DO NOT MODIFY - generated from Lama.g4
|
||||
|
||||
import java.util.Optional;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
|
@ -110,27 +111,66 @@ public static LamaExpressionNode parseLama(LamaLanguage language, Source source)
|
|||
|
||||
// parser
|
||||
|
||||
lama : /* (import_expression)* */ scope_expression EOF;
|
||||
lama returns [LamaExpressionNode result]:
|
||||
/* (import_expression)* */
|
||||
scope_expression { $result = $scope_expression.result; }
|
||||
EOF;
|
||||
|
||||
//import_expression : 'import' UIDENT ';';
|
||||
|
||||
scope_expression :
|
||||
definition+ (expression)?
|
||||
| expression;
|
||||
scope_expression returns [LamaExpressionNode result]:
|
||||
definition { $result = $expression.result; }
|
||||
(
|
||||
definition { $result = factory.createSeqNode($result, $expression.result); }
|
||||
)* (
|
||||
expression { $result = factory.createSeqNode($result, $expression.result); }
|
||||
)?
|
||||
| expression { $result = $expression.result; }
|
||||
;
|
||||
|
||||
definition returns [LamaExpressionNode result]:
|
||||
variable_definition
|
||||
| function_definition
|
||||
variable_definition { $result = $variable_definition.result; }
|
||||
| function_definition { $result = $function_definition.result; }
|
||||
;
|
||||
// | infix_definition;
|
||||
|
||||
//
|
||||
|
||||
variable_definition: ('var' | 'public') variable_definition_sequence;
|
||||
variable_definition_sequence : variable_definition_item (',' variable_definition_item)* ';';
|
||||
variable_definition_item : LIDENT ('=' basic_expression)?;
|
||||
function_definition returns [LamaExpressionNode result]: ('public')? 'fun' LIDENT '(' (function_arguments)? ')' function_body;
|
||||
function_arguments : LIDENT (',' LIDENT)*;
|
||||
function_body returns [LamaExpressionNode result]: '{' scope_expression '}';
|
||||
variable_definition returns [LamaExpressionNode result]
|
||||
: { boolean is_public = false; }
|
||||
('var' |
|
||||
'public' { is_public = true; }
|
||||
)
|
||||
variable_definition_sequence[is_public] { $result = $variable_definition_sequence.result; }
|
||||
;
|
||||
variable_definition_sequence[boolean is_public] returns [LamaExpressionNode result]:
|
||||
variable_definition_item { $result = factory.addVarNode($variable_definition_item.name, $variable_definition_item.expr); }
|
||||
(','
|
||||
variable_definition_item { $result = factory.addSeqNode($result, factory.addVarNode($variable_definition_item.name, $variable_definition_item.expr)); }
|
||||
)* ';';
|
||||
variable_definition_item returns [TruffleString name, Optional<LamaExpressionNode> expr]
|
||||
: { $expr = Optional.empty(); }
|
||||
LIDENT { $name = $LIDENT; }
|
||||
('='
|
||||
basic_expression { $expr = Optional.of($basic_expression.result); }
|
||||
)?;
|
||||
function_definition returns [LamaExpressionNode result] // TODO: scopes
|
||||
: { boolean is_public = false; }
|
||||
(
|
||||
'public' { is_public = true; }
|
||||
)? 'fun' LIDENT '(' (function_arguments)? ')' function_body
|
||||
{ $result = factory.addFunctionDefinition($LIDENT, $function_arguments.args, $function_body.result); }
|
||||
;
|
||||
function_arguments returns [List<TruffleString> args]
|
||||
: { $args = new ArrayList<TruffleString>(); }
|
||||
LIDENT { $args.addLast($LIDENT); }
|
||||
(','
|
||||
LIDENT { $args.addLast($LIDENT); }
|
||||
)*;
|
||||
function_body returns [LamaExpressionNode result]:
|
||||
'{'
|
||||
scope_expression { $result = $scope_expression.result; }
|
||||
'}';
|
||||
|
||||
//
|
||||
|
||||
|
|
@ -141,93 +181,217 @@ function_body returns [LamaExpressionNode result]: '{' scope_expression '}';
|
|||
|
||||
//
|
||||
|
||||
expression returns [LamaExpressionNode result]: basic_expression (';' expression)?;
|
||||
basic_expression returns [LamaExpressionNode result]: binary_expression;
|
||||
binary_expression returns [LamaExpressionNode result]: postfix_expression (any_infix postfix_expression)*;
|
||||
postfix_expression returns [LamaExpressionNode result]: ('-')? primary (postfix)*;
|
||||
postfix :
|
||||
'(' expression (',' expression)* ')'
|
||||
expression returns [LamaExpressionNode result]:
|
||||
basic_expression { $result = $basic_expression.result; }
|
||||
(';'
|
||||
expression { $result = factory.createSeqNode($result, $expression.result); }
|
||||
)?; // TODO: additional things, exit scope ??
|
||||
basic_expression returns [LamaExpressionNode result]: binary_expression { $result = $binary_expression.result; };
|
||||
binary_expression returns [LamaExpressionNode result]:
|
||||
postfix_expression { $result = $postfix_expression.result; }
|
||||
(
|
||||
any_infix
|
||||
postfix_expression { $result = factory.createBinopNode($any_infix.result, $result, $postfix_expression.result); }
|
||||
)*;
|
||||
postfix_expression returns [LamaExpressionNode result]
|
||||
: { boolean with_minus = false; }
|
||||
(
|
||||
MINUS { with_minus = true; }
|
||||
)?
|
||||
primary { $result = $primary.result; }
|
||||
(
|
||||
postfix {
|
||||
if ($postfix.access_index.isPresent()) {
|
||||
$result = factory.createElemNode($result, ($postfix.access_index.get())); // TODO: or RefElem node
|
||||
} else {
|
||||
$result = factory.createCallNode($result, $postfix.args);
|
||||
}
|
||||
}
|
||||
)*; // TODO: elem or elem ref for access node ??
|
||||
postfix returns [List<LamaExpressionNode> args, Optional<LamaExpressionNode> access_index]
|
||||
: { $args = new ArrayList<LamaExpressionNode>(); $access_index = Option.empty(); }
|
||||
'('
|
||||
expression { $args.addLast($expression.result); }
|
||||
(','
|
||||
expression { $args.addLast($expression.result); }
|
||||
)*
|
||||
')'
|
||||
| '(' ')'
|
||||
| '[' expression ']';
|
||||
| '['
|
||||
expression { $access_index = Option.of($expression.result); }
|
||||
']'
|
||||
;
|
||||
|
||||
primary returns [LamaExpressionNode result]:
|
||||
DECIMAL_LITERAL
|
||||
| STRING_LITERAL
|
||||
| CHAR_LITERAL
|
||||
| LIDENT
|
||||
| 'true'
|
||||
| 'false'
|
||||
| 'infix' any_infix
|
||||
DECIMAL_LITERAL { $result = factory.createConstNode($DECIMAL_LITERAL); } // minus - inside decimal literal definition
|
||||
| STRING_LITERAL { $result = factory.createStringNode(LamaStrings.convertStringLiteral($STRING_LITERAL)); }
|
||||
| CHAR_LITERAL { $result = factory.createConstNode(LamaStrings.convertCharLiteral($CHAR_LITERAL)); }
|
||||
| LIDENT { $result = factory.createRefNode($LIDENT); }
|
||||
| 'true' { $result = factory.createConstNode(1); }
|
||||
| 'false' { $result = factory.createConstNode(0); }
|
||||
| 'infix' any_infix { $result = factory.createRefNode($any_infix.result); }
|
||||
| 'fun' '(' function_arguments ')' function_body
|
||||
| 'skip'
|
||||
| '(' scope_expression ')'
|
||||
| list_expression
|
||||
| array_expression
|
||||
| s_expression
|
||||
| if_expression
|
||||
| while_do_expression
|
||||
| do_while_expression
|
||||
| for_expression
|
||||
| case_expression
|
||||
{ $result = factory.addClosureDefinition($function_arguments.args, $function_body.result); } // TODO: scopes
|
||||
| 'skip' { $result = factory.createSkipNode(); }
|
||||
| '(' scope_expression ')' { $result = $scope_expression.result; } // add some scope for correct attribution ??
|
||||
| list_expression { $result = $list_expression.result; }
|
||||
| array_expression { $result = $array_expression.result; }
|
||||
| s_expression { $result = $s_expression.result; }
|
||||
| if_expression { $result = $if_expression.result; }
|
||||
| while_do_expression { $result = $while_do_expression.result; }
|
||||
| do_while_expression { $result = $do_while_expression.result; }
|
||||
| for_expression { $result = $for_expression.result; }
|
||||
| case_expression { $result = $case_expression.result; }
|
||||
;
|
||||
|
||||
//
|
||||
|
||||
array_expression returns [LamaExpressionNode result]: '[' (expression (',' expression)* )? ']';
|
||||
list_expression returns [LamaExpressionNode result]: '{' (expression (',' expression)* )? '}';
|
||||
s_expression returns [LamaExpressionNode result]: /*TODO */ UIDENT ('(' (expression (',' expression)* )? ')')?;
|
||||
array_expression returns [LamaExpressionNode result]
|
||||
: { List<LamaExpressionNode> elems = new ArrayList<LamaExpressionNode>(); }
|
||||
'[' (
|
||||
expression { elems.addLast($expression.result); }
|
||||
(','
|
||||
expression { elems.addLast($expression.result); }
|
||||
)*
|
||||
)? ']'
|
||||
{ $result = factory.createArrayNode(elems); }
|
||||
;
|
||||
list_expression returns [LamaExpressionNode result]
|
||||
: { List<LamaExpressionNode> elems = new ArrayList<LamaExpressionNode>(); }
|
||||
'{' (
|
||||
expression { elems.addLast($expression.result); }
|
||||
(','
|
||||
expression {elems.addLast($expression.result); }
|
||||
)*
|
||||
)? '}'
|
||||
{ $result = factory.createListSexpNode(elems); }
|
||||
;
|
||||
s_expression returns [LamaExpressionNode result]
|
||||
: { List<LamaExpressionNode> elems = new ArrayList<LamaExpressionNode>(); }
|
||||
UIDENT
|
||||
('(' (
|
||||
expression {elems.addLast($expression.result); }
|
||||
(','
|
||||
expression {elems.addLast($expression.result); }
|
||||
)*
|
||||
)? ')')?
|
||||
{ $result = factory.createSexpNode($UIDENT, elems); }
|
||||
;
|
||||
|
||||
//
|
||||
|
||||
if_expression returns [LamaExpressionNode result]: 'if' expression 'then' scope_expression (else_part)? 'fi';
|
||||
else_part :
|
||||
'elif' expression 'then' scope_expression (else_part)?
|
||||
| 'else' scope_expression;
|
||||
if_expression returns [LamaExpressionNode result]
|
||||
: { LamaExpressionNode do_else = null; }
|
||||
'if' expression 'then' scope_expression (
|
||||
else_part { do_else = $else_part.result; }
|
||||
)? 'fi'
|
||||
{ $result = factory.createIfNode($expression.result, $scope_expression.result, do_else); }
|
||||
;
|
||||
else_part returns [LamaExpressionNode result]:
|
||||
'elif' { LamaExpressionNode do_else = null; } expression 'then' scope_expression (
|
||||
else_part { do_else = $else_part.result; }
|
||||
)? { $result = factory.createIfNode($expression.result, $scope_expression.result, do_else); }
|
||||
| 'else' scope_expression { $result = $scope_expression.result; };
|
||||
|
||||
//
|
||||
|
||||
while_do_expression returns [LamaExpressionNode result]: 'while' expression 'do' scope_expression 'od';
|
||||
do_while_expression returns [LamaExpressionNode result]: 'do' scope_expression 'while' expression 'od';
|
||||
for_expression returns [LamaExpressionNode result]: 'for' scope_expression ',' expression ',' expression 'do' scope_expression 'od';
|
||||
while_do_expression returns [LamaExpressionNode result]: 'while' expression 'do' scope_expression 'od'
|
||||
{ $result = factory.createWhileNode($expression.result, $scope_expression.result); };
|
||||
do_while_expression returns [LamaExpressionNode result]: 'do' scope_expression 'while' expression 'od'
|
||||
{ $result = factory.createDoWhileNode($expression.result, $scope_expression.result); };
|
||||
for_expression returns [LamaExpressionNode result]:
|
||||
'for' init=scope_expression ',' cond=expression ',' inc=expression 'do' expr=scope_expression 'od'
|
||||
// TODO: add scope, etc.
|
||||
{ $result = factory.createSeqNode($init.result, factory.createWhileNode($cond.result, factory.createSeqNode($expr.result, $inc.result))); }
|
||||
;
|
||||
|
||||
//
|
||||
|
||||
pattern returns [LamaPattern result]: cons_pattern | simple_pattern;
|
||||
cons_pattern returns [LamaPattern result]: simple_pattern ':' pattern;
|
||||
pattern returns [LamaPattern result]:
|
||||
cons_pattern { $result = $cons_pattern.result; }
|
||||
| simple_pattern { $result = $simple_pattern.result; }
|
||||
;
|
||||
cons_pattern returns [LamaPattern result]: simple_pattern ':' pattern { $result = factory.createSexpPattern("cons", {$simple_pattern.result, $pattern.result}); };
|
||||
simple_pattern returns [LamaPattern result]:
|
||||
wildcard_pattern
|
||||
| s_expr_pattern
|
||||
| array_pattern
|
||||
| list_pattern
|
||||
| LIDENT ('@' pattern)?
|
||||
| (MINUS)? DECIMAL_LITERAL
|
||||
| STRING_LITERAL
|
||||
| CHAR_LITERAL
|
||||
| 'true'
|
||||
| 'false'
|
||||
| '#' 'box'
|
||||
| '#' 'val'
|
||||
| '#' 'str'
|
||||
| '#' 'array'
|
||||
| '#''sexp'
|
||||
| '#' 'fun'
|
||||
| '(' pattern ')'
|
||||
wildcard_pattern { $result = $wildcard_pattern.result; }
|
||||
| s_expr_pattern { $result = $s_expr_pattern.result; }
|
||||
| array_pattern { $result = $array_pattern.result; }
|
||||
| list_pattern { $result = $list_pattern.result; }
|
||||
| LIDENT
|
||||
{ LamaPattern pat = null; }
|
||||
('@'
|
||||
pattern { pat = $pattern.result; }
|
||||
)?
|
||||
{ $result = factory.createNamedPattern($LIDENT, Objects.requireNonNullElse(pat, factory.createWildcardPattern()); }
|
||||
| { boolean is_negative = false; }
|
||||
(
|
||||
MINUS { is_negative = true; }
|
||||
)?
|
||||
DECIMAL_LITERAL { $result = is_negative ? factory.createNegativeConstPattern($DECIMAL_LITERAL) : factory.createConstPattern($DECIMAL_LITERAL); }
|
||||
| STRING_LITERAL { $result = factory.createStringPattern(LamaStrings.convertStringLiteral($STRING_LITERAL)); }
|
||||
| CHAR_LITERAL { $result = factory.createConstPattern(LamaStrings.convertCharLiteral($CHAR_LITERAL)); }
|
||||
| 'true' { $result = factory.createConstPattern(1); }
|
||||
| 'false' { $result = factory.createConstPattern(0); }
|
||||
| '#' 'box' { $result = factory.createBoxedPattern(); }
|
||||
| '#' 'val' { $result = factory.createUnBoxedPattern(); }
|
||||
| '#' 'str' { $result = factory.createStringTagPattern(); }
|
||||
| '#' 'array' { $result = factory.createArrayTagPattern(); }
|
||||
| '#''sexp' { $result = factory.createSexpTagPattern(); }
|
||||
| '#' 'fun' { $result = factory.createClosureTagPattern(); }
|
||||
| '(' pattern ')' { $result = $pattern.result; } // add some scope for correct attribution ??
|
||||
;
|
||||
|
||||
wildcard_pattern returns [LamaPattern result]: '_';
|
||||
s_expr_pattern returns [LamaPattern result]: UIDENT ('(' (pattern (',' pattern)*)? ')')?;
|
||||
array_pattern returns [LamaPattern result]: '[' (pattern (',' pattern)*)? ']';
|
||||
list_pattern returns [LamaPattern result]: '{' (pattern (',' pattern)*)? '}';
|
||||
wildcard_pattern returns [LamaPattern result]: '_' { $result = factory.createWildcardPattern(); };
|
||||
s_expr_pattern returns [LamaPattern result]
|
||||
: { List<LamaPattern> elems = new ArrayList<LamaPattern>(); }
|
||||
UIDENT
|
||||
('(' (
|
||||
pattern { elems.addLast($pattern.result); }
|
||||
(','
|
||||
pattern { elems.addLast($pattern.result); }
|
||||
)*)?
|
||||
')')?
|
||||
{ $result = factory.createSexpPattern($UIDENT, elems); }
|
||||
;
|
||||
array_pattern returns [LamaPattern result]
|
||||
: { List<LamaPattern> elems = new ArrayList<LamaPattern>(); }
|
||||
'[' (
|
||||
pattern { elems.addLast($pattern.result); }
|
||||
(','
|
||||
pattern { elems.addLast($pattern.result); }
|
||||
)*)?
|
||||
']'
|
||||
{ $result = factory.createArrayPattern(elems); }
|
||||
;
|
||||
list_pattern returns [LamaPattern result]:
|
||||
'{' (
|
||||
pattern { $result = $pattern.result; }
|
||||
(','
|
||||
pattern { $result = factory.createSexpPattern("cons", {$result, $pattern.result}); } //FIXME: wrong order
|
||||
)*)?
|
||||
'}';
|
||||
|
||||
//
|
||||
|
||||
case_expression returns [LamaExpressionNode result]: 'case' expression 'of' case_branches 'esac';
|
||||
case_branches : case_branch ('|' case_branch)*;
|
||||
case_branch : pattern '->' scope_expression;
|
||||
case_expression returns [LamaExpressionNode result]:
|
||||
'case' expression 'of' case_branches 'esac' { $result = factory.createCaseNode($expression.result, $case_branches.pats, $case_branches.exprs); }
|
||||
;
|
||||
case_branches returns [List<LamaPattern> pats, List<LamaExpressionNode> exprs]
|
||||
: { $pats = new ArrayList<LamaPattern>(); $exprs = new ArrayList<LamaExpressionNode> exprs; }
|
||||
case_branch { $pats.addLast($case_branch.pat); $exprs.addLast($case_branch.expr); }
|
||||
('|'
|
||||
case_branch { $pats.addLast($case_branch.pat); $exprs.addLast($case_branch.expr); }
|
||||
)*;
|
||||
case_branch returns [LamaPattern pat, LamaExpressionNode expr]:
|
||||
pattern { $pat = $pattern.result; }
|
||||
'->'
|
||||
scope_expression { $expr = $scope_expression.result; }
|
||||
;
|
||||
|
||||
//
|
||||
|
||||
any_infix : INFIX | MINUS;
|
||||
any_infix returns [String result]:
|
||||
INFIX { $result = $INFIX; }
|
||||
| MINUS { $result = $MINUS; }
|
||||
;
|
||||
|
||||
// lexer
|
||||
|
||||
|
|
@ -239,13 +403,13 @@ fragment NON_ZERO_DIGIT : [1-9];
|
|||
fragment DIGIT : [0-9];
|
||||
fragment STRING_CHAR : ~('"' | '\r' | '\n');
|
||||
|
||||
MINUS: '-';
|
||||
MINUS : '-';
|
||||
INFIX : [+*/%$#@!|&^?<>.:=\-]+;
|
||||
UIDENT : [A-Z][a-zA-Z_0-9]*;
|
||||
LIDENT : [a-z][a-zA-Z_0-9]*;
|
||||
|
||||
CHAR_LITERAL : '\'' STRING_CHAR '\'';
|
||||
STRING_LITERAL : '"' STRING_CHAR* '"';
|
||||
DECIMAL_LITERAL : '0' | ('-'?) NON_ZERO_DIGIT DIGIT*;
|
||||
DECIMAL_LITERAL : '0' | /*('-'?)*/ NON_ZERO_DIGIT DIGIT*;
|
||||
|
||||
WORD : [a-zA-Z_0-9]+;
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -37,66 +37,54 @@ T__35=36
|
|||
T__36=37
|
||||
T__37=38
|
||||
T__38=39
|
||||
T__39=40
|
||||
T__40=41
|
||||
T__41=42
|
||||
T__42=43
|
||||
T__43=44
|
||||
T__44=45
|
||||
T__45=46
|
||||
WS=47
|
||||
COMMENT=48
|
||||
LINE_COMMENT=49
|
||||
WS=40
|
||||
COMMENT=41
|
||||
LINE_COMMENT=42
|
||||
MINUS=43
|
||||
INFIX=44
|
||||
UIDENT=45
|
||||
LIDENT=46
|
||||
CHAR_LITERAL=47
|
||||
STRING_LITERAL=48
|
||||
DECIMAL_LITERAL=49
|
||||
WORD=50
|
||||
INFIX=51
|
||||
UIDENT=52
|
||||
LIDENT=53
|
||||
CHAR_LITERAL=54
|
||||
STRING_LITERAL=55
|
||||
DECIMAL_LITERAL=56
|
||||
'import'=1
|
||||
';'=2
|
||||
'var'=3
|
||||
'public'=4
|
||||
','=5
|
||||
'='=6
|
||||
'fun'=7
|
||||
'('=8
|
||||
')'=9
|
||||
'{'=10
|
||||
'}'=11
|
||||
'infix'=12
|
||||
'infixl'=13
|
||||
'infixr'=14
|
||||
'at'=15
|
||||
'before'=16
|
||||
'after'=17
|
||||
'-'=18
|
||||
'['=19
|
||||
']'=20
|
||||
'true'=21
|
||||
'false'=22
|
||||
'skip'=23
|
||||
'if'=24
|
||||
'then'=25
|
||||
'fi'=26
|
||||
'elif'=27
|
||||
'else'=28
|
||||
'while'=29
|
||||
'do'=30
|
||||
'od'=31
|
||||
'for'=32
|
||||
'|'=33
|
||||
':'=34
|
||||
'@'=35
|
||||
'#'=36
|
||||
'box'=37
|
||||
'val'=38
|
||||
'str'=39
|
||||
'array'=40
|
||||
'sexp'=41
|
||||
'_'=42
|
||||
'case'=43
|
||||
'of'=44
|
||||
'esac'=45
|
||||
'->'=46
|
||||
'var'=1
|
||||
'public'=2
|
||||
','=3
|
||||
';'=4
|
||||
'='=5
|
||||
'fun'=6
|
||||
'('=7
|
||||
')'=8
|
||||
'{'=9
|
||||
'}'=10
|
||||
'['=11
|
||||
']'=12
|
||||
'true'=13
|
||||
'false'=14
|
||||
'infix'=15
|
||||
'skip'=16
|
||||
'if'=17
|
||||
'then'=18
|
||||
'fi'=19
|
||||
'elif'=20
|
||||
'else'=21
|
||||
'while'=22
|
||||
'do'=23
|
||||
'od'=24
|
||||
'for'=25
|
||||
':'=26
|
||||
'@'=27
|
||||
'#'=28
|
||||
'box'=29
|
||||
'val'=30
|
||||
'str'=31
|
||||
'array'=32
|
||||
'sexp'=33
|
||||
'_'=34
|
||||
'case'=35
|
||||
'of'=36
|
||||
'esac'=37
|
||||
'|'=38
|
||||
'->'=39
|
||||
'-'=43
|
||||
|
|
|
|||
|
|
@ -24,18 +24,6 @@ public class LamaBaseListener implements LamaListener {
|
|||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitLama(LamaParser.LamaContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void enterImport_expression(LamaParser.Import_expressionContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitImport_expression(LamaParser.Import_expressionContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
|
|
@ -132,54 +120,6 @@ public class LamaBaseListener implements LamaListener {
|
|||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitFunction_body(LamaParser.Function_bodyContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void enterInfix_definition(LamaParser.Infix_definitionContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitInfix_definition(LamaParser.Infix_definitionContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void enterInfix_head(LamaParser.Infix_headContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitInfix_head(LamaParser.Infix_headContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void enterInfixity(LamaParser.InfixityContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitInfixity(LamaParser.InfixityContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void enterLevel(LamaParser.LevelContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitLevel(LamaParser.LevelContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
|
|
@ -468,6 +408,18 @@ public class LamaBaseListener implements LamaListener {
|
|||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitCase_branch(LamaParser.Case_branchContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void enterAny_infix(LamaParser.Any_infixContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitAny_infix(LamaParser.Any_infixContext ctx) { }
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
|
|
|
|||
|
|
@ -19,13 +19,6 @@ public class LamaBaseVisitor<T> extends AbstractParseTreeVisitor<T> implements L
|
|||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitLama(LamaParser.LamaContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitImport_expression(LamaParser.Import_expressionContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
|
|
@ -82,34 +75,6 @@ public class LamaBaseVisitor<T> extends AbstractParseTreeVisitor<T> implements L
|
|||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitFunction_body(LamaParser.Function_bodyContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitInfix_definition(LamaParser.Infix_definitionContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitInfix_head(LamaParser.Infix_headContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitInfixity(LamaParser.InfixityContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitLevel(LamaParser.LevelContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
|
|
@ -278,4 +243,11 @@ public class LamaBaseVisitor<T> extends AbstractParseTreeVisitor<T> implements L
|
|||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitCase_branch(LamaParser.Case_branchContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitAny_infix(LamaParser.Any_infixContext ctx) { return visitChildren(ctx); }
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -25,9 +25,8 @@ public class LamaLexer extends Lexer {
|
|||
T__17=18, T__18=19, T__19=20, T__20=21, T__21=22, T__22=23, T__23=24,
|
||||
T__24=25, T__25=26, T__26=27, T__27=28, T__28=29, T__29=30, T__30=31,
|
||||
T__31=32, T__32=33, T__33=34, T__34=35, T__35=36, T__36=37, T__37=38,
|
||||
T__38=39, T__39=40, T__40=41, T__41=42, T__42=43, T__43=44, T__44=45,
|
||||
T__45=46, WS=47, COMMENT=48, LINE_COMMENT=49, WORD=50, INFIX=51, UIDENT=52,
|
||||
LIDENT=53, CHAR_LITERAL=54, STRING_LITERAL=55, DECIMAL_LITERAL=56;
|
||||
T__38=39, WS=40, COMMENT=41, LINE_COMMENT=42, MINUS=43, INFIX=44, UIDENT=45,
|
||||
LIDENT=46, CHAR_LITERAL=47, STRING_LITERAL=48, DECIMAL_LITERAL=49, WORD=50;
|
||||
public static String[] channelNames = {
|
||||
"DEFAULT_TOKEN_CHANNEL", "HIDDEN"
|
||||
};
|
||||
|
|
@ -42,22 +41,21 @@ public class LamaLexer extends Lexer {
|
|||
"T__9", "T__10", "T__11", "T__12", "T__13", "T__14", "T__15", "T__16",
|
||||
"T__17", "T__18", "T__19", "T__20", "T__21", "T__22", "T__23", "T__24",
|
||||
"T__25", "T__26", "T__27", "T__28", "T__29", "T__30", "T__31", "T__32",
|
||||
"T__33", "T__34", "T__35", "T__36", "T__37", "T__38", "T__39", "T__40",
|
||||
"T__41", "T__42", "T__43", "T__44", "T__45", "WS", "COMMENT", "LINE_COMMENT",
|
||||
"NON_ZERO_DIGIT", "DIGIT", "STRING_CHAR", "WORD", "INFIX", "UIDENT",
|
||||
"LIDENT", "CHAR_LITERAL", "STRING_LITERAL", "DECIMAL_LITERAL"
|
||||
"T__33", "T__34", "T__35", "T__36", "T__37", "T__38", "WS", "COMMENT",
|
||||
"LINE_COMMENT", "NON_ZERO_DIGIT", "DIGIT", "STRING_CHAR", "MINUS", "INFIX",
|
||||
"UIDENT", "LIDENT", "CHAR_LITERAL", "STRING_LITERAL", "DECIMAL_LITERAL",
|
||||
"WORD"
|
||||
};
|
||||
}
|
||||
public static final String[] ruleNames = makeRuleNames();
|
||||
|
||||
private static String[] makeLiteralNames() {
|
||||
return new String[] {
|
||||
null, "'import'", "';'", "'var'", "'public'", "','", "'='", "'fun'",
|
||||
"'('", "')'", "'{'", "'}'", "'infix'", "'infixl'", "'infixr'", "'at'",
|
||||
"'before'", "'after'", "'-'", "'['", "']'", "'true'", "'false'", "'skip'",
|
||||
null, "'var'", "'public'", "','", "';'", "'='", "'fun'", "'('", "')'",
|
||||
"'{'", "'}'", "'['", "']'", "'true'", "'false'", "'infix'", "'skip'",
|
||||
"'if'", "'then'", "'fi'", "'elif'", "'else'", "'while'", "'do'", "'od'",
|
||||
"'for'", "'|'", "':'", "'@'", "'#'", "'box'", "'val'", "'str'", "'array'",
|
||||
"'sexp'", "'_'", "'case'", "'of'", "'esac'", "'->'"
|
||||
"'for'", "':'", "'@'", "'#'", "'box'", "'val'", "'str'", "'array'", "'sexp'",
|
||||
"'_'", "'case'", "'of'", "'esac'", "'|'", "'->'", null, null, null, "'-'"
|
||||
};
|
||||
}
|
||||
private static final String[] _LITERAL_NAMES = makeLiteralNames();
|
||||
|
|
@ -66,9 +64,9 @@ public class LamaLexer extends Lexer {
|
|||
null, null, null, null, null, null, null, null, null, null, null, null,
|
||||
null, null, null, null, null, null, null, null, null, null, null, null,
|
||||
null, null, null, null, null, null, null, null, null, null, null, null,
|
||||
null, null, null, null, null, null, null, null, null, null, null, "WS",
|
||||
"COMMENT", "LINE_COMMENT", "WORD", "INFIX", "UIDENT", "LIDENT", "CHAR_LITERAL",
|
||||
"STRING_LITERAL", "DECIMAL_LITERAL"
|
||||
null, null, null, null, "WS", "COMMENT", "LINE_COMMENT", "MINUS", "INFIX",
|
||||
"UIDENT", "LIDENT", "CHAR_LITERAL", "STRING_LITERAL", "DECIMAL_LITERAL",
|
||||
"WORD"
|
||||
};
|
||||
}
|
||||
private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames();
|
||||
|
|
@ -130,7 +128,7 @@ public class LamaLexer extends Lexer {
|
|||
public ATN getATN() { return _ATN; }
|
||||
|
||||
public static final String _serializedATN =
|
||||
"\u0004\u00008\u0183\u0006\uffff\uffff\u0002\u0000\u0007\u0000\u0002\u0001"+
|
||||
"\u0004\u00002\u014f\u0006\uffff\uffff\u0002\u0000\u0007\u0000\u0002\u0001"+
|
||||
"\u0007\u0001\u0002\u0002\u0007\u0002\u0002\u0003\u0007\u0003\u0002\u0004"+
|
||||
"\u0007\u0004\u0002\u0005\u0007\u0005\u0002\u0006\u0007\u0006\u0002\u0007"+
|
||||
"\u0007\u0007\u0002\b\u0007\b\u0002\t\u0007\t\u0002\n\u0007\n\u0002\u000b"+
|
||||
|
|
@ -144,50 +142,44 @@ public class LamaLexer extends Lexer {
|
|||
"!\u0002\"\u0007\"\u0002#\u0007#\u0002$\u0007$\u0002%\u0007%\u0002&\u0007"+
|
||||
"&\u0002\'\u0007\'\u0002(\u0007(\u0002)\u0007)\u0002*\u0007*\u0002+\u0007"+
|
||||
"+\u0002,\u0007,\u0002-\u0007-\u0002.\u0007.\u0002/\u0007/\u00020\u0007"+
|
||||
"0\u00021\u00071\u00022\u00072\u00023\u00073\u00024\u00074\u00025\u0007"+
|
||||
"5\u00026\u00076\u00027\u00077\u00028\u00078\u00029\u00079\u0002:\u0007"+
|
||||
":\u0001\u0000\u0001\u0000\u0001\u0000\u0001\u0000\u0001\u0000\u0001\u0000"+
|
||||
"\u0001\u0000\u0001\u0001\u0001\u0001\u0001\u0002\u0001\u0002\u0001\u0002"+
|
||||
"\u0001\u0002\u0001\u0003\u0001\u0003\u0001\u0003\u0001\u0003\u0001\u0003"+
|
||||
"0\u00021\u00071\u00022\u00072\u00023\u00073\u00024\u00074\u0001\u0000"+
|
||||
"\u0001\u0000\u0001\u0000\u0001\u0000\u0001\u0001\u0001\u0001\u0001\u0001"+
|
||||
"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0002\u0001\u0002"+
|
||||
"\u0001\u0003\u0001\u0003\u0001\u0004\u0001\u0004\u0001\u0005\u0001\u0005"+
|
||||
"\u0001\u0006\u0001\u0006\u0001\u0006\u0001\u0006\u0001\u0007\u0001\u0007"+
|
||||
"\u0001\u0005\u0001\u0005\u0001\u0006\u0001\u0006\u0001\u0007\u0001\u0007"+
|
||||
"\u0001\b\u0001\b\u0001\t\u0001\t\u0001\n\u0001\n\u0001\u000b\u0001\u000b"+
|
||||
"\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b\u0001\f\u0001\f\u0001"+
|
||||
"\f\u0001\f\u0001\f\u0001\f\u0001\f\u0001\r\u0001\r\u0001\r\u0001\r\u0001"+
|
||||
"\r\u0001\r\u0001\r\u0001\u000e\u0001\u000e\u0001\u000e\u0001\u000f\u0001"+
|
||||
"\u000f\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f\u0001"+
|
||||
"\u0010\u0001\u0010\u0001\u0010\u0001\u0010\u0001\u0010\u0001\u0010\u0001"+
|
||||
"\u0011\u0001\u0011\u0001\u0012\u0001\u0012\u0001\u0013\u0001\u0013\u0001"+
|
||||
"\u0014\u0001\u0014\u0001\u0014\u0001\u0014\u0001\u0014\u0001\u0015\u0001"+
|
||||
"\u0015\u0001\u0015\u0001\u0015\u0001\u0015\u0001\u0015\u0001\u0016\u0001"+
|
||||
"\u0016\u0001\u0016\u0001\u0016\u0001\u0016\u0001\u0017\u0001\u0017\u0001"+
|
||||
"\u0017\u0001\u0018\u0001\u0018\u0001\u0018\u0001\u0018\u0001\u0018\u0001"+
|
||||
"\u0019\u0001\u0019\u0001\u0019\u0001\u001a\u0001\u001a\u0001\u001a\u0001"+
|
||||
"\u001a\u0001\u001a\u0001\u001b\u0001\u001b\u0001\u001b\u0001\u001b\u0001"+
|
||||
"\u001b\u0001\u001c\u0001\u001c\u0001\u001c\u0001\u001c\u0001\u001c\u0001"+
|
||||
"\u001c\u0001\u001d\u0001\u001d\u0001\u001d\u0001\u001e\u0001\u001e\u0001"+
|
||||
"\u001e\u0001\u001f\u0001\u001f\u0001\u001f\u0001\u001f\u0001 \u0001 \u0001"+
|
||||
"!\u0001!\u0001\"\u0001\"\u0001#\u0001#\u0001$\u0001$\u0001$\u0001$\u0001"+
|
||||
"%\u0001%\u0001%\u0001%\u0001&\u0001&\u0001&\u0001&\u0001\'\u0001\'\u0001"+
|
||||
"\'\u0001\'\u0001\'\u0001\'\u0001(\u0001(\u0001(\u0001(\u0001(\u0001)\u0001"+
|
||||
")\u0001*\u0001*\u0001*\u0001*\u0001*\u0001+\u0001+\u0001+\u0001,\u0001"+
|
||||
",\u0001,\u0001,\u0001,\u0001-\u0001-\u0001-\u0001.\u0004.\u012d\b.\u000b"+
|
||||
".\f.\u012e\u0001.\u0001.\u0001/\u0001/\u0001/\u0001/\u0005/\u0137\b/\n"+
|
||||
"/\f/\u013a\t/\u0001/\u0001/\u0001/\u0001/\u0001/\u00010\u00010\u00010"+
|
||||
"\u00010\u00050\u0145\b0\n0\f0\u0148\t0\u00010\u00010\u00011\u00011\u0001"+
|
||||
"2\u00012\u00013\u00013\u00014\u00044\u0153\b4\u000b4\f4\u0154\u00015\u0004"+
|
||||
"5\u0158\b5\u000b5\f5\u0159\u00016\u00016\u00056\u015e\b6\n6\f6\u0161\t"+
|
||||
"6\u00017\u00017\u00057\u0165\b7\n7\f7\u0168\t7\u00018\u00018\u00018\u0001"+
|
||||
"8\u00019\u00019\u00059\u0170\b9\n9\f9\u0173\t9\u00019\u00019\u0001:\u0001"+
|
||||
":\u0003:\u0179\b:\u0001:\u0001:\u0005:\u017d\b:\n:\f:\u0180\t:\u0003:"+
|
||||
"\u0182\b:\u0001\u0138\u0000;\u0001\u0001\u0003\u0002\u0005\u0003\u0007"+
|
||||
"\u0004\t\u0005\u000b\u0006\r\u0007\u000f\b\u0011\t\u0013\n\u0015\u000b"+
|
||||
"\u0017\f\u0019\r\u001b\u000e\u001d\u000f\u001f\u0010!\u0011#\u0012%\u0013"+
|
||||
"\'\u0014)\u0015+\u0016-\u0017/\u00181\u00193\u001a5\u001b7\u001c9\u001d"+
|
||||
";\u001e=\u001f? A!C\"E#G$I%K&M\'O(Q)S*U+W,Y-[.]/_0a1c\u0000e\u0000g\u0000"+
|
||||
"i2k3m4o5q6s7u8\u0001\u0000\t\u0003\u0000\t\n\f\r \u0002\u0000\n\n\r\r"+
|
||||
"\u0001\u000019\u0001\u000009\u0003\u0000\n\n\r\r\"\"\u0004\u000009AZ_"+
|
||||
"_az\b\u0000!!#&*+-/::<@^^||\u0001\u0000AZ\u0001\u0000az\u018a\u0000\u0001"+
|
||||
"\u0001\f\u0001\f\u0001\f\u0001\f\u0001\f\u0001\r\u0001\r\u0001\r\u0001"+
|
||||
"\r\u0001\r\u0001\r\u0001\u000e\u0001\u000e\u0001\u000e\u0001\u000e\u0001"+
|
||||
"\u000e\u0001\u000e\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f\u0001"+
|
||||
"\u000f\u0001\u0010\u0001\u0010\u0001\u0010\u0001\u0011\u0001\u0011\u0001"+
|
||||
"\u0011\u0001\u0011\u0001\u0011\u0001\u0012\u0001\u0012\u0001\u0012\u0001"+
|
||||
"\u0013\u0001\u0013\u0001\u0013\u0001\u0013\u0001\u0013\u0001\u0014\u0001"+
|
||||
"\u0014\u0001\u0014\u0001\u0014\u0001\u0014\u0001\u0015\u0001\u0015\u0001"+
|
||||
"\u0015\u0001\u0015\u0001\u0015\u0001\u0015\u0001\u0016\u0001\u0016\u0001"+
|
||||
"\u0016\u0001\u0017\u0001\u0017\u0001\u0017\u0001\u0018\u0001\u0018\u0001"+
|
||||
"\u0018\u0001\u0018\u0001\u0019\u0001\u0019\u0001\u001a\u0001\u001a\u0001"+
|
||||
"\u001b\u0001\u001b\u0001\u001c\u0001\u001c\u0001\u001c\u0001\u001c\u0001"+
|
||||
"\u001d\u0001\u001d\u0001\u001d\u0001\u001d\u0001\u001e\u0001\u001e\u0001"+
|
||||
"\u001e\u0001\u001e\u0001\u001f\u0001\u001f\u0001\u001f\u0001\u001f\u0001"+
|
||||
"\u001f\u0001\u001f\u0001 \u0001 \u0001 \u0001 \u0001 \u0001!\u0001!\u0001"+
|
||||
"\"\u0001\"\u0001\"\u0001\"\u0001\"\u0001#\u0001#\u0001#\u0001$\u0001$"+
|
||||
"\u0001$\u0001$\u0001$\u0001%\u0001%\u0001&\u0001&\u0001&\u0001\'\u0004"+
|
||||
"\'\u00fa\b\'\u000b\'\f\'\u00fb\u0001\'\u0001\'\u0001(\u0001(\u0001(\u0001"+
|
||||
"(\u0005(\u0104\b(\n(\f(\u0107\t(\u0001(\u0001(\u0001(\u0001(\u0001(\u0001"+
|
||||
")\u0001)\u0001)\u0001)\u0005)\u0112\b)\n)\f)\u0115\t)\u0001)\u0001)\u0001"+
|
||||
"*\u0001*\u0001+\u0001+\u0001,\u0001,\u0001-\u0001-\u0001.\u0004.\u0122"+
|
||||
"\b.\u000b.\f.\u0123\u0001/\u0001/\u0005/\u0128\b/\n/\f/\u012b\t/\u0001"+
|
||||
"0\u00010\u00050\u012f\b0\n0\f0\u0132\t0\u00011\u00011\u00011\u00011\u0001"+
|
||||
"2\u00012\u00052\u013a\b2\n2\f2\u013d\t2\u00012\u00012\u00013\u00013\u0001"+
|
||||
"3\u00053\u0144\b3\n3\f3\u0147\t3\u00033\u0149\b3\u00014\u00044\u014c\b"+
|
||||
"4\u000b4\f4\u014d\u0001\u0105\u00005\u0001\u0001\u0003\u0002\u0005\u0003"+
|
||||
"\u0007\u0004\t\u0005\u000b\u0006\r\u0007\u000f\b\u0011\t\u0013\n\u0015"+
|
||||
"\u000b\u0017\f\u0019\r\u001b\u000e\u001d\u000f\u001f\u0010!\u0011#\u0012"+
|
||||
"%\u0013\'\u0014)\u0015+\u0016-\u0017/\u00181\u00193\u001a5\u001b7\u001c"+
|
||||
"9\u001d;\u001e=\u001f? A!C\"E#G$I%K&M\'O(Q)S*U\u0000W\u0000Y\u0000[+]"+
|
||||
",_-a.c/e0g1i2\u0001\u0000\t\u0003\u0000\t\n\f\r \u0002\u0000\n\n\r\r"+
|
||||
"\u0001\u000019\u0001\u000009\u0003\u0000\n\n\r\r\"\"\b\u0000!!#&*+-/:"+
|
||||
":<@^^||\u0001\u0000AZ\u0004\u000009AZ__az\u0001\u0000az\u0155\u0000\u0001"+
|
||||
"\u0001\u0000\u0000\u0000\u0000\u0003\u0001\u0000\u0000\u0000\u0000\u0005"+
|
||||
"\u0001\u0000\u0000\u0000\u0000\u0007\u0001\u0000\u0000\u0000\u0000\t\u0001"+
|
||||
"\u0000\u0000\u0000\u0000\u000b\u0001\u0000\u0000\u0000\u0000\r\u0001\u0000"+
|
||||
|
|
@ -206,164 +198,140 @@ public class LamaLexer extends Lexer {
|
|||
"C\u0001\u0000\u0000\u0000\u0000E\u0001\u0000\u0000\u0000\u0000G\u0001"+
|
||||
"\u0000\u0000\u0000\u0000I\u0001\u0000\u0000\u0000\u0000K\u0001\u0000\u0000"+
|
||||
"\u0000\u0000M\u0001\u0000\u0000\u0000\u0000O\u0001\u0000\u0000\u0000\u0000"+
|
||||
"Q\u0001\u0000\u0000\u0000\u0000S\u0001\u0000\u0000\u0000\u0000U\u0001"+
|
||||
"\u0000\u0000\u0000\u0000W\u0001\u0000\u0000\u0000\u0000Y\u0001\u0000\u0000"+
|
||||
"\u0000\u0000[\u0001\u0000\u0000\u0000\u0000]\u0001\u0000\u0000\u0000\u0000"+
|
||||
"_\u0001\u0000\u0000\u0000\u0000a\u0001\u0000\u0000\u0000\u0000i\u0001"+
|
||||
"\u0000\u0000\u0000\u0000k\u0001\u0000\u0000\u0000\u0000m\u0001\u0000\u0000"+
|
||||
"\u0000\u0000o\u0001\u0000\u0000\u0000\u0000q\u0001\u0000\u0000\u0000\u0000"+
|
||||
"s\u0001\u0000\u0000\u0000\u0000u\u0001\u0000\u0000\u0000\u0001w\u0001"+
|
||||
"\u0000\u0000\u0000\u0003~\u0001\u0000\u0000\u0000\u0005\u0080\u0001\u0000"+
|
||||
"\u0000\u0000\u0007\u0084\u0001\u0000\u0000\u0000\t\u008b\u0001\u0000\u0000"+
|
||||
"\u0000\u000b\u008d\u0001\u0000\u0000\u0000\r\u008f\u0001\u0000\u0000\u0000"+
|
||||
"\u000f\u0093\u0001\u0000\u0000\u0000\u0011\u0095\u0001\u0000\u0000\u0000"+
|
||||
"\u0013\u0097\u0001\u0000\u0000\u0000\u0015\u0099\u0001\u0000\u0000\u0000"+
|
||||
"\u0017\u009b\u0001\u0000\u0000\u0000\u0019\u00a1\u0001\u0000\u0000\u0000"+
|
||||
"\u001b\u00a8\u0001\u0000\u0000\u0000\u001d\u00af\u0001\u0000\u0000\u0000"+
|
||||
"\u001f\u00b2\u0001\u0000\u0000\u0000!\u00b9\u0001\u0000\u0000\u0000#\u00bf"+
|
||||
"\u0001\u0000\u0000\u0000%\u00c1\u0001\u0000\u0000\u0000\'\u00c3\u0001"+
|
||||
"\u0000\u0000\u0000)\u00c5\u0001\u0000\u0000\u0000+\u00ca\u0001\u0000\u0000"+
|
||||
"\u0000-\u00d0\u0001\u0000\u0000\u0000/\u00d5\u0001\u0000\u0000\u00001"+
|
||||
"\u00d8\u0001\u0000\u0000\u00003\u00dd\u0001\u0000\u0000\u00005\u00e0\u0001"+
|
||||
"\u0000\u0000\u00007\u00e5\u0001\u0000\u0000\u00009\u00ea\u0001\u0000\u0000"+
|
||||
"\u0000;\u00f0\u0001\u0000\u0000\u0000=\u00f3\u0001\u0000\u0000\u0000?"+
|
||||
"\u00f6\u0001\u0000\u0000\u0000A\u00fa\u0001\u0000\u0000\u0000C\u00fc\u0001"+
|
||||
"\u0000\u0000\u0000E\u00fe\u0001\u0000\u0000\u0000G\u0100\u0001\u0000\u0000"+
|
||||
"\u0000I\u0102\u0001\u0000\u0000\u0000K\u0106\u0001\u0000\u0000\u0000M"+
|
||||
"\u010a\u0001\u0000\u0000\u0000O\u010e\u0001\u0000\u0000\u0000Q\u0114\u0001"+
|
||||
"\u0000\u0000\u0000S\u0119\u0001\u0000\u0000\u0000U\u011b\u0001\u0000\u0000"+
|
||||
"\u0000W\u0120\u0001\u0000\u0000\u0000Y\u0123\u0001\u0000\u0000\u0000["+
|
||||
"\u0128\u0001\u0000\u0000\u0000]\u012c\u0001\u0000\u0000\u0000_\u0132\u0001"+
|
||||
"\u0000\u0000\u0000a\u0140\u0001\u0000\u0000\u0000c\u014b\u0001\u0000\u0000"+
|
||||
"\u0000e\u014d\u0001\u0000\u0000\u0000g\u014f\u0001\u0000\u0000\u0000i"+
|
||||
"\u0152\u0001\u0000\u0000\u0000k\u0157\u0001\u0000\u0000\u0000m\u015b\u0001"+
|
||||
"\u0000\u0000\u0000o\u0162\u0001\u0000\u0000\u0000q\u0169\u0001\u0000\u0000"+
|
||||
"\u0000s\u016d\u0001\u0000\u0000\u0000u\u0181\u0001\u0000\u0000\u0000w"+
|
||||
"x\u0005i\u0000\u0000xy\u0005m\u0000\u0000yz\u0005p\u0000\u0000z{\u0005"+
|
||||
"o\u0000\u0000{|\u0005r\u0000\u0000|}\u0005t\u0000\u0000}\u0002\u0001\u0000"+
|
||||
"\u0000\u0000~\u007f\u0005;\u0000\u0000\u007f\u0004\u0001\u0000\u0000\u0000"+
|
||||
"\u0080\u0081\u0005v\u0000\u0000\u0081\u0082\u0005a\u0000\u0000\u0082\u0083"+
|
||||
"\u0005r\u0000\u0000\u0083\u0006\u0001\u0000\u0000\u0000\u0084\u0085\u0005"+
|
||||
"p\u0000\u0000\u0085\u0086\u0005u\u0000\u0000\u0086\u0087\u0005b\u0000"+
|
||||
"\u0000\u0087\u0088\u0005l\u0000\u0000\u0088\u0089\u0005i\u0000\u0000\u0089"+
|
||||
"\u008a\u0005c\u0000\u0000\u008a\b\u0001\u0000\u0000\u0000\u008b\u008c"+
|
||||
"\u0005,\u0000\u0000\u008c\n\u0001\u0000\u0000\u0000\u008d\u008e\u0005"+
|
||||
"=\u0000\u0000\u008e\f\u0001\u0000\u0000\u0000\u008f\u0090\u0005f\u0000"+
|
||||
"\u0000\u0090\u0091\u0005u\u0000\u0000\u0091\u0092\u0005n\u0000\u0000\u0092"+
|
||||
"\u000e\u0001\u0000\u0000\u0000\u0093\u0094\u0005(\u0000\u0000\u0094\u0010"+
|
||||
"\u0001\u0000\u0000\u0000\u0095\u0096\u0005)\u0000\u0000\u0096\u0012\u0001"+
|
||||
"\u0000\u0000\u0000\u0097\u0098\u0005{\u0000\u0000\u0098\u0014\u0001\u0000"+
|
||||
"\u0000\u0000\u0099\u009a\u0005}\u0000\u0000\u009a\u0016\u0001\u0000\u0000"+
|
||||
"\u0000\u009b\u009c\u0005i\u0000\u0000\u009c\u009d\u0005n\u0000\u0000\u009d"+
|
||||
"\u009e\u0005f\u0000\u0000\u009e\u009f\u0005i\u0000\u0000\u009f\u00a0\u0005"+
|
||||
"x\u0000\u0000\u00a0\u0018\u0001\u0000\u0000\u0000\u00a1\u00a2\u0005i\u0000"+
|
||||
"\u0000\u00a2\u00a3\u0005n\u0000\u0000\u00a3\u00a4\u0005f\u0000\u0000\u00a4"+
|
||||
"\u00a5\u0005i\u0000\u0000\u00a5\u00a6\u0005x\u0000\u0000\u00a6\u00a7\u0005"+
|
||||
"l\u0000\u0000\u00a7\u001a\u0001\u0000\u0000\u0000\u00a8\u00a9\u0005i\u0000"+
|
||||
"\u0000\u00a9\u00aa\u0005n\u0000\u0000\u00aa\u00ab\u0005f\u0000\u0000\u00ab"+
|
||||
"\u00ac\u0005i\u0000\u0000\u00ac\u00ad\u0005x\u0000\u0000\u00ad\u00ae\u0005"+
|
||||
"r\u0000\u0000\u00ae\u001c\u0001\u0000\u0000\u0000\u00af\u00b0\u0005a\u0000"+
|
||||
"\u0000\u00b0\u00b1\u0005t\u0000\u0000\u00b1\u001e\u0001\u0000\u0000\u0000"+
|
||||
"\u00b2\u00b3\u0005b\u0000\u0000\u00b3\u00b4\u0005e\u0000\u0000\u00b4\u00b5"+
|
||||
"\u0005f\u0000\u0000\u00b5\u00b6\u0005o\u0000\u0000\u00b6\u00b7\u0005r"+
|
||||
"\u0000\u0000\u00b7\u00b8\u0005e\u0000\u0000\u00b8 \u0001\u0000\u0000\u0000"+
|
||||
"\u00b9\u00ba\u0005a\u0000\u0000\u00ba\u00bb\u0005f\u0000\u0000\u00bb\u00bc"+
|
||||
"\u0005t\u0000\u0000\u00bc\u00bd\u0005e\u0000\u0000\u00bd\u00be\u0005r"+
|
||||
"\u0000\u0000\u00be\"\u0001\u0000\u0000\u0000\u00bf\u00c0\u0005-\u0000"+
|
||||
"\u0000\u00c0$\u0001\u0000\u0000\u0000\u00c1\u00c2\u0005[\u0000\u0000\u00c2"+
|
||||
"&\u0001\u0000\u0000\u0000\u00c3\u00c4\u0005]\u0000\u0000\u00c4(\u0001"+
|
||||
"\u0000\u0000\u0000\u00c5\u00c6\u0005t\u0000\u0000\u00c6\u00c7\u0005r\u0000"+
|
||||
"\u0000\u00c7\u00c8\u0005u\u0000\u0000\u00c8\u00c9\u0005e\u0000\u0000\u00c9"+
|
||||
"*\u0001\u0000\u0000\u0000\u00ca\u00cb\u0005f\u0000\u0000\u00cb\u00cc\u0005"+
|
||||
"a\u0000\u0000\u00cc\u00cd\u0005l\u0000\u0000\u00cd\u00ce\u0005s\u0000"+
|
||||
"\u0000\u00ce\u00cf\u0005e\u0000\u0000\u00cf,\u0001\u0000\u0000\u0000\u00d0"+
|
||||
"\u00d1\u0005s\u0000\u0000\u00d1\u00d2\u0005k\u0000\u0000\u00d2\u00d3\u0005"+
|
||||
"i\u0000\u0000\u00d3\u00d4\u0005p\u0000\u0000\u00d4.\u0001\u0000\u0000"+
|
||||
"\u0000\u00d5\u00d6\u0005i\u0000\u0000\u00d6\u00d7\u0005f\u0000\u0000\u00d7"+
|
||||
"0\u0001\u0000\u0000\u0000\u00d8\u00d9\u0005t\u0000\u0000\u00d9\u00da\u0005"+
|
||||
"h\u0000\u0000\u00da\u00db\u0005e\u0000\u0000\u00db\u00dc\u0005n\u0000"+
|
||||
"\u0000\u00dc2\u0001\u0000\u0000\u0000\u00dd\u00de\u0005f\u0000\u0000\u00de"+
|
||||
"\u00df\u0005i\u0000\u0000\u00df4\u0001\u0000\u0000\u0000\u00e0\u00e1\u0005"+
|
||||
"e\u0000\u0000\u00e1\u00e2\u0005l\u0000\u0000\u00e2\u00e3\u0005i\u0000"+
|
||||
"\u0000\u00e3\u00e4\u0005f\u0000\u0000\u00e46\u0001\u0000\u0000\u0000\u00e5"+
|
||||
"\u00e6\u0005e\u0000\u0000\u00e6\u00e7\u0005l\u0000\u0000\u00e7\u00e8\u0005"+
|
||||
"s\u0000\u0000\u00e8\u00e9\u0005e\u0000\u0000\u00e98\u0001\u0000\u0000"+
|
||||
"\u0000\u00ea\u00eb\u0005w\u0000\u0000\u00eb\u00ec\u0005h\u0000\u0000\u00ec"+
|
||||
"\u00ed\u0005i\u0000\u0000\u00ed\u00ee\u0005l\u0000\u0000\u00ee\u00ef\u0005"+
|
||||
"e\u0000\u0000\u00ef:\u0001\u0000\u0000\u0000\u00f0\u00f1\u0005d\u0000"+
|
||||
"\u0000\u00f1\u00f2\u0005o\u0000\u0000\u00f2<\u0001\u0000\u0000\u0000\u00f3"+
|
||||
"\u00f4\u0005o\u0000\u0000\u00f4\u00f5\u0005d\u0000\u0000\u00f5>\u0001"+
|
||||
"\u0000\u0000\u0000\u00f6\u00f7\u0005f\u0000\u0000\u00f7\u00f8\u0005o\u0000"+
|
||||
"\u0000\u00f8\u00f9\u0005r\u0000\u0000\u00f9@\u0001\u0000\u0000\u0000\u00fa"+
|
||||
"\u00fb\u0005|\u0000\u0000\u00fbB\u0001\u0000\u0000\u0000\u00fc\u00fd\u0005"+
|
||||
":\u0000\u0000\u00fdD\u0001\u0000\u0000\u0000\u00fe\u00ff\u0005@\u0000"+
|
||||
"\u0000\u00ffF\u0001\u0000\u0000\u0000\u0100\u0101\u0005#\u0000\u0000\u0101"+
|
||||
"H\u0001\u0000\u0000\u0000\u0102\u0103\u0005b\u0000\u0000\u0103\u0104\u0005"+
|
||||
"o\u0000\u0000\u0104\u0105\u0005x\u0000\u0000\u0105J\u0001\u0000\u0000"+
|
||||
"\u0000\u0106\u0107\u0005v\u0000\u0000\u0107\u0108\u0005a\u0000\u0000\u0108"+
|
||||
"\u0109\u0005l\u0000\u0000\u0109L\u0001\u0000\u0000\u0000\u010a\u010b\u0005"+
|
||||
"s\u0000\u0000\u010b\u010c\u0005t\u0000\u0000\u010c\u010d\u0005r\u0000"+
|
||||
"\u0000\u010dN\u0001\u0000\u0000\u0000\u010e\u010f\u0005a\u0000\u0000\u010f"+
|
||||
"\u0110\u0005r\u0000\u0000\u0110\u0111\u0005r\u0000\u0000\u0111\u0112\u0005"+
|
||||
"a\u0000\u0000\u0112\u0113\u0005y\u0000\u0000\u0113P\u0001\u0000\u0000"+
|
||||
"\u0000\u0114\u0115\u0005s\u0000\u0000\u0115\u0116\u0005e\u0000\u0000\u0116"+
|
||||
"\u0117\u0005x\u0000\u0000\u0117\u0118\u0005p\u0000\u0000\u0118R\u0001"+
|
||||
"\u0000\u0000\u0000\u0119\u011a\u0005_\u0000\u0000\u011aT\u0001\u0000\u0000"+
|
||||
"\u0000\u011b\u011c\u0005c\u0000\u0000\u011c\u011d\u0005a\u0000\u0000\u011d"+
|
||||
"\u011e\u0005s\u0000\u0000\u011e\u011f\u0005e\u0000\u0000\u011fV\u0001"+
|
||||
"\u0000\u0000\u0000\u0120\u0121\u0005o\u0000\u0000\u0121\u0122\u0005f\u0000"+
|
||||
"\u0000\u0122X\u0001\u0000\u0000\u0000\u0123\u0124\u0005e\u0000\u0000\u0124"+
|
||||
"\u0125\u0005s\u0000\u0000\u0125\u0126\u0005a\u0000\u0000\u0126\u0127\u0005"+
|
||||
"c\u0000\u0000\u0127Z\u0001\u0000\u0000\u0000\u0128\u0129\u0005-\u0000"+
|
||||
"\u0000\u0129\u012a\u0005>\u0000\u0000\u012a\\\u0001\u0000\u0000\u0000"+
|
||||
"\u012b\u012d\u0007\u0000\u0000\u0000\u012c\u012b\u0001\u0000\u0000\u0000"+
|
||||
"\u012d\u012e\u0001\u0000\u0000\u0000\u012e\u012c\u0001\u0000\u0000\u0000"+
|
||||
"\u012e\u012f\u0001\u0000\u0000\u0000\u012f\u0130\u0001\u0000\u0000\u0000"+
|
||||
"\u0130\u0131\u0006.\u0000\u0000\u0131^\u0001\u0000\u0000\u0000\u0132\u0133"+
|
||||
"\u0005/\u0000\u0000\u0133\u0134\u0005*\u0000\u0000\u0134\u0138\u0001\u0000"+
|
||||
"\u0000\u0000\u0135\u0137\t\u0000\u0000\u0000\u0136\u0135\u0001\u0000\u0000"+
|
||||
"\u0000\u0137\u013a\u0001\u0000\u0000\u0000\u0138\u0139\u0001\u0000\u0000"+
|
||||
"\u0000\u0138\u0136\u0001\u0000\u0000\u0000\u0139\u013b\u0001\u0000\u0000"+
|
||||
"\u0000\u013a\u0138\u0001\u0000\u0000\u0000\u013b\u013c\u0005*\u0000\u0000"+
|
||||
"\u013c\u013d\u0005/\u0000\u0000\u013d\u013e\u0001\u0000\u0000\u0000\u013e"+
|
||||
"\u013f\u0006/\u0000\u0000\u013f`\u0001\u0000\u0000\u0000\u0140\u0141\u0005"+
|
||||
"/\u0000\u0000\u0141\u0142\u0005/\u0000\u0000\u0142\u0146\u0001\u0000\u0000"+
|
||||
"\u0000\u0143\u0145\b\u0001\u0000\u0000\u0144\u0143\u0001\u0000\u0000\u0000"+
|
||||
"\u0145\u0148\u0001\u0000\u0000\u0000\u0146\u0144\u0001\u0000\u0000\u0000"+
|
||||
"\u0146\u0147\u0001\u0000\u0000\u0000\u0147\u0149\u0001\u0000\u0000\u0000"+
|
||||
"\u0148\u0146\u0001\u0000\u0000\u0000\u0149\u014a\u00060\u0000\u0000\u014a"+
|
||||
"b\u0001\u0000\u0000\u0000\u014b\u014c\u0007\u0002\u0000\u0000\u014cd\u0001"+
|
||||
"\u0000\u0000\u0000\u014d\u014e\u0007\u0003\u0000\u0000\u014ef\u0001\u0000"+
|
||||
"\u0000\u0000\u014f\u0150\b\u0004\u0000\u0000\u0150h\u0001\u0000\u0000"+
|
||||
"\u0000\u0151\u0153\u0007\u0005\u0000\u0000\u0152\u0151\u0001\u0000\u0000"+
|
||||
"\u0000\u0153\u0154\u0001\u0000\u0000\u0000\u0154\u0152\u0001\u0000\u0000"+
|
||||
"\u0000\u0154\u0155\u0001\u0000\u0000\u0000\u0155j\u0001\u0000\u0000\u0000"+
|
||||
"\u0156\u0158\u0007\u0006\u0000\u0000\u0157\u0156\u0001\u0000\u0000\u0000"+
|
||||
"\u0158\u0159\u0001\u0000\u0000\u0000\u0159\u0157\u0001\u0000\u0000\u0000"+
|
||||
"\u0159\u015a\u0001\u0000\u0000\u0000\u015al\u0001\u0000\u0000\u0000\u015b"+
|
||||
"\u015f\u0007\u0007\u0000\u0000\u015c\u015e\u0007\u0005\u0000\u0000\u015d"+
|
||||
"\u015c\u0001\u0000\u0000\u0000\u015e\u0161\u0001\u0000\u0000\u0000\u015f"+
|
||||
"\u015d\u0001\u0000\u0000\u0000\u015f\u0160\u0001\u0000\u0000\u0000\u0160"+
|
||||
"n\u0001\u0000\u0000\u0000\u0161\u015f\u0001\u0000\u0000\u0000\u0162\u0166"+
|
||||
"\u0007\b\u0000\u0000\u0163\u0165\u0007\u0005\u0000\u0000\u0164\u0163\u0001"+
|
||||
"\u0000\u0000\u0000\u0165\u0168\u0001\u0000\u0000\u0000\u0166\u0164\u0001"+
|
||||
"\u0000\u0000\u0000\u0166\u0167\u0001\u0000\u0000\u0000\u0167p\u0001\u0000"+
|
||||
"\u0000\u0000\u0168\u0166\u0001\u0000\u0000\u0000\u0169\u016a\u0005\'\u0000"+
|
||||
"\u0000\u016a\u016b\u0003g3\u0000\u016b\u016c\u0005\'\u0000\u0000\u016c"+
|
||||
"r\u0001\u0000\u0000\u0000\u016d\u0171\u0005\"\u0000\u0000\u016e\u0170"+
|
||||
"\u0003g3\u0000\u016f\u016e\u0001\u0000\u0000\u0000\u0170\u0173\u0001\u0000"+
|
||||
"\u0000\u0000\u0171\u016f\u0001\u0000\u0000\u0000\u0171\u0172\u0001\u0000"+
|
||||
"\u0000\u0000\u0172\u0174\u0001\u0000\u0000\u0000\u0173\u0171\u0001\u0000"+
|
||||
"\u0000\u0000\u0174\u0175\u0005\"\u0000\u0000\u0175t\u0001\u0000\u0000"+
|
||||
"\u0000\u0176\u0182\u00050\u0000\u0000\u0177\u0179\u0005-\u0000\u0000\u0178"+
|
||||
"\u0177\u0001\u0000\u0000\u0000\u0178\u0179\u0001\u0000\u0000\u0000\u0179"+
|
||||
"\u017a\u0001\u0000\u0000\u0000\u017a\u017e\u0003c1\u0000\u017b\u017d\u0003"+
|
||||
"e2\u0000\u017c\u017b\u0001\u0000\u0000\u0000\u017d\u0180\u0001\u0000\u0000"+
|
||||
"\u0000\u017e\u017c\u0001\u0000\u0000\u0000\u017e\u017f\u0001\u0000\u0000"+
|
||||
"\u0000\u017f\u0182\u0001\u0000\u0000\u0000\u0180\u017e\u0001\u0000\u0000"+
|
||||
"\u0000\u0181\u0176\u0001\u0000\u0000\u0000\u0181\u0178\u0001\u0000\u0000"+
|
||||
"\u0000\u0182v\u0001\u0000\u0000\u0000\f\u0000\u012e\u0138\u0146\u0154"+
|
||||
"\u0159\u015f\u0166\u0171\u0178\u017e\u0181\u0001\u0006\u0000\u0000";
|
||||
"Q\u0001\u0000\u0000\u0000\u0000S\u0001\u0000\u0000\u0000\u0000[\u0001"+
|
||||
"\u0000\u0000\u0000\u0000]\u0001\u0000\u0000\u0000\u0000_\u0001\u0000\u0000"+
|
||||
"\u0000\u0000a\u0001\u0000\u0000\u0000\u0000c\u0001\u0000\u0000\u0000\u0000"+
|
||||
"e\u0001\u0000\u0000\u0000\u0000g\u0001\u0000\u0000\u0000\u0000i\u0001"+
|
||||
"\u0000\u0000\u0000\u0001k\u0001\u0000\u0000\u0000\u0003o\u0001\u0000\u0000"+
|
||||
"\u0000\u0005v\u0001\u0000\u0000\u0000\u0007x\u0001\u0000\u0000\u0000\t"+
|
||||
"z\u0001\u0000\u0000\u0000\u000b|\u0001\u0000\u0000\u0000\r\u0080\u0001"+
|
||||
"\u0000\u0000\u0000\u000f\u0082\u0001\u0000\u0000\u0000\u0011\u0084\u0001"+
|
||||
"\u0000\u0000\u0000\u0013\u0086\u0001\u0000\u0000\u0000\u0015\u0088\u0001"+
|
||||
"\u0000\u0000\u0000\u0017\u008a\u0001\u0000\u0000\u0000\u0019\u008c\u0001"+
|
||||
"\u0000\u0000\u0000\u001b\u0091\u0001\u0000\u0000\u0000\u001d\u0097\u0001"+
|
||||
"\u0000\u0000\u0000\u001f\u009d\u0001\u0000\u0000\u0000!\u00a2\u0001\u0000"+
|
||||
"\u0000\u0000#\u00a5\u0001\u0000\u0000\u0000%\u00aa\u0001\u0000\u0000\u0000"+
|
||||
"\'\u00ad\u0001\u0000\u0000\u0000)\u00b2\u0001\u0000\u0000\u0000+\u00b7"+
|
||||
"\u0001\u0000\u0000\u0000-\u00bd\u0001\u0000\u0000\u0000/\u00c0\u0001\u0000"+
|
||||
"\u0000\u00001\u00c3\u0001\u0000\u0000\u00003\u00c7\u0001\u0000\u0000\u0000"+
|
||||
"5\u00c9\u0001\u0000\u0000\u00007\u00cb\u0001\u0000\u0000\u00009\u00cd"+
|
||||
"\u0001\u0000\u0000\u0000;\u00d1\u0001\u0000\u0000\u0000=\u00d5\u0001\u0000"+
|
||||
"\u0000\u0000?\u00d9\u0001\u0000\u0000\u0000A\u00df\u0001\u0000\u0000\u0000"+
|
||||
"C\u00e4\u0001\u0000\u0000\u0000E\u00e6\u0001\u0000\u0000\u0000G\u00eb"+
|
||||
"\u0001\u0000\u0000\u0000I\u00ee\u0001\u0000\u0000\u0000K\u00f3\u0001\u0000"+
|
||||
"\u0000\u0000M\u00f5\u0001\u0000\u0000\u0000O\u00f9\u0001\u0000\u0000\u0000"+
|
||||
"Q\u00ff\u0001\u0000\u0000\u0000S\u010d\u0001\u0000\u0000\u0000U\u0118"+
|
||||
"\u0001\u0000\u0000\u0000W\u011a\u0001\u0000\u0000\u0000Y\u011c\u0001\u0000"+
|
||||
"\u0000\u0000[\u011e\u0001\u0000\u0000\u0000]\u0121\u0001\u0000\u0000\u0000"+
|
||||
"_\u0125\u0001\u0000\u0000\u0000a\u012c\u0001\u0000\u0000\u0000c\u0133"+
|
||||
"\u0001\u0000\u0000\u0000e\u0137\u0001\u0000\u0000\u0000g\u0148\u0001\u0000"+
|
||||
"\u0000\u0000i\u014b\u0001\u0000\u0000\u0000kl\u0005v\u0000\u0000lm\u0005"+
|
||||
"a\u0000\u0000mn\u0005r\u0000\u0000n\u0002\u0001\u0000\u0000\u0000op\u0005"+
|
||||
"p\u0000\u0000pq\u0005u\u0000\u0000qr\u0005b\u0000\u0000rs\u0005l\u0000"+
|
||||
"\u0000st\u0005i\u0000\u0000tu\u0005c\u0000\u0000u\u0004\u0001\u0000\u0000"+
|
||||
"\u0000vw\u0005,\u0000\u0000w\u0006\u0001\u0000\u0000\u0000xy\u0005;\u0000"+
|
||||
"\u0000y\b\u0001\u0000\u0000\u0000z{\u0005=\u0000\u0000{\n\u0001\u0000"+
|
||||
"\u0000\u0000|}\u0005f\u0000\u0000}~\u0005u\u0000\u0000~\u007f\u0005n\u0000"+
|
||||
"\u0000\u007f\f\u0001\u0000\u0000\u0000\u0080\u0081\u0005(\u0000\u0000"+
|
||||
"\u0081\u000e\u0001\u0000\u0000\u0000\u0082\u0083\u0005)\u0000\u0000\u0083"+
|
||||
"\u0010\u0001\u0000\u0000\u0000\u0084\u0085\u0005{\u0000\u0000\u0085\u0012"+
|
||||
"\u0001\u0000\u0000\u0000\u0086\u0087\u0005}\u0000\u0000\u0087\u0014\u0001"+
|
||||
"\u0000\u0000\u0000\u0088\u0089\u0005[\u0000\u0000\u0089\u0016\u0001\u0000"+
|
||||
"\u0000\u0000\u008a\u008b\u0005]\u0000\u0000\u008b\u0018\u0001\u0000\u0000"+
|
||||
"\u0000\u008c\u008d\u0005t\u0000\u0000\u008d\u008e\u0005r\u0000\u0000\u008e"+
|
||||
"\u008f\u0005u\u0000\u0000\u008f\u0090\u0005e\u0000\u0000\u0090\u001a\u0001"+
|
||||
"\u0000\u0000\u0000\u0091\u0092\u0005f\u0000\u0000\u0092\u0093\u0005a\u0000"+
|
||||
"\u0000\u0093\u0094\u0005l\u0000\u0000\u0094\u0095\u0005s\u0000\u0000\u0095"+
|
||||
"\u0096\u0005e\u0000\u0000\u0096\u001c\u0001\u0000\u0000\u0000\u0097\u0098"+
|
||||
"\u0005i\u0000\u0000\u0098\u0099\u0005n\u0000\u0000\u0099\u009a\u0005f"+
|
||||
"\u0000\u0000\u009a\u009b\u0005i\u0000\u0000\u009b\u009c\u0005x\u0000\u0000"+
|
||||
"\u009c\u001e\u0001\u0000\u0000\u0000\u009d\u009e\u0005s\u0000\u0000\u009e"+
|
||||
"\u009f\u0005k\u0000\u0000\u009f\u00a0\u0005i\u0000\u0000\u00a0\u00a1\u0005"+
|
||||
"p\u0000\u0000\u00a1 \u0001\u0000\u0000\u0000\u00a2\u00a3\u0005i\u0000"+
|
||||
"\u0000\u00a3\u00a4\u0005f\u0000\u0000\u00a4\"\u0001\u0000\u0000\u0000"+
|
||||
"\u00a5\u00a6\u0005t\u0000\u0000\u00a6\u00a7\u0005h\u0000\u0000\u00a7\u00a8"+
|
||||
"\u0005e\u0000\u0000\u00a8\u00a9\u0005n\u0000\u0000\u00a9$\u0001\u0000"+
|
||||
"\u0000\u0000\u00aa\u00ab\u0005f\u0000\u0000\u00ab\u00ac\u0005i\u0000\u0000"+
|
||||
"\u00ac&\u0001\u0000\u0000\u0000\u00ad\u00ae\u0005e\u0000\u0000\u00ae\u00af"+
|
||||
"\u0005l\u0000\u0000\u00af\u00b0\u0005i\u0000\u0000\u00b0\u00b1\u0005f"+
|
||||
"\u0000\u0000\u00b1(\u0001\u0000\u0000\u0000\u00b2\u00b3\u0005e\u0000\u0000"+
|
||||
"\u00b3\u00b4\u0005l\u0000\u0000\u00b4\u00b5\u0005s\u0000\u0000\u00b5\u00b6"+
|
||||
"\u0005e\u0000\u0000\u00b6*\u0001\u0000\u0000\u0000\u00b7\u00b8\u0005w"+
|
||||
"\u0000\u0000\u00b8\u00b9\u0005h\u0000\u0000\u00b9\u00ba\u0005i\u0000\u0000"+
|
||||
"\u00ba\u00bb\u0005l\u0000\u0000\u00bb\u00bc\u0005e\u0000\u0000\u00bc,"+
|
||||
"\u0001\u0000\u0000\u0000\u00bd\u00be\u0005d\u0000\u0000\u00be\u00bf\u0005"+
|
||||
"o\u0000\u0000\u00bf.\u0001\u0000\u0000\u0000\u00c0\u00c1\u0005o\u0000"+
|
||||
"\u0000\u00c1\u00c2\u0005d\u0000\u0000\u00c20\u0001\u0000\u0000\u0000\u00c3"+
|
||||
"\u00c4\u0005f\u0000\u0000\u00c4\u00c5\u0005o\u0000\u0000\u00c5\u00c6\u0005"+
|
||||
"r\u0000\u0000\u00c62\u0001\u0000\u0000\u0000\u00c7\u00c8\u0005:\u0000"+
|
||||
"\u0000\u00c84\u0001\u0000\u0000\u0000\u00c9\u00ca\u0005@\u0000\u0000\u00ca"+
|
||||
"6\u0001\u0000\u0000\u0000\u00cb\u00cc\u0005#\u0000\u0000\u00cc8\u0001"+
|
||||
"\u0000\u0000\u0000\u00cd\u00ce\u0005b\u0000\u0000\u00ce\u00cf\u0005o\u0000"+
|
||||
"\u0000\u00cf\u00d0\u0005x\u0000\u0000\u00d0:\u0001\u0000\u0000\u0000\u00d1"+
|
||||
"\u00d2\u0005v\u0000\u0000\u00d2\u00d3\u0005a\u0000\u0000\u00d3\u00d4\u0005"+
|
||||
"l\u0000\u0000\u00d4<\u0001\u0000\u0000\u0000\u00d5\u00d6\u0005s\u0000"+
|
||||
"\u0000\u00d6\u00d7\u0005t\u0000\u0000\u00d7\u00d8\u0005r\u0000\u0000\u00d8"+
|
||||
">\u0001\u0000\u0000\u0000\u00d9\u00da\u0005a\u0000\u0000\u00da\u00db\u0005"+
|
||||
"r\u0000\u0000\u00db\u00dc\u0005r\u0000\u0000\u00dc\u00dd\u0005a\u0000"+
|
||||
"\u0000\u00dd\u00de\u0005y\u0000\u0000\u00de@\u0001\u0000\u0000\u0000\u00df"+
|
||||
"\u00e0\u0005s\u0000\u0000\u00e0\u00e1\u0005e\u0000\u0000\u00e1\u00e2\u0005"+
|
||||
"x\u0000\u0000\u00e2\u00e3\u0005p\u0000\u0000\u00e3B\u0001\u0000\u0000"+
|
||||
"\u0000\u00e4\u00e5\u0005_\u0000\u0000\u00e5D\u0001\u0000\u0000\u0000\u00e6"+
|
||||
"\u00e7\u0005c\u0000\u0000\u00e7\u00e8\u0005a\u0000\u0000\u00e8\u00e9\u0005"+
|
||||
"s\u0000\u0000\u00e9\u00ea\u0005e\u0000\u0000\u00eaF\u0001\u0000\u0000"+
|
||||
"\u0000\u00eb\u00ec\u0005o\u0000\u0000\u00ec\u00ed\u0005f\u0000\u0000\u00ed"+
|
||||
"H\u0001\u0000\u0000\u0000\u00ee\u00ef\u0005e\u0000\u0000\u00ef\u00f0\u0005"+
|
||||
"s\u0000\u0000\u00f0\u00f1\u0005a\u0000\u0000\u00f1\u00f2\u0005c\u0000"+
|
||||
"\u0000\u00f2J\u0001\u0000\u0000\u0000\u00f3\u00f4\u0005|\u0000\u0000\u00f4"+
|
||||
"L\u0001\u0000\u0000\u0000\u00f5\u00f6\u0005-\u0000\u0000\u00f6\u00f7\u0005"+
|
||||
">\u0000\u0000\u00f7N\u0001\u0000\u0000\u0000\u00f8\u00fa\u0007\u0000\u0000"+
|
||||
"\u0000\u00f9\u00f8\u0001\u0000\u0000\u0000\u00fa\u00fb\u0001\u0000\u0000"+
|
||||
"\u0000\u00fb\u00f9\u0001\u0000\u0000\u0000\u00fb\u00fc\u0001\u0000\u0000"+
|
||||
"\u0000\u00fc\u00fd\u0001\u0000\u0000\u0000\u00fd\u00fe\u0006\'\u0000\u0000"+
|
||||
"\u00feP\u0001\u0000\u0000\u0000\u00ff\u0100\u0005/\u0000\u0000\u0100\u0101"+
|
||||
"\u0005*\u0000\u0000\u0101\u0105\u0001\u0000\u0000\u0000\u0102\u0104\t"+
|
||||
"\u0000\u0000\u0000\u0103\u0102\u0001\u0000\u0000\u0000\u0104\u0107\u0001"+
|
||||
"\u0000\u0000\u0000\u0105\u0106\u0001\u0000\u0000\u0000\u0105\u0103\u0001"+
|
||||
"\u0000\u0000\u0000\u0106\u0108\u0001\u0000\u0000\u0000\u0107\u0105\u0001"+
|
||||
"\u0000\u0000\u0000\u0108\u0109\u0005*\u0000\u0000\u0109\u010a\u0005/\u0000"+
|
||||
"\u0000\u010a\u010b\u0001\u0000\u0000\u0000\u010b\u010c\u0006(\u0000\u0000"+
|
||||
"\u010cR\u0001\u0000\u0000\u0000\u010d\u010e\u0005/\u0000\u0000\u010e\u010f"+
|
||||
"\u0005/\u0000\u0000\u010f\u0113\u0001\u0000\u0000\u0000\u0110\u0112\b"+
|
||||
"\u0001\u0000\u0000\u0111\u0110\u0001\u0000\u0000\u0000\u0112\u0115\u0001"+
|
||||
"\u0000\u0000\u0000\u0113\u0111\u0001\u0000\u0000\u0000\u0113\u0114\u0001"+
|
||||
"\u0000\u0000\u0000\u0114\u0116\u0001\u0000\u0000\u0000\u0115\u0113\u0001"+
|
||||
"\u0000\u0000\u0000\u0116\u0117\u0006)\u0000\u0000\u0117T\u0001\u0000\u0000"+
|
||||
"\u0000\u0118\u0119\u0007\u0002\u0000\u0000\u0119V\u0001\u0000\u0000\u0000"+
|
||||
"\u011a\u011b\u0007\u0003\u0000\u0000\u011bX\u0001\u0000\u0000\u0000\u011c"+
|
||||
"\u011d\b\u0004\u0000\u0000\u011dZ\u0001\u0000\u0000\u0000\u011e\u011f"+
|
||||
"\u0005-\u0000\u0000\u011f\\\u0001\u0000\u0000\u0000\u0120\u0122\u0007"+
|
||||
"\u0005\u0000\u0000\u0121\u0120\u0001\u0000\u0000\u0000\u0122\u0123\u0001"+
|
||||
"\u0000\u0000\u0000\u0123\u0121\u0001\u0000\u0000\u0000\u0123\u0124\u0001"+
|
||||
"\u0000\u0000\u0000\u0124^\u0001\u0000\u0000\u0000\u0125\u0129\u0007\u0006"+
|
||||
"\u0000\u0000\u0126\u0128\u0007\u0007\u0000\u0000\u0127\u0126\u0001\u0000"+
|
||||
"\u0000\u0000\u0128\u012b\u0001\u0000\u0000\u0000\u0129\u0127\u0001\u0000"+
|
||||
"\u0000\u0000\u0129\u012a\u0001\u0000\u0000\u0000\u012a`\u0001\u0000\u0000"+
|
||||
"\u0000\u012b\u0129\u0001\u0000\u0000\u0000\u012c\u0130\u0007\b\u0000\u0000"+
|
||||
"\u012d\u012f\u0007\u0007\u0000\u0000\u012e\u012d\u0001\u0000\u0000\u0000"+
|
||||
"\u012f\u0132\u0001\u0000\u0000\u0000\u0130\u012e\u0001\u0000\u0000\u0000"+
|
||||
"\u0130\u0131\u0001\u0000\u0000\u0000\u0131b\u0001\u0000\u0000\u0000\u0132"+
|
||||
"\u0130\u0001\u0000\u0000\u0000\u0133\u0134\u0005\'\u0000\u0000\u0134\u0135"+
|
||||
"\u0003Y,\u0000\u0135\u0136\u0005\'\u0000\u0000\u0136d\u0001\u0000\u0000"+
|
||||
"\u0000\u0137\u013b\u0005\"\u0000\u0000\u0138\u013a\u0003Y,\u0000\u0139"+
|
||||
"\u0138\u0001\u0000\u0000\u0000\u013a\u013d\u0001\u0000\u0000\u0000\u013b"+
|
||||
"\u0139\u0001\u0000\u0000\u0000\u013b\u013c\u0001\u0000\u0000\u0000\u013c"+
|
||||
"\u013e\u0001\u0000\u0000\u0000\u013d\u013b\u0001\u0000\u0000\u0000\u013e"+
|
||||
"\u013f\u0005\"\u0000\u0000\u013ff\u0001\u0000\u0000\u0000\u0140\u0149"+
|
||||
"\u00050\u0000\u0000\u0141\u0145\u0003U*\u0000\u0142\u0144\u0003W+\u0000"+
|
||||
"\u0143\u0142\u0001\u0000\u0000\u0000\u0144\u0147\u0001\u0000\u0000\u0000"+
|
||||
"\u0145\u0143\u0001\u0000\u0000\u0000\u0145\u0146\u0001\u0000\u0000\u0000"+
|
||||
"\u0146\u0149\u0001\u0000\u0000\u0000\u0147\u0145\u0001\u0000\u0000\u0000"+
|
||||
"\u0148\u0140\u0001\u0000\u0000\u0000\u0148\u0141\u0001\u0000\u0000\u0000"+
|
||||
"\u0149h\u0001\u0000\u0000\u0000\u014a\u014c\u0007\u0007\u0000\u0000\u014b"+
|
||||
"\u014a\u0001\u0000\u0000\u0000\u014c\u014d\u0001\u0000\u0000\u0000\u014d"+
|
||||
"\u014b\u0001\u0000\u0000\u0000\u014d\u014e\u0001\u0000\u0000\u0000\u014e"+
|
||||
"j\u0001\u0000\u0000\u0000\u000b\u0000\u00fb\u0105\u0113\u0123\u0129\u0130"+
|
||||
"\u013b\u0145\u0148\u014d\u0001\u0006\u0000\u0000";
|
||||
public static final ATN _ATN =
|
||||
new ATNDeserializer().deserialize(_serializedATN.toCharArray());
|
||||
static {
|
||||
|
|
|
|||
|
|
@ -37,66 +37,54 @@ T__35=36
|
|||
T__36=37
|
||||
T__37=38
|
||||
T__38=39
|
||||
T__39=40
|
||||
T__40=41
|
||||
T__41=42
|
||||
T__42=43
|
||||
T__43=44
|
||||
T__44=45
|
||||
T__45=46
|
||||
WS=47
|
||||
COMMENT=48
|
||||
LINE_COMMENT=49
|
||||
WS=40
|
||||
COMMENT=41
|
||||
LINE_COMMENT=42
|
||||
MINUS=43
|
||||
INFIX=44
|
||||
UIDENT=45
|
||||
LIDENT=46
|
||||
CHAR_LITERAL=47
|
||||
STRING_LITERAL=48
|
||||
DECIMAL_LITERAL=49
|
||||
WORD=50
|
||||
INFIX=51
|
||||
UIDENT=52
|
||||
LIDENT=53
|
||||
CHAR_LITERAL=54
|
||||
STRING_LITERAL=55
|
||||
DECIMAL_LITERAL=56
|
||||
'import'=1
|
||||
';'=2
|
||||
'var'=3
|
||||
'public'=4
|
||||
','=5
|
||||
'='=6
|
||||
'fun'=7
|
||||
'('=8
|
||||
')'=9
|
||||
'{'=10
|
||||
'}'=11
|
||||
'infix'=12
|
||||
'infixl'=13
|
||||
'infixr'=14
|
||||
'at'=15
|
||||
'before'=16
|
||||
'after'=17
|
||||
'-'=18
|
||||
'['=19
|
||||
']'=20
|
||||
'true'=21
|
||||
'false'=22
|
||||
'skip'=23
|
||||
'if'=24
|
||||
'then'=25
|
||||
'fi'=26
|
||||
'elif'=27
|
||||
'else'=28
|
||||
'while'=29
|
||||
'do'=30
|
||||
'od'=31
|
||||
'for'=32
|
||||
'|'=33
|
||||
':'=34
|
||||
'@'=35
|
||||
'#'=36
|
||||
'box'=37
|
||||
'val'=38
|
||||
'str'=39
|
||||
'array'=40
|
||||
'sexp'=41
|
||||
'_'=42
|
||||
'case'=43
|
||||
'of'=44
|
||||
'esac'=45
|
||||
'->'=46
|
||||
'var'=1
|
||||
'public'=2
|
||||
','=3
|
||||
';'=4
|
||||
'='=5
|
||||
'fun'=6
|
||||
'('=7
|
||||
')'=8
|
||||
'{'=9
|
||||
'}'=10
|
||||
'['=11
|
||||
']'=12
|
||||
'true'=13
|
||||
'false'=14
|
||||
'infix'=15
|
||||
'skip'=16
|
||||
'if'=17
|
||||
'then'=18
|
||||
'fi'=19
|
||||
'elif'=20
|
||||
'else'=21
|
||||
'while'=22
|
||||
'do'=23
|
||||
'od'=24
|
||||
'for'=25
|
||||
':'=26
|
||||
'@'=27
|
||||
'#'=28
|
||||
'box'=29
|
||||
'val'=30
|
||||
'str'=31
|
||||
'array'=32
|
||||
'sexp'=33
|
||||
'_'=34
|
||||
'case'=35
|
||||
'of'=36
|
||||
'esac'=37
|
||||
'|'=38
|
||||
'->'=39
|
||||
'-'=43
|
||||
|
|
|
|||
|
|
@ -17,16 +17,6 @@ public interface LamaListener extends ParseTreeListener {
|
|||
* @param ctx the parse tree
|
||||
*/
|
||||
void exitLama(LamaParser.LamaContext ctx);
|
||||
/**
|
||||
* Enter a parse tree produced by {@link LamaParser#import_expression}.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
void enterImport_expression(LamaParser.Import_expressionContext ctx);
|
||||
/**
|
||||
* Exit a parse tree produced by {@link LamaParser#import_expression}.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
void exitImport_expression(LamaParser.Import_expressionContext ctx);
|
||||
/**
|
||||
* Enter a parse tree produced by {@link LamaParser#scope_expression}.
|
||||
* @param ctx the parse tree
|
||||
|
|
@ -107,46 +97,6 @@ public interface LamaListener extends ParseTreeListener {
|
|||
* @param ctx the parse tree
|
||||
*/
|
||||
void exitFunction_body(LamaParser.Function_bodyContext ctx);
|
||||
/**
|
||||
* Enter a parse tree produced by {@link LamaParser#infix_definition}.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
void enterInfix_definition(LamaParser.Infix_definitionContext ctx);
|
||||
/**
|
||||
* Exit a parse tree produced by {@link LamaParser#infix_definition}.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
void exitInfix_definition(LamaParser.Infix_definitionContext ctx);
|
||||
/**
|
||||
* Enter a parse tree produced by {@link LamaParser#infix_head}.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
void enterInfix_head(LamaParser.Infix_headContext ctx);
|
||||
/**
|
||||
* Exit a parse tree produced by {@link LamaParser#infix_head}.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
void exitInfix_head(LamaParser.Infix_headContext ctx);
|
||||
/**
|
||||
* Enter a parse tree produced by {@link LamaParser#infixity}.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
void enterInfixity(LamaParser.InfixityContext ctx);
|
||||
/**
|
||||
* Exit a parse tree produced by {@link LamaParser#infixity}.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
void exitInfixity(LamaParser.InfixityContext ctx);
|
||||
/**
|
||||
* Enter a parse tree produced by {@link LamaParser#level}.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
void enterLevel(LamaParser.LevelContext ctx);
|
||||
/**
|
||||
* Exit a parse tree produced by {@link LamaParser#level}.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
void exitLevel(LamaParser.LevelContext ctx);
|
||||
/**
|
||||
* Enter a parse tree produced by {@link LamaParser#expression}.
|
||||
* @param ctx the parse tree
|
||||
|
|
@ -387,4 +337,14 @@ public interface LamaListener extends ParseTreeListener {
|
|||
* @param ctx the parse tree
|
||||
*/
|
||||
void exitCase_branch(LamaParser.Case_branchContext ctx);
|
||||
/**
|
||||
* Enter a parse tree produced by {@link LamaParser#any_infix}.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
void enterAny_infix(LamaParser.Any_infixContext ctx);
|
||||
/**
|
||||
* Exit a parse tree produced by {@link LamaParser#any_infix}.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
void exitAny_infix(LamaParser.Any_infixContext ctx);
|
||||
}
|
||||
|
|
@ -58,6 +58,28 @@ public class LamaNodeFactory {
|
|||
// this.allFunctions = new HashMap<>();
|
||||
}
|
||||
|
||||
// ---
|
||||
|
||||
public void enterScope() {
|
||||
// TODO
|
||||
}
|
||||
|
||||
public void exitScope() {
|
||||
// TODO
|
||||
}
|
||||
|
||||
// ---
|
||||
|
||||
public LamaExpressionNode createStringNode(String value) {
|
||||
|
||||
}
|
||||
|
||||
public LamaExpressionNode createConstNode(long value) {
|
||||
|
||||
}
|
||||
|
||||
// ---
|
||||
|
||||
public LamaExpressionNode getRootExpr() {
|
||||
// TODO
|
||||
return null;
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -16,12 +16,6 @@ public interface LamaVisitor<T> extends ParseTreeVisitor<T> {
|
|||
* @return the visitor result
|
||||
*/
|
||||
T visitLama(LamaParser.LamaContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link LamaParser#import_expression}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitImport_expression(LamaParser.Import_expressionContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link LamaParser#scope_expression}.
|
||||
* @param ctx the parse tree
|
||||
|
|
@ -70,30 +64,6 @@ public interface LamaVisitor<T> extends ParseTreeVisitor<T> {
|
|||
* @return the visitor result
|
||||
*/
|
||||
T visitFunction_body(LamaParser.Function_bodyContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link LamaParser#infix_definition}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitInfix_definition(LamaParser.Infix_definitionContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link LamaParser#infix_head}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitInfix_head(LamaParser.Infix_headContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link LamaParser#infixity}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitInfixity(LamaParser.InfixityContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link LamaParser#level}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitLevel(LamaParser.LevelContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link LamaParser#expression}.
|
||||
* @param ctx the parse tree
|
||||
|
|
@ -238,4 +208,10 @@ public interface LamaVisitor<T> extends ParseTreeVisitor<T> {
|
|||
* @return the visitor result
|
||||
*/
|
||||
T visitCase_branch(LamaParser.Case_branchContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link LamaParser#any_infix}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitAny_infix(LamaParser.Any_infixContext ctx);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue