Download
https://www.proxmox.com/en/downloads
Prepare a USB Flash Drive
- use balenaEtcher
风控策略表达式的语法到底是什么样的?也就是说 风控策略表达式这种DSL的语法结构是什么?
在学习形式语言或编译原理课程时,想必大家肯定接触过BNF(Backus-Naur Form),即巴科斯范式。巴科斯范式是以美国人巴科斯(Backus)和丹麦人诺尔(Naur)的名字命名的一种形式化的语法表示方法,是用来描述语法的一种形式体系,是一种典型的元语言。自从编程语言Algol 60(Naur,1960)使用BNF符号定义语法以来,这种符号规则体系被证明适合作为形式化编程语言的语法,之后人们也开始习惯于使用此类元语言去定义语言语法。
BNF元语言的典型表达形式如下:
<symbol> ::= expression
<symbol> ::= expression1 | expression2
随着BNF的广泛应用,一些以简化BNF或特定应用为目的的扩展BNF元语言被创建出来,其中典型的包括EBNF、ABNF等。
我们来定义一下能描述背景的例子的文法:
/* 关键字 */
USER: 'user';
CONTAINS: 'contains';
AND: 'and';
OR: 'or';
/* 符号和运算符 */
DOUBLE_QUOTE: '"';
COMMA: ',';
DOT: '.';
LT: '<';
LE: '<=';
GT: '>';
GE: '>=';
EQ: '==';
NE: '!=';
DOLLAR: '$';
L_PAREN: '(';
R_PAREN: ')';
L_CURLY: '{';
R_CURLY: '}';
L_BRACKET: '[';
R_BRACKET: ']';
/* 标识符 */
ID: [a-zA-Z][a-zA-Z0-9]+;
/* 无符号整数和字符串的字面量 */
NUM_LIT: ('0' | [1-9] ('_'? [0-9])*);
STR_LIT: DOUBLE_QUOTE ~["\\]* DOUBLE_QUOTE;
以上为词法规则,全部使用大写表示,定义了所有的终结符。
...Refer to https://swsmile.info/post/linux-ssh-usage/
Refer to https://swsmile.info/post/linux-socat/
Refer to https://swsmile.info/post/linux-iptables/
...