Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Size: Mime:
parser grammar StateMachineParser;

options { tokenVocab=StateMachineLexer; }

// Parser rules

stateMachines : stateMachineDeclaration+ EOF;

stateMachineDeclaration
    : KW_STATEMACHINE IDENTIFIER LBRACE stateMachineBody RBRACE;

stateMachineBody
    : parametersSection? variablesSection? entryPointSection tasksSection* transitionsSection*;

parametersSection
    : KW_PARAMETERS LBRACE parameterDeclaration* RBRACE;

parameterDeclaration
    : dataType IDENTIFIER SEMI;

variablesSection
    : KW_VARIABLES LBRACE variableDeclaration* RBRACE;

variableDeclaration
    : dataType IDENTIFIER (COMMA IDENTIFIER)* SEMI;

entryPointSection
    : KW_ENTRYPOINT IDENTIFIER SEMI;

tasksSection
    : taskDeclaration | subStateMachineTaskDeclaration | passTaskDeclaration | errorTaskDeclaration | waitTaskDeclaration;

transitionsSection
    : transitionDeclaration;

dataType
    : INT | FLOAT | STRING | BOOL | ARRAY | MAP;

parameterList
    : parameter (COMMA parameter)*;

parameter
    : dataType IDENTIFIER;

taskDeclaration
    : KW_TASK IDENTIFIER LPAREN parameterList? RPAREN LBRACE taskBody RBRACE;

subStateMachineTaskDeclaration
    : KW_SUBSTATEMACHINETASK IDENTIFIER LBRACE subStateMachineTaskBody RBRACE;

passTaskDeclaration
    : KW_PASSTASK IDENTIFIER SEMI;

errorTaskDeclaration
    : KW_ERRORTASK IDENTIFIER LPAREN parameterList? RPAREN SEMI;

waitTaskDeclaration
    : KW_WAITTASK IDENTIFIER LBRACE waitTaskBody RBRACE;

subStateMachineTaskBody
    : (inParametersSection | outParametersSection | usingStateMachineSection)*;

taskBody
    : (eventDeclarationSection | scriptSection | rawScriptSection)*;

waitTaskBody
    : (eventDeclarationSection)*;

eventDeclarationSection
    : KW_EVENT IDENTIFIER LPAREN parameterList? RPAREN SEMI;

inParametersSection
    : KW_IN LPAREN inParameterMapping (COMMA inParameterMapping)* RPAREN SEMI;

inParameterMapping
    : IDENTIFIER DARROW IDENTIFIER;

outParametersSection
    : KW_OUT LPAREN outParameterMapping (COMMA outParameterMapping)* RPAREN SEMI;

outParameterMapping
    : IDENTIFIER ARROW IDENTIFIER;

usingStateMachineSection
    : KW_USING IDENTIFIER SEMI;

scriptSection
    : KW_SCRIPT GRN;

rawScriptSection
    : KW_PAYLOAD_LBRACE rawScriptBody+ RAW_SCRIPT_RBRACE;

rawScriptBody
    : RAW_SCRIPT_LBRACE | RAW_SCRIPT_TEXT | RAW_SCRIPT_RBRACE;

transitionDeclaration
    : KW_TRANSITION IDENTIFIER KW_HANDLING IDENTIFIER ARROW IDENTIFIER SEMI;