1
1
Fork 0
mirror of https://github.com/tonydamage/nux-env.git synced 2025-12-11 13:24:28 +01:00
nux-env/inc/nudsl/nuxdsl.inc.sh
Tony Tkacik fc1b5bbc87 Added taskie configuration & other stuff.
Signed-off-by: Tony Tkacik <tonydamage@gmail.com>
2019-01-28 06:22:49 +01:00

68 lines
1,021 B
Bash

nux.use nudsl/yanglike
lang.nuxdsl.strict.def() {
lang.yanglike.def
.keyword.plan() {
nudsl.process.fail "undefined keyword: $keyword";
}
.block.start.plan() {
nudsl.process.fail "undefined block: $keyword";
}
.block.end.plan() {
echo "${indent}end${keyword}";
}
.match._unmatched.plan() {
nudsl.process.fail "invalid syntax: $line";
}
}
lang.nuxdsl.def() {
lang.nuxdsl.strict.def
.keyword.plan() {
echo "$indent$keyword $args";
}
.block.start.plan() {
.keyword.plan
}
.block.end.plan() {
echo "${indent}end${keyword}";
}
.match._unmatched.plan() {
echo "$line";
}
}
.default.plan() {
echo "$indent$keyword $args";
}
.blockend.plan() {
echo "${indent}end${keyword}";
}
.block() {
eval """
.block.$1.start.plan() {
.default.plan
}
.block.$1.end.plan() {
.blockend.plan
}
.keyword.$1.plan() {
.default.plan
}
"""
}
.keyword() {
eval """
.keyword.$1.plan() {
.default.plan
}
"""
}