(case-macro expr & forms)
根据expr的值与值与字段的对应表来选择字段
根据expr的值与值与字段的对应表来选择字段
(case-range vs)
将多值和值范围转换为一个向量作为解析器的键 如(1 3 6 - 10 13)变换为[1 2 [6 10] 13]
将多值和值范围转换为一个向量作为解析器的键 如(1 3 6 - 10 13)变换为[1 2 [6 10] 13]
(checksum-wrapper id basic wrapped-group & args)
计算起止字段间的校验码,from指定开始字段,默认为报文开头, to或until指定结束字段,后者不包含指定的字段,默认为本字段前, 用use指定计算函数,默认为packet.checksum/cs16 校验范围包含自己的两字节校验码必须位于两字节边界上
计算起止字段间的校验码,from指定开始字段,默认为报文开头, to或until指定结束字段,后者不包含指定的字段,默认为本字段前, 用use指定计算函数,默认为packet.checksum/cs16 校验范围包含自己的两字节校验码必须位于两字节边界上
(checksum-wrapper-slot id basic from to until cs wrapped-group)
起止字段间内容的校验码
起止字段间内容的校验码
(count-of worker field)
(count-of worker field adjust)
另一重复字段的重复次数
另一重复字段的重复次数
(default worker default-value)
为字段设置默认值,默认值可以是一个包含变量引用的表达式
为字段设置默认值,默认值可以是一个包含变量引用的表达式
(defpacket name & forms)
定义报文格式 在名称后可用关键字指定一些选项,可能的选项有: parse-only,build-only,little-endian,skip-check 系统变量要提前定义,在宏展开时使用
定义报文格式 在名称后可用关键字指定一些选项,可能的选项有: parse-only,build-only,little-endian,skip-check 系统变量要提前定义,在宏展开时使用
(embed-group & forms)
嵌入组的解析结果将被直接融入外部组的结果中,group-slot将检查:embed标志
嵌入组的解析结果将被直接融入外部组的结果中,group-slot将检查:embed标志
(encode-slot id decoder)
对原始字节的输入和输出做变换 字节编解码,encoder和decoder的输入输出均为字节 group宏会将它和end-of-encode之间的内容放到本宏内 要求worker一定是个group
对原始字节的输入和输出做变换 字节编解码,encoder和decoder的输入输出均为字节 group宏会将它和end-of-encode之间的内容放到本宏内 要求worker一定是个group
(encode-wrapper id _basic wrapped-group & args)
设置起始标记或重新绑定字节解码器 参数格式是所有外包组合子统一的。
设置起始标记或重新绑定字节解码器 参数格式是所有外包组合子统一的。
(encode-wrapper-slot id encoder wrapped-group)
加扰最后进行
加扰最后进行
(fail-result input env msg & args)
失败结果,包括所有输入参数和附加的消息
失败结果,包括所有输入参数和附加的消息
(flag-slot n placeholders & workers)
标志字段解析器 尽管内部包含的位字段本身不会解析失败,但可能因不满足约束条件而失败
标志字段解析器 尽管内部包含的位字段本身不会解析失败,但可能因不满足约束条件而失败
(flatmap worker f)
映射解析器,f是一个函数,将解析器的输出转换为另一个解析器
映射解析器,f是一个函数,将解析器的输出转换为另一个解析器
(get-parser-value output)
从解析器的包含各字段的位置和长度的详尽输出中提取有名字段的值,形成一个映射
从解析器的包含各字段的位置和长度的详尽输出中提取有名字段的值,形成一个映射
(length-of-wrapper id basic wrapped-group & args)
参数包含字节数,各个引用的字段名 最后一个形式是包装的group字段
参数包含字节数,各个引用的字段名 最后一个形式是包装的group字段
(length-of-wrapper-slot id basic fields adjust wrapped-group)
id是自动赋予的length-of字段的标识
id是自动赋予的length-of字段的标识
(length-wrapper id basic wrapped & args)
参数包含字节数,各个引用的字段名 最后一个形式是包装的group字段
参数包含字节数,各个引用的字段名 最后一个形式是包装的group字段
(length-wrapper-slot id basic from to until excludes adjust wrapped-group)
id是自动赋予的length字段的标识
id是自动赋予的length字段的标识
(map-value worker f & args)
转换解析结果中的值,f的第一个参数是解析器的输出值,不包含其他信息
转换解析结果中的值,f的第一个参数是解析器的输出值,不包含其他信息
(mapping worker f & args)
转换输出,f的第一个参数是解析器或构建器的完整输出值
转换输出,f的第一个参数是解析器或构建器的完整输出值
(option & forms)
可选字段,能解析(构建)则解析(构建),不能则放弃
可选字段,能解析(构建)则解析(构建),不能则放弃
(padding n)
(padding n byte)
填充以对齐n字节边界,默认用0填充.注意边界从报文真正的start位置开始算起
填充以对齐n字节边界,默认用0填充.注意边界从报文真正的start位置开始算起
(parse protocol input)
(parse protocol input env)
解析,结果带有各字段的位置和长度。如果只要各字段的值,可对结果调用get-parser-value 如果环境变量中:skip-check为true,则除校验字段外,跳过其他字段值的检查
解析,结果带有各字段的位置和长度。如果只要各字段的值,可对结果调用get-parser-value 如果环境变量中:skip-check为true,则除校验字段外,跳过其他字段值的检查
(pattern & args)
匹配一个模式,模式由固定字节和符号组成,符号可匹配任何字节,但除?外,相同的符号需匹配相同的字节
匹配一个模式,模式由固定字节和符号组成,符号可匹配任何字节,但除?外,相同的符号需匹配相同的字节
(placeholder worker id)
占位字段,给占位字段做个标记,以便校验时提取对应的值
占位字段,给占位字段做个标记,以便校验时提取对应的值
(repeat-macro times & forms)
重复字段,expr可以是一个数字或一个带变量引用的表达式指定重复次数 可以不指定重复次数,由前面带count-of修饰符的字段指定重复次数
重复字段,expr可以是一个数字或一个带变量引用的表达式指定重复次数 可以不指定重复次数,由前面带count-of修饰符的字段指定重复次数
(repeat-slot n worker)
重复解析器,重复字段必须有名称,被重复的字段可以没有名称
重复解析器,重复字段必须有名称,被重复的字段可以没有名称
(should worker f & args)
验证解析结果满足约束条件,可以是断言任何表达式 对数值字段,常用约束条件是>、>=、<、<=、=等, 对于等式约束,可据此计算其应然值 should f ...
验证解析结果满足约束条件,可以是断言任何表达式 对数值字段,常用约束条件是>、>=、<、<=、=等, 对于等式约束,可据此计算其应然值 should f ...
(should-slot checker setter worker)
验证解析结果满足约束条件 如果在解析或构建前设置skip-check,则会跳过校验代码
验证解析结果满足约束条件 如果在解析或构建前设置*skip-check*,则会跳过校验代码
(succeed)
(succeed v)
对解析,总是成功,并返回提供的值,但不消耗数据 对构建,不输出任何有意义的内容
对解析,总是成功,并返回提供的值,但不消耗数据 对构建,不输出任何有意义的内容
(test-packet protocol bytes)
提供字节流或对象,测试解析构建后是否一致
提供字节流或对象,测试解析构建后是否一致
(transform form)
面向用户的基本解析器的形式为 (u 2 ... as field-name prompt-string with f1 ... and f2 ... default ... should predicate ... count-of ... length ... length-of ... checksum ...) 第一个符号为字段类型,第二个数值(如有)通常是字节数,可能还有其他参数 as后是字段名,with后是转换函数,should后是验证函数 count-of说明本字段是某个重复字段的重复次数 length、length-of说明本字段是报文的长度信息 checksum说明本字段是报文校验信息 以上信息提取完后,最后一个字符串是错误提示信息 除了基本解析器外,可能还有组合子,组合子前不用冠以命名空间
面向用户的基本解析器的形式为 (u 2 ... as field-name prompt-string with f1 ... and f2 ... default ... should predicate ... count-of ... length ... length-of ... checksum ...) 第一个符号为字段类型,第二个数值(如有)通常是字节数,可能还有其他参数 as后是字段名,with后是转换函数,should后是验证函数 count-of说明本字段是某个重复字段的重复次数 length、length-of说明本字段是报文的长度信息 checksum说明本字段是报文校验信息 以上信息提取完后,最后一个字符串是错误提示信息 除了基本解析器外,可能还有组合子,组合子前不用冠以命名空间
(while-macro expr & forms)
有条件重复,这个条件通常包含了当前位置$$引用,它引起条件值的变化
有条件重复,这个条件通常包含了当前位置$$引用,它引起条件值的变化
(with worker f1 & args)
用于对解析值进线转换,构建时要逆转换,没有提供逆转换函数时自动分析 with f1 ... and f2 ...
用于对解析值进线转换,构建时要逆转换,没有提供逆转换函数时自动分析 with f1 ... and f2 ...
(with-field-name field-name worker)
为解析器或构建器赋予名称,就是对应的字段名,为结果自动附加name信息
为解析器或构建器赋予名称,就是对应的字段名,为结果自动附加name信息
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close