p4 language learning :Part 2(学习笔记)

p4 language learning :Part 2

2.1 String literals

字符串文字(字符串常量)被指定为任意的8位字符序列,并用双引号引起来。P4不会对字符串进行任何有效性检查(即它不会检查字符串是否代表合法的UTF-8编码)。

注:UTF-8(8位元,Universal Character Set/Unicode Transformation Format)是针对Unicode的一种可变长度字符编码。它可以用来表示Unicode标准中的任何字符,而且其编码中的第一个字节仍与ASCII相容,使得原来处理ASCII字符的软件无须或只进行少部份修改后,便可继续使用。因此,它逐渐成为电子邮件、网页及其他存储或传送文字的应用中,优先采用的编码。

2.2 Naming conventions

P4提供了丰富的类型。
基本类型包括位字符串(bit-strings),数字(numbers)和错误(errors)。
也有内置类型来表示结构,例如解析器(parsers),管道(pipelines),操作(actions)和表(tables)。
用户可以基于这些构造新类型:结构(structures),枚举(enumerations),标头(headers),标头堆栈(header stacks),标头联合(header unions)等。

在其文档有以下约定:
1.内置类型使用小写字母书写,例如int <20>
2.用户定义的类型使用大写字母,例如IPv4Address
3.类型变量始终是大写字母,例如parser P <H,IH>(…)
4.变量不大写,例如ipv4header
5.常数以大写字母写成,例如CPU_PORT
6.错误和枚举以驼峰表示法编写,例如PacketTooShort

注:3.是类型的变量,而4.是普通变量,两者注意区别

2.3 P4 programs

p4program
    : /* empty */
    | p4program declaration
    | p4program ';'  /* empty declaration */
    ;

declaration
    : constantDeclaration
    | externDeclaration
    | actionDeclaration
    | parserDeclaration
    | typeDeclaration
    | controlDeclaration
    | instantiation
    | errorDeclaration
    | matchKindDeclaration
    ;<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值