{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# _expression_.standard\n",
"\n",
"Generate the standard automaton (aka, \"position\" or \"Glushkov\" automaton) from an expression.\n",
"\n",
"Preconditions:\n",
"- the expression is basic. For extended expressions, see the `\"standard\"` flavor of [_expression_.inductive](expression.inductive.ipynb).\n",
"\n",
"Postcondition:\n",
"- `Result.is_standard()`\n",
"\n",
"Caveats:\n",
"- it is not guaranteed that `Result.is_valid()`\n",
"\n",
"Properties:\n",
"- `Result.is_isomorphic(r.thompson().proper())`\n",
"\n",
"See also:\n",
"- [_expression_.automaton](expression.automaton.ipynb)\n",
"- [_expression_.inductive](expression.inductive.ipynb)\n",
"- [_automaton_.is_standard](automaton.is_standard.ipynb)\n",
"- [_automaton_.standard](automaton.standard.ipynb)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Examples"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"import vcsn\n",
"q = vcsn.context('lal_char(abc), q')"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/svg+xml": [
"\n",
"\n",
"\n",
"\n",
"\n"
],
"text/plain": [
"mutable_automaton, q>>"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"q.expression('(<1/6>a*+<1/3>b*)*').standard()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.1"
}
},
"nbformat": 4,
"nbformat_minor": 0
}