下面的代码片段上可以找到:http://zaach.github.io/jison/demos/calc/,也是jison文档页面。阅读 jison、lex 和 flex 文档后 - 我仍然不完全理解 %lex 和 /lex 语法。它特定于 jison 扫描仪生成器吗?意思是它提供稍后在文档中显示的 json 输出的唯一功能?我之所以这么问是因为 jison 文档没有明确解释其目的,而且 flex/lex 规则似乎不允许这种语法。
/* description: Parses end executes mathematical expressions. */
/* lexical grammar */
%lex
%%
\s+ /* skip whitespace */
[0-9]+("."[0-9]+)?\b return 'NUMBER';
"*" return '*';
"/" return '/';
"-" return '-';
"+" return '+';
"^" return '^';
"(" return '(';
")" return ')';
"PI" return 'PI';
"E" return 'E';
<<EOF>> return 'EOF';
/lex
Run Code Online (Sandbox Code Playgroud) 当我在控制器下声明指令时,例如
<div ng-controller="MyController">
<my-directive></my-directive>
</div>
Run Code Online (Sandbox Code Playgroud)
该指令默认继承该控制器的作用域.这意味着如果控制器定义
$scope.Heaven = "Free Beer"
Run Code Online (Sandbox Code Playgroud)
然后我可以在指令的模板中访问它
{{ Heaven }}
Run Code Online (Sandbox Code Playgroud)
在另一个指令中声明一个指令时,为什么子节点不会像放在控制器中那样继承范围?
<my-parent-directive>
<my-child-directive>
</my-child-directive>
</my-parent-directive>
Run Code Online (Sandbox Code Playgroud)
简而言之,如果我为my-parent-directive声明一个控制器函数并在其中写入:
$scope.Heaven = "Free Beer"
Run Code Online (Sandbox Code Playgroud)
默认情况下,我的child指令无法访问此指令.这是为什么?(这假定父级中的"范围:true",子级中没有范围声明,以及通过"require:'my-parent-directive'要求父级的子级)
我的理解是docker volume prune应该删除不再与容器关联的卷。
本地我有
$ docker volume ls | head -n 2
DRIVER VOLUME NAME
local 0d4cd922a4ed3e970726b1edb860c7dda3ae1e47f812585d9517d512ae70d5cf
Run Code Online (Sandbox Code Playgroud)
我确认它没有关联的容器通过
$ docker ps -a --filter volume=0d4cd922a4ed3e970726b1edb860c7dda3ae1e47f812585d9517d512ae70d5cf
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Run Code Online (Sandbox Code Playgroud)
因此我预计这卷会被删除,但是唉
$ docker volume prune
WARNING! This will remove all local volumes not used by at least one container.
Are you sure you want to continue? [y/N] y
Total reclaimed space: 0B
$ docker volume ls | head -n 2
DRIVER VOLUME NAME
local 0d4cd922a4ed3e970726b1edb860c7dda3ae1e47f812585d9517d512ae70d5cf
Run Code Online (Sandbox Code Playgroud)
我缺少什么?