
\begin{DoxyItemize}
\item infos = Information about the yambi plugin is in keys below
\item infos/author = René Schwaiger \href{mailto:sanssecours@me.com}{\tt sanssecours@me.\+com}
\item infos/licence = B\+SD
\item infos/needs = directoryvalue yamlsmith
\item infos/provides = storage/yaml
\item infos/recommends =
\item infos/placements = getstorage
\item infos/status = maintained unittest preview experimental unfinished nodoc concept discouraged
\item infos/metadata =
\item infos/description = This storage plugin use a parser generated by Bison to read Y\+A\+ML files
\end{DoxyItemize}\hypertarget{md_src_plugins_yambi_README_src_plugins_yambi_README_md}{}\section{Y\+A\+M\+Bi}\label{md_src_plugins_yambi_README_src_plugins_yambi_README_md}
\subsection*{Introduction}

This plugin uses Bison to generate a parser for the \href{http://yaml.org}{\tt Y\+A\+ML} serialization format.

\subsection*{Dependencies}

The plugin requires \href{https://www.gnu.org/software/bison/}{\tt Bison} (3.\+0 or later).

\subsection*{Examples}

\subsubsection*{Mappings}


\begin{DoxyCode}
# Mount plugin
sudo kdb mount config.yaml user/tests/yambi yambi

kdb set user/tests/yambi 'Mount Point'
kdb get user/tests/yambi
#> Mount Point

kdb set user/tests/yambi/bambi 'Mule Deer'
kdb get user/tests/yambi/bambi
#> Mule Deer

kdb set user/tests/yambi/thumper 'Rabbit'
kdb get user/tests/yambi/thumper
#> Rabbit

kdb set user/tests/yambi/bambi/baby 'Bobby Stewart'
kdb set user/tests/yambi/bambi/young 'Donnie Dunagan'
kdb set user/tests/yambi/bambi/adolescent 'Hardie Albright'
kdb set user/tests/yambi/bambi/adult 'John Sutherland'

kdb get user/tests/yambi/bambi/baby
#> Bobby Stewart

kdb ls user/tests/yambi
#> user/tests/yambi
#> user/tests/yambi/bambi
#> user/tests/yambi/bambi/adolescent
#> user/tests/yambi/bambi/adult
#> user/tests/yambi/bambi/baby
#> user/tests/yambi/bambi/young
#> user/tests/yambi/thumper

# Undo modifications
kdb rm -r user/tests/yambi
sudo kdb umount user/tests/yambi
\end{DoxyCode}


\subsubsection*{Arrays}


\begin{DoxyCode}
# Mount plugin
sudo kdb mount config.yaml user/tests/yambi yambi

kdb set user/tests/yambi/friends
kdb set user/tests/yambi/friends/#0 Thumper
kdb set user/tests/yambi/friends/#1 Flower

# Retrieve last array index
kdb getmeta user/tests/yambi/friends array
#> #1

kdb get user/tests/yambi/friends/#0
#> Thumper
kdb get user/tests/yambi/friends/#1
#> Flower

# Undo modifications
kdb rm -r user/tests/yambi
sudo kdb umount user/tests/yambi
\end{DoxyCode}


\subsubsection*{Error Messages}

``` \section*{Mount plugin}

sudo kdb mount config.\+yaml user/tests/yambi yambi

\section*{Manually add data containing a syntax error}

printf -- \textquotesingle{}Thumper\+: -\/ Eating greens is a special treat.~\newline
\textquotesingle{} $>$ {\ttfamily kdb file user/tests/yambi} printf -- \textquotesingle{} -\/ It makes long ears and great big feet.~\newline
\textquotesingle{} $>$$>$ {\ttfamily kdb file user/tests/yambi} printf -- \textquotesingle{}-\/ But it sure is awful stuff to eat.\textquotesingle{} $>$$>$ {\ttfamily kdb file user/tests/yambi}

\section*{Try to retrieve data}

kdb get user/tests/yambi/\+Thumper/\#2 \section*{R\+ET\+: 5}

\section*{S\+T\+D\+E\+RR\+: .$\ast$config.yaml\+:3\+:1\+: syntax error, unexpected E\+L\+E\+M\+E\+NT, expecting M\+A\+P\+\_\+\+E\+ND or K\+EY.$\ast$}

\section*{Fix syntax error}

printf -- \textquotesingle{}Thumper\+: -\/ Eating greens is a special treat.~\newline
\textquotesingle{} $>$ {\ttfamily kdb file user/tests/yambi} printf -- \textquotesingle{} -\/ It makes long ears and great big feet.~\newline
\textquotesingle{} $>$$>$ {\ttfamily kdb file user/tests/yambi} printf -- \textquotesingle{} -\/ But it sure is awful stuff to eat.\textquotesingle{} $>$$>$ {\ttfamily kdb file user/tests/yambi}

\section*{Retrieve data}

kdb get user/tests/yambi/\+Thumper/\#2 \#$>$ But it sure is awful stuff to eat.

\section*{Undo modifications}

kdb rm -\/r user/tests/yambi sudo kdb umount user/tests/yambi ```

\subsection*{Limitations}

The plugin supports the same limited Y\+A\+ML syntax as \hyperlink{md_src_plugins_yanlr_README_src_plugins_yanlr_README_md}{Yan LR}.


\begin{DoxyItemize}
\item The plugin always assumes {\bfseries U\+T\+F-\/8} encoded data. 
\end{DoxyItemize}