iAutomator

版本

v0.1.0

语言概述

该语言用于定义自动化脚本,可以通过该脚本来创建浏览器的自动化操作,例如打开网页、点击、输入文字等,从而提高浏览的体验与效率。

语言规则

该语言由以下几个部分组成:

  1. 注释,支持单行以及行内注释,以 # 开头
  2. automation 定义块:
    automation for "{url pattern}" on "{stage: immediate | load | delay}"
    # 这里是具体的语句
    end
    
  3. statement 语句 语句写在 automation 块里,主要有以下三大类语句:
    • 赋值语句
      • 格式为: set var = {值 | 变量 | listen 表达式 | get 表达式}

例子

## 文法

 Script ::= *empty*
       ::= Automations

Automations ::= Automation
            ::= Automations
Automation::= automation AutomationHead AutomationBody end

AutomationHead ::= for URLRegString on Stage
Stage ::= '"immediate"'
      ::= '"load"'
      ::= '"delay"'
      
URLRegString ::= string
      
AutomationBody ::= Statements
Statements ::= Statement
           ::= Statements
           
Statement ::= AssignStatement
          ::= NativeStatement
          ::= ApplyStatement
          
AssignStatement ::= AssignExp = ValuableExp
                
ValuableExp ::= ValueExp
            ::= Identifier
            ::= ListenExp
            ::= GetValueExp
            
ValueExp ::= number
         ::= string
         ::= bool
            
ListenExp ::= listen EventNameExp on EventScopeExp
EventNameExp ::= string
EventScopeExp ::= '"global"'
              ::= CssSelectorExp
              
NativeStatement ::= OpenStatement
                ::= ActiveStatement
                ::= WaitStatement
                ::= CloseStatement
                ::= EmitStatement
                ::= ListenStatement
                
OpenStatement ::= OpenExp
OpenExp ::= open URLString as URLRegString
URLString ::= string

ActiveStatement ::= ActiveExp
ActiveExp ::= active

WaitStatement ::= WaitExp
WaitExp ::= wait number
                 
CloseStatement ::= close

EmitStatement ::= emit EventNameExp with ArgPairs

ListenStatement ::= ListenExp

ApplyStatement ::= apply ActionNameExp with ArgPairs on CssSelectorExp 
ActionNameExp ::= string

ArgPairs ::= (ArgsExp)
         
ArgsExp ::= empty
        ::= ArgExp
        ::= ArgExp, ArgsExp
        
ArgExp ::= Identifier
       ::= Identifier = ValueExp
       ::= Identifier = Identifier

CssSelectorExp ::= string