一、INTRODUCTION

Internal Forms Representation(IFR)是一种二进制编码,这种编码被设计的相对容易解析和以编程的方式操作。为了简化IFR的生成,一种高可视化的表单表示语言(VFR)产生。使用这种语言编译器可以将包含VFR的普通文本文件作为输入,输出IFR文件。接下来,介绍一种BNF风格的方法。

formset & endformset:表单集,有且仅有一个,构成了界面的主体,其它的界面组件在它的内部。例如可以将BIOS setup所有的页面放在一个表单集中

formset guid = SETUP_FORM_SET_GUID
    title     =    STRING_TOKEN(STR_SETUP),
    help    =    STRING_TOKEN(STR_SETUP_HELP),
    class    =    SETUP_FORM_SET_CLASS,
    subclass    =    0,
    ...
    endformset

form & endform表单:包含在表单集中,可以将setup的一个页面作为一个表单

form formid    =    AUTO_ID(ADVANCED_MAIN),
    title    =    STRING_TOKEN(STRING_ADVANCED);
    ...
    endform;

varstore:用于定义设置选项将引用的变量,varstore语法需要放在formset和form之间

goto :用于转到另一个表单页面,就像超链接一样

subtitle:

text:

checkbox & endcheckbox :用于创建一个复选框,让用户选择是或否,需要将其置于表单和结束表单之间

checkbox varid    =    AMITSESETUP.AMISilentBoot,\
    prompt    =    STRING_TOKEN(STR_QUIET_BOOT),\
    flags    =    0,\
    key    =    0,\
    default    =    DEFAULT_QUIET_BOOT,\
    default    =    DEFAULT_QUIET_BOOT, defaultstore = AmiFmgDefault,\
    endcheckbox;

其中,varid:此复选框引用的变量
      prompt:复选框的名称
      help:
      flags:这个问题的默认值,1为打开 0为关闭

oneof & endoneof:用于创建具有更多选择的选项

oneof varid    =    BOOT_ORDER.Value,
    prompt    =    STRING_TOKEN(STR_BOOT_ORDER_X),
    help    =    STRING_TOKEN(STR_BOOT_ORDER_HELP),
    flags    =    0,
    option text    =    STRING_TOKEN(STR_EMPTY), value=0, flags=0;
    option text    =    STRING_TOKEN(STR_EMPTY), value=1, flags=0;
    default    =    0,
    default    =    0, defaultstore    =    AmiMfgDefault,
    endoneof;

grayoutif & suppressif:用于iterm的变灰不可须以及是否隐藏,ideqval:如果变量的值等于某个值,则表示变灰或者隐藏。

suppressif ideqval SERVER_MGMT_CONFIGURATION_DATA.BmcSupport == 0;
grayoutif ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER;

numeric $ endnumeric:用于创建用户允许用户输入数字的字段,也就是说可以设置数字,不过最多不大于65535

numeric varid = TIMEOUT.Value,
            prompt    = STRING_TOKEN(STR_BOOT_TIMEOUT),
            help      = STRING_TOKEN(STR_BOOT_TIMEOUT_HELP),
            minimum   = 0x1,
            maximum   = 0xffff,
            step      = 1,
            default   = DEFAULT_BOOT_TIMEOUT,
        endnumeric;

	Definitions:
		prompt: Name string for this question.
		help: help string for this question.
		minimum: minimum number of this question.问题的最小值
		maximum: maximum number of this question.问题的最大值
		step: step for this question.
		default: default value.

password & endpassword:用于为输入密码创建字段

 password varid  = AMITSESETUP.AdminPassword,
           prompt      = STRING_TOKEN(STR_ADMIN_PASSWORD),
           help       = STRING_TOKEN(STR_ADMIN_PASSWORD_HELP),
           flags       = 0,
           minsize     = 0,
           maxsize     = PASSWORD_MAX_SIZE,
           encoding    = 1,
       endpassword;
	Definitions:
		minsize: minimum length for the password. 密码的最小长度
		maxsize: maximum length for the password. 密码的最大长度
		encoding: encoding or not, 1 = enable encoding.

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐