什么是表达式
简单的来说,表达式就是操作数和操作符根据语法规则结合后的结果,它通常被用来执行在变量或值上的操作处理。
主表达式(Primary Expression)
到现在PowerScript的词法分析已经写的差不多了,接下来就要开始写语法分析。语法分析的主要组成部分是表达式(expression),而表达式的主要组成部分则是主表达式。主表达式包含了大部分简单的表达式,如文字量(Literals),字段存取,方法调用和数组存取等。带圆括号的表达式通常也被认为是主表达式。其常见形式如下:
(x)x.yf(x)a[x]x++x--new
super,parent,this分析
什么时候使用super
当直接子类中存在有和父类相同签名的事件或函数时
使用super有哪些限制
1. 不能调用父类中控件的脚本 (猜测super后只能跟随”::”符号)
2. 只能在直接子类的函数或事件中调用父类的事件或函数
在哪些脚本中可以使用parent
1. 窗口中的控件,此时parent指代包含该控件的窗口
2. 定制的用户对象中的控件,这时parent指代定制的用户对象
3. 菜单,这时候parent指代该菜单的上一级菜单
收集的一些script语句
this.ls_array[1]this.event pfc_addrow()this.event rowfocuschanged(ll_row)this.uo_1.function hallo()post function column_order_update_from_grid()event ue_process()close(parent)parent.enabledparent.hide()parent.event ue_postconstructor()parent.function static trigger wf_process( )super::createsuper::clicked;super::event clicked()super::event clicked(xpos, ypos, row, dwo)super::of_remove_tail(anv_tailnode)super::event trigger selectionchanging(oldindex, newindex)iu_tab_postings.post of_enable_sort(dw_main, dw_detail, false)w_main.event doubleclicked(flags, xpos, ypos)dw_main.event pfc_retrieve()cb_ok.event trigger clicked()cb_ok.triggerevent(clicked!)
主表达式语法,还需要再继续完善
primary_expression : '(' expression ')' | IDENTIFIER '!'? // build-in constant | literal | '::' IDENTIFIER // global variables | call_type IDENTIFIER arguments // example: post function to_string() | 'create' 'using'? (STRING_LITERAL|IDENTIFIER) | 'destroy' IDENTIFIER | 'super' '::' call_type? IDENTIFIER arguments? | objectname ('.' IDENTIFIER)* identifier_suffix? ;objectname : 'this' | 'parent' | IDENTIFIER ;call_type : ( 'function' | 'event' | 'static' | 'dynamic' | 'trigger' | 'post' )+ ;identifier_suffix : arguments ('.' IDENTIFIER arguments)* // cascaded calling | '[' expression_list? ']' | call_type IDENTIFIER arguments ;arguments : '(' expression_list? ')' ;literal : STRING_LITERAL | INTEGER_LITERAL | FLOAT_LITERAL | BOOLEAN_LITERAL ;
联系客服