Skip to content

Commit

Permalink
add samples, fix derivation path
Browse files Browse the repository at this point in the history
  • Loading branch information
sakateka committed Mar 27, 2018
1 parent 0a4174d commit c9c3ebf
Show file tree
Hide file tree
Showing 6 changed files with 120 additions and 3 deletions.
36 changes: 36 additions & 0 deletions sample/pda/0k1n-0_lt_k_le_n.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
start_state: 0
bottom_character: Z
accept_by_empty_stack: false
accept_states: [0]
rulebook:
rules:
- state: 0
character: '0'
pop_character: Z
next_state: 2
push_characters: ['0', Z]
- state: 2
character: '0'
pop_character: '0'
next_state: 2
push_characters: ['0', '0']
- state: 2
character: '1'
pop_character: '0'
next_state: 1
push_characters: []
- state: 1
character: '1'
pop_character: '0'
next_state: 1
push_characters: []
- state: 1
character: '1'
pop_character: Z
next_state: 1
push_characters: [Z]
- state: 1
character: ~
pop_character: Z
next_state: 0
push_characters: []
36 changes: 36 additions & 0 deletions sample/pda/0k1n-k_ge_n_gt_0.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
start_state: 0
bottom_character: Z
accept_by_empty_stack: false
accept_states: [0]
rulebook:
rules:
- state: 0
character: '0'
pop_character: Z
next_state: 2
push_characters: ['0', Z]
- state: 2
character: '0'
pop_character: '0'
next_state: 2
push_characters: ['0', '0']
- state: 2
character: '1'
pop_character: '0'
next_state: 1
push_characters: []
- state: 1
character: '1'
pop_character: '0'
next_state: 1
push_characters: []
- state: 1
character: ~
pop_character: '0'
next_state: 1
push_characters: []
- state: 1
character: ~
pop_character: Z
next_state: 0
push_characters: []
14 changes: 14 additions & 0 deletions sample/pda/0n1n0k1k.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
start_state: 0
bottom_character: $
accept_by_empty_stack: false
accept_states: [0]
rulebook:
rules:
- {state: 0, character: '0', pop_character: $, next_state: 1, push_characters: [a, $]}
- {state: 1, character: '0', pop_character: a, next_state: 1, push_characters: [a, a]}
- {state: 1, character: '1', pop_character: a, next_state: 2, push_characters: []}
- {state: 2, character: '1', pop_character: a, next_state: 2, push_characters: []}
- {state: 2, character: '0', pop_character: $, next_state: 3, push_characters: [a, $]}
- {state: 3, character: '0', pop_character: a, next_state: 3, push_characters: [a, a]}
- {state: 3, character: '1', pop_character: a, next_state: 3, push_characters: []}
- {state: 3, character: ~, pop_character: $, next_state: 0, push_characters: []}
14 changes: 14 additions & 0 deletions sample/pda/w_for_ab_and_count-a-and-count-b_even.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
start_state: 0
bottom_character: $
accept_by_empty_stack: false
accept_states: [0]
rulebook:
rules:
- {state: 0, character: a, pop_character: $, next_state: 1, push_characters: [$]}
- {state: 0, character: b, pop_character: $, next_state: 2, push_characters: [$]}
- {state: 1, character: a, pop_character: $, next_state: 0, push_characters: [$]}
- {state: 1, character: b, pop_character: $, next_state: 3, push_characters: [$]}
- {state: 2, character: b, pop_character: $, next_state: 0, push_characters: [$]}
- {state: 2, character: a, pop_character: $, next_state: 3, push_characters: [$]}
- {state: 3, character: b, pop_character: $, next_state: 1, push_characters: [$]}
- {state: 3, character: a, pop_character: $, next_state: 2, push_characters: [$]}
16 changes: 16 additions & 0 deletions sample/pda/w_for_ab_and_count-a-eq-count-b.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
start_state: 0
bottom_character: $
accept_by_empty_stack: false
accept_states: [0]
rulebook:
rules:
- {state: 0, character: a, pop_character: $, next_state: 1, push_characters: [a, $]}
- {state: 0, character: b, pop_character: $, next_state: 2, push_characters: [b, $]}
- {state: 1, character: a, pop_character: a, next_state: 1, push_characters: [a, a]}
- {state: 1, character: b, pop_character: a, next_state: 1, push_characters: []}
- {state: 1, character: b, pop_character: $, next_state: 2, push_characters: [b, $]}
- {state: 1, character: ~, pop_character: $, next_state: 0, push_characters: [$]}
- {state: 2, character: b, pop_character: b, next_state: 2, push_characters: [b, b]}
- {state: 2, character: a, pop_character: b, next_state: 2, push_characters: []}
- {state: 2, character: a, pop_character: $, next_state: 1, push_characters: [a, $]}
- {state: 2, character: ~, pop_character: $, next_state: 0, push_characters: [$]}
7 changes: 4 additions & 3 deletions src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ extern crate itertools;

#[macro_use]
extern crate serde_derive;
extern crate serde_yaml;
extern crate serde;
extern crate serde_yaml;

mod args;
mod cfg;
Expand Down Expand Up @@ -135,7 +135,7 @@ fn main() {
let result = dpda_design.accepts(text.clone());
if let Some(path) = result.path {
println!(
"{}",
"{} -> [{}]",
join(
path.iter()
.cloned()
Expand All @@ -146,7 +146,8 @@ fn main() {
})
.collect::<Vec<String>>(),
" -> "
)
),
result.cfg.state,
);
}
if result.ok {
Expand Down

0 comments on commit c9c3ebf

Please sign in to comment.