GB/T 17151. 3—1997
本标准是根据国际标准化组织和国际电工委员会ISO/IEC9592(1989年4月1日第一版)《计算机图形信息处理系统一程序员分层交互图形系统(PHIGS)》系列标准制订的。该系列标准在GB/T17151《计算机图形信息处理系统程序员分层交互图形系统(PHIGS)》总标题下,包括以下三个部分:
第1部分(GB/T17151.1):功能描述;第2部分(GB/T17151.2):存档文件格式;第3部分(GB/T17151.3):存档文件正文编码。本标准是其中的存档文件正文编码标准。根据ISO/IEC于1993年10月15日和1994年8月1日对ISO/IEC9592-1所发布的技术勘误1、技术勘误2和1992年9月1日对ISO/IEC 9592-1发布的第1号修改单,在制订本标准时,都进行了相应的修改和勘误。
制订本标准时,遵照GB/T 1.1的规定,将国际标准中第0章的引言放入了本标准概述要素部分,不编章号。
本标准等效采用ISO/IEC9592-3标准。在采用ISO/IEC 9592国际标准时增加了适合我国应用需要的汉字字体号的规定。
本标准附录A为提示的附录。
本标准由中华人民共和国机械工业部提出。本标准由机械工业自动化系统与集成标准化技术委员会归口。本标准起草单位机械工业部北京机械工业自动化研究所。本标准主要起草人:唐勇。
GB/T 17151.3—1997
ISO/IEC 前言
国际标准化组织(ISO)和国际电工委员会(IEC)作为一个整体共同组成了国际标准化的系统,ISO或IEC的成员国通过在特定技术领域中的各种机构成立的技术委员会参与标准的制定,ISO和IEC在共同感兴趣的领域中合作。其他与ISO和IEC有联系的官方或非官方国际组织也参加这些工作。在信息技术领域方面,ISO和IEC建立了一个联合技术委员会ISO/IECJTC1,由这个联合委员会接受的国际标准草案在承认它为国际标准以前要将它在成员国中传阅审查。按照规定程序,至少要有75%的成员国赞成,该草案才能被批准通过,国际标准ISO/IEC9592-3是由联合技术委员会ISO/IECJTC1(信息技术)制定的,用户应该注意到,所有国际标准随着时间推移将会不断修订,而在此提到的引用的其他国际标准,除非另有说明,都是指它的最新版。ISO/IEC9592在总标题为“计算机图形信息处理系统—程序员分层交互图形系统(PHIGS)”。由以下几部分组成:
第1部分:功能描述
第2部分:存档文件格式
第3部分:存档文件的正文编码
附录A为本标准提示的附录。
GB/T17151.3—1997
1PHIGS存档文件正文编码的自的引
PHIGS存档文件的正文编码提供了易于打印、编辑和阅读的存档文件语法的表达式。它可使带有任何标准正文编辑器的存档文件能够使用主计算机系统的内部字符代码进行编辑。2基本目的
a)人可编辑的:正文编码应是能手工编辑的,或者如果需要的话,是可手工构造的。b)与人友好的:正文编码对人的阅读和编辑应是容易的和自然的。虽然什么为最容易和最自然是因用户而异的一种主观判断,但下述一些起作用的因素都已经考虑:为易于识别、易于记忆、避免多义性和防止误打字符。
c)机器易读的:正文编码应是由软件可分析的。d)可用于各种编辑器:正文编码不应有任何因使用一般文本编辑器而难于编辑的困难。e)不同系统间的可交换性:正文编辑应按能使利用该编码的系统集合达到最大这种方式来编码。用于转换存档文件的字长和运算方式不应有任何假设。f)使用标准化的简略符号:在其他图形标准的语言编码已建立起一些标准简略符号的地方,或在数据处理和图形行业的公共习惯已建立起一些公认和简略符号的地方,应使用这些简略符号。依据“最少新奇”的原则,这种方法将减少学习使用这种编码所需的时间。3与其他标准的关系
本标准根据国际标准ISO8632对存档文件格式的模型作了全面的描述。实现正文编码所需的字符集是包含在GB1988中的那些字符的子集。能够映像到和从那个子集映像的任何字符都可用来实现编码。
中华人民共和国国家标准
计算机图形信息处理系统
程序员分层交互图形系统
第3部分:存档文件正文编码
Information processing systems--Computer graphics-Programmer's Hierarchical Interactive Graphics System (PHIGS)Part 3: Clear-text encoding of archive file1范围
GB/T 17151. 3—1997
eqv ISO/IEC 9592-3: 1989
本标准规定PHIGS存档文件的正文编码。对在本系列标准中的GB/T17151.2中规定的每个存档文件元紊,都规定了正文编码。本标准规定存档文件的所有格式和可将注释散置于存档文件中的方法。PHIGS存档文件的这种编码使存档文件以打字简单、编辑容易和阅读便利的形式生成和维护。2引用棕准
下列标准所包含的条文,通过在本标准中引用而构成为本标准的条文。本标准出版时,所示版本均为有效。所有标准都会被修订,使用本标准的各方应探讨使用下列标准最新版本的可能性。GB1988-89信息处理信息交换用七位编码字符集3定义
本标准采用下列定义。
3.1存档文件描述符archivefiledescriptor描述处理存档文件所需功能的一组元素。3.2存档文件生成archive file generation产生PHIGS存档文件的过程。
3.3存档文件检索archive file retrieval读PHIGS存档文件,检索内容,并把结果转换为PHIGS的集中式结构存储。4正文编码格式
4.1注释约定
a)根据下面给出的空字符和注释,非空白字符串是正确地表现本语法的终结符号。b)空白字符串为非终结符号(具有给定的深层产生式)、字符符号名(例如COMMA)、或在形式(x:y)中的PHIGS存档文件元素的参数。c)下述元符号定义产生式、分组和重复:=
一“变成为”或“实现成”
()*→星号闭合(0或多个具体值)(·)十一→加号闭合(1或多个具体值)国家技术监督局1997-12-15批准746
1998-08-01实施
→正好为0或1的具体值
→带含意y的参数类型x
→只有x或y
GB/T 17151.3-1997
→注解(不属于产生式部分)
d)SPACES用于在语法描述中的可读性;在实际存档文件中的SPACES通过下面给出的分隔符产生式指明。
e)在描述语法中使用的元文件不在实际存档文件中出现。4.2存档文件格式
4.2.1引言
PHIGS存档文件的正文编码由形成一系列元素的字符流组成。每个字符流用元素名开始,用SLASH字符(也称为SLANT或SOLIDUS)或SEMICOLON字符作元素定界符结束。(注意:当出现在字符串参数边界内时,这些字符按下述定义不会如同元素定界符那样起作用。)在PHIGS存档文件中的正文编码内的元素顺序由本系列标准的GB/T17151.2规定。该标准规定覆盖下述8个字符的形式语法:
BEGIN ARCHIVE FILE
END ARCHIVE FILE
BEGIN STRUCTURE
END STRUCTURE
ARCHIVEFILE VERSION
ARCHIVE FILE DESCRIPTION
STRUCTURE ELEMENT
EXTERNAL ELEMENT
这些符号中的每一个都作为遵循形式语法的非终结符处理。从两方面考虑,本系列标准的GB/T17151.2和本标准的形式语法为覆盖GB1988字符集的PHIGS存档文件提供形式语法。4.2.2字符清单
为使在描述语法中使用的元符号不在实际的存档文件中出现,除至少支持全部GB1988字符集的字符串参数和可能任选包括的转换为其他字符集的字符外,正文编码的字符指令表将限于下面枚举的那些字符。
大写字符
\A\,\B\,\C\,\D\,\E\,\F\,\G\,\H\,\I\,\J\,\K\,\L\,\M\,\N\,\O\,\P\,\Q\,\R\,\S\,\T\,\U\,\V\,\W\,\X\,\Y\,\Z\小写字符
\a\,\b\,\c\,\d\,\e\,\f\,\g\,\h\,\i\,\j\,\k\,\l\,\m\,\n\,\o\,\p\,\q\,\r\,\s\,\t\,\u\,\y\,\w\,\x\,\y\,\z\数字
no\,\1\,\2\,\3\,\4\,\5\,\6\,\7\,\g\,\g\\\(SPACE字符)
\+\(PLUS SIGN 字符)
\-\(MINUS SIGN 字符)
\#\(NUMBER SIGN)
\,\(SEMICOLON字符)
\\(SLASH,SLANT,或SOLIDUS字符)\(LEFT或OPENPARENTHESIS字符)747
GB/T17151.3—1997
\)”(RIGHT或COLSEPARENTHESIS字符)\,(COMMA字符)
一\.\(DECIMALPOINT或PERIOD字符)\\(APOSTROPHE或SINGLE QUOTE字符)#*(DOUBLEQUOTE字符)
#(UNDERSCORE字符)(见注2)”辛”(DOLLARSIGN或CURRENCY字符(见注2)\%\(PERCENT SIGN 字符)
1当出现在串参数外面时,小写字母与大写字母相同。任何小写字母与大写字母的组合可使用在元素或枚举参数名内。
2下划线和美元符号在本编码中定义为“空字符”。它们能出现在存档文件内的任何地方,且是被控制为对语法分析不产生影响(串参数外面)。对存档文件产生器或编辑器提高记号的可读性是有用的。例如,以下表述是完全等效的:LINETYPE,LineType,line_type,$LINETYPE,L_1_N_E$T_Y_P_E。以下表述也是完全等效的:123456$123456.123_456,$123456,$12$34$56.在存档文件中允许那些控制格式效果的字符(BAEKSPACE、CARRIAGE.RETURN、LINE.FEED、NEWLINE、HORIZONTAL、TAB、VERTICALTAB和FORMFEED),但无论何时它们出现在字符串参数之外,它们都是由存档文件解释程序作为SPACE字符处理(即作为软定界符)。它们可用于帮助存档文件的格式化,以便改善存档文件的可读性。用正文编码写的PHIGS存档文件包括有不是那些列在字符清单中的字符和格式效果字符(字符参数外),则认为该存档文件是不一致的交换。需要使用不是上述字符的实现扩展应把这些字符嵌入GSE或APPLICATIONDATA元素的字符串参数或注释中。
注意,字符代码集不是由本标准所确定的。为实现可读性的目的,使用属于本系统的字符集编码对正文编码进行编码是允许的。从一个系统的字符集代码转换为另一个的正文PHIGS存档文件的转换中,假定能够使用标准的转换工具,与系统间转换其他文本文件的处理一致。为实现完全不同系统间的传送,对正文存档文件的编码建议使用GB1988代码。在这种转换中,包括如果需要的话,从小写字母转换为大写字母,在不改变存档文件的信息内容情况下,在目标系统的编码中不存在的文本字符串外的空字符或格式效果符可被忽略。同样,在不影响存档文件信息内容的这种转换中,两个语句定界字符是可交换的,且是可改变的。两个串定界符是可交换的。但任何转换应正确处理在串参数内的每个串定界字符的可能值。4.2.3分隔符
4.2.3.1元素分隔符
(TERM)::=(OPTSEP)
(OPTSEP)SEMICOLON 和 SLASH字符可用于正文编码存档文件中的定界元素,然而,当这些元素出现在串参数内时,如同下面所描述的,它们并不终止一个元素。
当由诸如CR(台架返回)或CL(行进给)的控制字符表示时,存档文件的元素并不由记录的端部来终止。多个元素可存在于一行,且任何元素可延伸超过多行。4.2.3.2参数分隔符
下述产生式用于正文编码中的参数分隔符:(SEPCHAR)
(SOFTSEP)
(OPTSEP)
:: = (SPACHICARRIAGE RETURNILINEFEED/HORIZONTALTABIFORMFEED)
:: =(SEPCHAR)+
:: =(SEPCHAR)*
GB/T 17151. 3—1997
:: =::=在元素名称后面,多数命令要求SOFTSEP(例如,至少一个空格)。这样就允许元素名称是字母数字字符混合形式。
参数间的分隔符正常为SEP。这种格式允许参数省略(两个连续的COMMA表示一个省略了的参数)。
由于封入了足够描述串参数的APOSTROPHE或DOUBLEQUOTE字符,以及由于语句定界符SLASH也分隔了它两边的数据,这些字符和相邻参数或元素名称之间的分隔符是任选的(OPTSEP)。在名称(元素或枚举类型)内,或在数字参数表达式内不允许SEPCHAR字符,在允许SEPCHAR的任何地方(不在串参数内部),允许使用任意个数的SEPCHAR。4.2.3.3存档文件中的注释
为加强可读性和可用性,正文编码的存档文件可包括注释。注释的一些使用可能为手工编辑改变为存档文件的文件处理,或当阅读存档文件时对文件本身的注解。在存档文件中要包括非图形信息的其他形式,建议使用EXTERNAL元素。注释编码为一系列打印字符和由\%”(PERCENT SIGN)字符环境的(SEPCHAR>字符。注释文本不可包括该注释定界字符。
可使用分隔符的任何地方可包括注释,且它等效于SOFTSEP),它们可由语法分析中的SPACE字符代替,而不影响存档文件的含义。4.2.4参数类型编码
4.2.4.1整数范围类型
INTEGERS,INTEGER COORDINATES和INDICES都属于符号整数,在编码中表示为I。<1)
::=(十进整数)《基数整数>
(十进整数):=(符号>0(数字)+(符号)
《数字)
:: -(PLUS SIGN) KMINUS SIGN)::=0111213/41516/71819
(基数整数)::=(符号>O<基数》(MUMBERSIGN)《扩展数字)+
(基数)
::=2|3|4/5|6[7|8|9]10|11|12]13/1415|16
<扩展数字)::=《数字)|A|B|C|D[E|Fla|b|cldleif
在数字内允许空字符。为简单起见,在产生式中没有表示。十进整数有一个可选的符号,且至少有一个数字。如果出现符号,它的后面应紧跟着数字,不允许插人SPACE(或其他(SEPCHAR》)字符。基数整数有一个可选符号、基数(从216(包括2和16在内》的无符号整数,以基数10为代表)、一个“#”和一个或多个扩展数字串。如果出现符号,它的后面应紧跟着数字,不允许插入SPACE(或其他0,007,—5,+123_456
下述类型是等效的:
GB/T 17151.3—1997
65535,16#FFFF,16#ffff,8#177777,2#1111111111111111下述类型是等效的:
32_768,—16#8000,—8#100000,—2#100000000000000属于参数范围的数字解释为“自由域”,即在最右边数字的右边有一个隐含的小数点,且前导空格、尾部空格都是无意义的,前导零也是无意义的。注:在本编码中,PHIGS功能数据类型\C\,\G2\,\G3\,\GS”,\AI\,\EI\,\FN\和\WI\用整数表示4.2.4.2实数范围类型
REALS和实数坐标属于实数范围,在编码中用R表示,这些数写作显式点(Explicit_Poit)或标度实数(Scaled_realnumber)(或合适的地方为十进整数)。(R)
:一《显式点数>
《标度实数》
(十进整数〉
《显式点数)::=《符号>O(《《数字>+《PERIOD)《数字)*1((数字*《PERIOD数字)+)》标度实数)::=(本体》(Ele)(指数)《本体》
(指数)
:=《显式点数)
《十进制数》
::一(十进整数>
标度实数的解释与标准的科学记数制(类似于FORTRAN\E\格式)相同。其中,由<本体>表示的数与用10的(指数>的乘方后相乘。在显式点数和标度实数的本体中至少应有一位数字。在单个数字数的情况下,这位数字可出现在小数点的任何一侧。对只带小数部分的数,建议但不要求,在小数点前至少有一位数字。零可编码为“0.”、\.0”“0.0\和0”等。
在标度实数情况下(有“E\或\e”出现),应有一位数在<指数》中出现。至少应有-一位数在《指数>中出现。在本体与“E”或e”之间、或“E\或\e”与<指数>之间不允许有SPACE或其他对所有格式中的实数,只允许表达式基数为基数10。如果(符号)(“十”或“二”)省略,该数则认定为非负,如果有符号,它应紧靠在数字(本体>前面,在符号与最左边数字或数本体的小数点之间不允许有任何SPACE(或其他(SEPCHAR>)字符。在数内部不允许有COMMA,SPACE和其他字符,但允许有字符(对语法分析不影响)。
7.853982E—7
271828e5
.04321(非建议形式)
—0.04321
¥5321.46
4.2.4.3字符串范围类型
GB/T 17151.3—1997
STRING参数由APOSTROPHE(SINGIEQUOTE)或DOUBLE QUOTE字符的匹配对紧密环绕的字符串表示。
如果在用APOSTROPHES定界的字符申中需要APOSTROPHE,它由该字符串的那个位置上的两个相邻的APOSTROPHES表示。同样,如果在用DOUBLEQUOTE字符定界的字符串中需要DOUBLEQUOTE字符,它由两个相邻的DOUBLEQUOTE字符表示。例如,下述类型是等效的:\Murphy's Law;\\If it can go wrong, it will. \n\+'Murphy\ s Law:\If it can go wrong,it will. \';DATARECORD数据类型用本编码表示为一个串。STRING参数在该编码中表示为 S。4.2.4.4枚举类型
枚举类型用于名称的范围,正如同元素名称是枚举类型一样。在一个实现想要支持专有枚举类型值的地方,这些枚举类型值应编码为字母“PRIV”,并在其后跟着字母「数字1《空字符〉*串。4.2.4.5派生类型
除I、R和S参数格式外,下述编写词用作所表示的产生式的缩写。COLRCURVE
COLRSURF
:: =(:ORDER)(SEP)
(SEP)
(I:COLOUR TYPE)(SEP)
(COLRVLST:CONTROL_ POINTS)www.bzxz.net
(OPTSEP)(RIGHT PAREN)
:: =(LEFT PAREN>(OPTSEP)
(SEP)
(I:V_ORDER)(SEP)
(RLIST:UKNOTS)(SEP)
(COLRVLISTS:CONTROL - POINTS)注:每个COLRVLIST包含沿u方向的控制点。POINT2
POINT3
: : =(COORD)(COORD)
: : =(COORD)<(LEFT PAREN>
(OPTSEPPOINT2>OPTSEP)
:: =(POINT3)I
<
(OPTSEP)POINTLIST2
POINTLIST3
FILLAREASETLIST2
FILLAREASETLIST3
CELLLIST
CELLROW
ROWMATRIX2D
ROWMATRIX3D
GB/T 17151. 3-1997
(RIGHT PAREN>>
(RIGHT PAREN))
:: =(P2)
:: =<>* >0:: =((P3:POINT)<>* >0(
(OPTSEP)(POINTLIST2)(OPTSEP)((OPTSEP)
(OPTSEP)(POINTLIST2)(OPTSEP)(RIGHT PAREN)
(LEFT PAREN)
(OPTSEP)POINTLIST3)(OPTSEP)
(RIGHT PAREN)
((OPTSEP)
《OPTSEP>:: =()★ >0:: --((SEP)(CELLLIST>>1
((SEP)
(OPTSEP)
(RIGHT PAREN)
:: -(OPTSEP)
(R:FIRST ELEMENT IN ROW)
(R:SECOND ELEMENT IN ROW>
(R:LAST ELEMENT IN ROW)
(OPTSEP)
:: -(LEFT PAREN>
MATRIX2D
MATRIX3D
COLRVLIST
COLRVLISTS
COLRVROWS
COORDLIST
CURVEAPPROXDATAREC
DATAMAPPINGDATAREC
GB/T 17151. 3-1997
(OPTSEP)
(R:THIRD ELEMENT IN ROW)
(R:LAST ELEMENT IN ROW)
:: =
(ROWMATRIX2D)
(ROWMATRIX2D)
::=(ROWMATRIX3D)
《SEP)
(ROWMATRIX3D)
:: =(COORDLIST :COLOUR _ COORDINATES))
:: -(OPTSEP>
((COLRV)((SEP)COLRV))*)0
(OPTSEP)<(RIGHT PAREN>
:: (LEFT PAREN)(OPTSEP)
<(COLRV)<(SEP)* )0
(OPTSEP>(RIGHT PAREN)
:: =COLRVLISTS
::《I>I坐标数据}
:: -(LEFT PAREN)(OPTSEP)
(COORD>COORD>*
(OPTSEP):: =<
I>0
:: =(OPTSEP)
DATAMAPPINGDATAREC1
DATAMAPPINGDATAREC2
DATAMAPPINGDATAREC3
DATAMAPPINGDATAREC4
DATAMAPPINGDATAREC5
DATASURF
GB/T 17151. 3—1997
i(DATAMAPPINGDATAREC2)
I(DATAMAPPINGDATAREC4>
[
I(S:METHOD_ DEPENDENT_DATA)
(OPTSEP)(RIGHT PAREN)
:: =(SOURCESELECTORLIST :SELECTOR):: = (SOURCESELECTORLIST:SELECTOR)(SEP)(I:INDEX>(SEP)
(R:UPPER_LIMIT>(SEP)
(I:COLOUR _ TYPE)(CORLVLIST :COLOUR _ LIST>
:: =(SOURCESELECTORLIST:SELECTOR>(SEP>(I:INDEX)(SEP)
(RLIST:RANGE_ BOUNDARIES)(SEP)(CORLVLIST:COLOUR LIST)
:: =(SOURCESELECTORLIST:SELECTOR)(SEP)(I:INDEX_ 1>(SEP)
(SEP)
(R:Ra_ LOWER_ LIMIT)(SEP)
(SEP)
(R:Rb_LOWER_LIMIT>(R:Rb UPPER LIMIT)(SEP)
(I:COLOUR _ TYPE)(SEP)
:: =(SOURCESELECTORLIST :SELECTOR)(SEP)(CORLVLISTS:COLOUR_LISTS)
:: =(SEP>
(I:V_ORDER>(SEP)
(RLIST:U_ KNOTS)(SEP)
(RLIST:V_ KNOTS)(SEP)
(RATIONALINONRATIONAL)(SEP)
(RLISTSLIST :CONTROL POINTS
(OPTSEP)小提示:此标准内容仅展示完整标准里的部分截取内容,若需要完整标准请到上方自行免费下载完整标准文档。