小编aaa*_*aaa的帖子

jison 中的 %lex 和 /lex 行是什么?

下面的代码片段上可以找到: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)

jison

5
推荐指数
1
解决办法
351
查看次数

AngularJS:指令范围继承

前言

当我在控制器下声明指令时,例如

<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'要求父级的子级)

示例代码:

包含在控制器
指令中的指令包含在指令中

在给出答案后修改了问题 - 以下是保留指令旧的包含的参考
指令

angularjs angularjs-directive angularjs-scope

4
推荐指数
1
解决办法
6274
查看次数

docker volume prune 不删除未使用的卷

我的理解是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)

我缺少什么?

docker-volume

4
推荐指数
1
解决办法
3408
查看次数