Skip to content
Merged
3 changes: 3 additions & 0 deletions framec/src/frame_c/default_config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,12 @@ codegen:
enter_msg: Enter
exit_msg: Exit
enter_args_member_name: enter_args
enter_args_suffix: EnterArgs
exit_args_member_name: exit_args
state_args_var: state_args
state_args_suffix: StateArgs
state_vars_var_name: state_vars
state_vars_suffix: StateVars
state_context_name: StateContext
state_context_suffix: StateContext
state_context_var_name: state_context
Expand Down
27 changes: 1 addition & 26 deletions framec/src/frame_c/parser.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3444,31 +3444,6 @@ impl<'a> Parser<'a> {

/* --------------------------------------------------------------------- */

// state_context ->

fn change_state_context(
&mut self,
_: Option<ExprListNode>,
) -> Result<Option<StateContextType>, ParseError> {
// parse state ref e.g. '$S1'
if !self.match_token(&vec![TokenType::StateTok]) {
return Err(ParseError::new("Missing $"));
}

if !self.match_token(&vec![TokenType::IdentifierTok]) {
return Err(ParseError::new("Missing state identifier."));
}

let state_id = self.previous();
let name = state_id.lexeme.clone();

let state_context_node = StateContextNode::new(StateRefNode::new(name), None, None);

Ok(Some(StateContextType::StateRef { state_context_node }))
}

/* --------------------------------------------------------------------- */

// transition : exitArgs '->' enterArgs transitionLabel stateRef stateArgs

fn transition(
Expand Down Expand Up @@ -3536,7 +3511,7 @@ impl<'a> Parser<'a> {
}

let state_context_t;
match self.change_state_context(None) {
match self.state_context(None) {
Ok(Some(scn)) => state_context_t = scn,
Ok(None) => return Err(ParseError::new("TODO")),
Err(parse_error) => return Err(parse_error),
Expand Down
Loading