|
|
@ -1,6 +1,6 @@
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* @typedef State
|
|
|
|
* @typedef State
|
|
|
|
* @property {Object.<string, number>} transitions
|
|
|
|
* @property {Object.<string, number[]>} transitions
|
|
|
|
* @property {boolean} [start]
|
|
|
|
* @property {boolean} [start]
|
|
|
|
* @property {boolean} [accepting]
|
|
|
|
* @property {boolean} [accepting]
|
|
|
|
*/
|
|
|
|
*/
|
|
|
@ -9,46 +9,46 @@
|
|
|
|
* @type {State[]}
|
|
|
|
* @type {State[]}
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
export const STARTS_ENDS_A = [
|
|
|
|
export const STARTS_ENDS_A = [
|
|
|
|
{ transitions: { a: 1, b: 3 } },
|
|
|
|
{ transitions: { a: [1], b: [3] } },
|
|
|
|
{ transitions: { a: 2, b: 1 } },
|
|
|
|
{ transitions: { a: [2], b: [1] } },
|
|
|
|
{ transitions: { a: 2, b: 1 }, accepting: true },
|
|
|
|
{ transitions: { a: [2], b: [1] }, accepting: true },
|
|
|
|
{ transitions: { a: 3, b: 3 } },
|
|
|
|
{ transitions: { a: [3], b: [3] } },
|
|
|
|
];
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* @type {State[]}
|
|
|
|
* @type {State[]}
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
export const STARTS_BB = [
|
|
|
|
export const STARTS_BB = [
|
|
|
|
{ transitions: { a: 3, b: 1 } },
|
|
|
|
{ transitions: { a: [3], b: [1] } },
|
|
|
|
{ transitions: { a: 3, b: 2 } },
|
|
|
|
{ transitions: { a: [3], b: [2] } },
|
|
|
|
{ transitions: { a: 2, b: 2 }, accepting: true },
|
|
|
|
{ transitions: { a: [2], b: [2] }, accepting: true },
|
|
|
|
{ transitions: { a: 3, b: 3 } },
|
|
|
|
{ transitions: { a: [3], b: [3] } },
|
|
|
|
];
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* @type {State[]}
|
|
|
|
* @type {State[]}
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
export const EXACTLY_ONE_B = [
|
|
|
|
export const EXACTLY_ONE_B = [
|
|
|
|
{ transitions: { a: 0, b: 1 } },
|
|
|
|
{ transitions: { a: [0], b: [1] } },
|
|
|
|
{ transitions: { a: 1, b: 2 }, accepting: true },
|
|
|
|
{ transitions: { a: [1], b: [2] }, accepting: true },
|
|
|
|
{ transitions: { a: 2, b: 2 } },
|
|
|
|
{ transitions: { a: [2], b: [2] } },
|
|
|
|
];
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* @type {State[]}
|
|
|
|
* @type {State[]}
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
export const ODD_NUMBER_OF_A = [
|
|
|
|
export const ODD_NUMBER_OF_A = [
|
|
|
|
{ transitions: { a: 1, b: 0 } },
|
|
|
|
{ transitions: { a: [1], b: [0] } },
|
|
|
|
{ transitions: { a: 0, b: 1 }, accepting: true },
|
|
|
|
{ transitions: { a: [0], b: [1] }, accepting: true },
|
|
|
|
];
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* @type {State[]}
|
|
|
|
* @type {State[]}
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
export const ENDS_WITH_TWO_B = [
|
|
|
|
export const ENDS_WITH_TWO_B = [
|
|
|
|
{ transitions: { a: 0, b: 1 } },
|
|
|
|
{ transitions: { a: [0], b: [1] } },
|
|
|
|
{ transitions: { a: 0, b: 2 } },
|
|
|
|
{ transitions: { a: [0], b: [2] } },
|
|
|
|
{ transitions: { a: 0, b: 2 }, accepting: true },
|
|
|
|
{ transitions: { a: [0], b: [2] }, accepting: true },
|
|
|
|
];
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
|
|
export const AUTOMATONS = {
|
|
|
|
export const AUTOMATONS = {
|
|
|
|