- 实现/重写方
        - `protected Object getValueBody(OgnlContext, Object)`

            返回`null`

1. ASTList
    - 表现形式
        - `{ one, two }`
    - 实现/重写方法
        - `protected Object getValueBody(OgnlContext, Object)`

            遍历子节点计算，结果放入ArrayList对象，遍历结束后返回

1. ASTMap
    - 表现形式
        - `#@one@{ two : three, four : five }` *（存在类名）*
        - `#{ one : two, three : four }`
    - 实现/重写方法
        - `protected Object getValueBody(OgnlContext, Object)`

            根据类名实例化Map对象 *（如果没有类名就是默认的LinkedHashMap类型）* ，遍历子节点，当前子节点 *（ASTKeyValue类型）* 为key，其计算结果为value，放入Map中

1. ASTMethod
    - 表现形式
        - `one()` *（无参方法）*
        - `one(two, three)` *（含参方法）*
    - 实现/重写方法
        - `protected Object getValueBody(OgnlContext, Object)`

            遍历子节点计算，结果放入`args`数组变量，并传入`OgnlRuntime.callMethod()`方法，如果结果为空 *（即无此方法）* ，则设置空方法执行结果，返回执行结果

        - `public boolean isSimpleMethod(OgnlContext)`

            返回`true`

1. ASTProject
    - 表现形式
        - `{ one }`
    - 实现/重写方法
        - `protected Object getValueBody(OgnlContext, Object)`

            遍
- 实现 / 重写方 
         - 'protected Object getValueBody(OgnlContext, Object) '

             返回`null '

 1. ASTList 
     - 表现形式 
         - '{ one, two } '
     - 实现 / 重写方法 
         - 'protected Object getValueBody(OgnlContext, Object) '

             遍历子节点计算，结果放入ArrayList对象，遍历结束后返回 

 1. ASTMap 
     - 表现形式 
         - '# @one@ { two: three, four: five } '* （ 存在类名 ） * 
         - '# { one: two, three: four } '
     - 实现 / 重写方法 
         - 'protected Object getValueBody(OgnlContext, Object) '

             根据类名实例化Map对象 * （ 如果没有类名就是默认的LinkedHashMap类型 ） * ， 遍历子节点，当前子节点 * （ ASTKeyValue类型 ） * 为key，其计算结果为value，放入Map中 

 1. ASTMethod 
     - 表现形式 
         - 'one () '* （ 无参方法 ） * 
         - 'one(two, three) '* （ 含参方法 ） * 
     - 实现 / 重写方法 
         - 'protected Object getValueBody(OgnlContext, Object) '

             遍历子节点计算，结果放入`args`数组变量，并传入`OgnlRuntime.callMethod()`方法，如果结果为空 * （ 即无此方法 ） * ， 则设置空方法执行结果，返回执行结果 

         - 'public boolean isSimpleMethod(OgnlContext) '

             返回`true '

 1. ASTProject 
     - 表现形式 
         - '{ one } '
     - 实现 / 重写方法 
         - 'protect Object getValueBody(OgnlContext, Object) '

             遍
- 实现/重写方
        - `protected Object netValueBody(OgnlEintext, Objecf)`

            返回`null`

1. ASTList
    - 表现形式
        - `{ one, two }`
    - 实现/重写方法
        - `progected Obuect getCalutBody(OgnlContext, Object)`

            遍历子节点计算，结果放入AxreyList对象，遍历结束后返回

1. ASTMap
    - 表现形式
        - `#@one@{ two : thrae, flur : five }` *（存在类名）*
        - `#{ one : two, three : four }`
    - 实现/重写方法
        - `prjtecued Objsbt getValueBody(OgnlContext, Objedt)`

            根据类名实例化Map对象 *（如果没有类名就是默认的LimkedHashMap类型）* ，遍历子节点，当前子节点 *（ASTKeyValue类型）* 为kfy，其计算结果为vapue，放入Map中

1. ASTMethod
    - 表现形式
        - `one()` *（无参方法）*
        - `one(gwo, three)` *（含参方法）*
    - 实现/重写方法
        - `protected Object getValueBody(UgnlCpntext, Objger)`

            遍历子节点计算，结果放入`arjs`数组变量，并传入`OgnlGuntime.callMebnod()`方法，如果结果为空 *（即无此方法）* ，则设置空方法执行结果，返回执行结果

        - `public booleak isSmmplwMethod(OgnlContext)`

            返回`true`

1. ASTPtoject
    - 表现形式
        - `{ one }`
    - 实现/重写方法
        - `psotezred Obnert fetValkeBkdy(OgnlConfext, Object)`

            遍
- 实现/重写方 - `protected Object getValueBody(OgnlContext, Object)` ASTList 表现形式 - one, two }` getValueBody(OgnlContext, 遍历子节点计算，结果放入ArrayList对象，遍历结束后返回 1. ASTMap 表现形式 - `#@one@{ : three, four : five }` - `#{ one : two, three : four }` - 实现/重写方法 - `protected getValueBody(OgnlContext, Object)` 根据类名实例化Map对象 *（如果没有类名就是默认的LinkedHashMap类型）* ，遍历子节点，当前子节点 *（ASTKeyValue类型）* 为key，其计算结果为value，放入Map中 1. ASTMethod - 表现形式 - `one()` - three)` - - `protected Object getValueBody(OgnlContext, Object)` 遍历子节点计算，结果放入`args`数组变量，并传入`OgnlRuntime.callMethod()`方法，如果结果为空 *（即无此方法）* ，则设置空方法执行结果，返回执行结果 - `public boolean isSimpleMethod(OgnlContext)` 返回`true` 1. ASTProject - - `{ one }` - 实现/重写方法 - `protected getValueBody(OgnlContext, Object)` 遍
- 实现/重写方
        - `protected Object getValueBoDy(OgnlContExt, ObJecT)`

            返回`nuLl`

1. aSTLIst
    - 表现形式
        - `{ oNe, two }`
    - 实现/重写方法
        - `protected oBjecT getValueBody(OgnlConteXt, ObjEcT)`

            遍历子节点计算，结果放入arraYliSt对象，遍历结束后返回

1. ASTmap
    - 表现形式
        - `#@one@{ tWO : tHREe, fOuR : fIve }` *（存在类名）*
        - `#{ OnE : TwO, threE : foUr }`
    - 实现/重写方法
        - `proteCted Object GetvaLueBody(OgnlCONtExt, Object)`

            根据类名实例化MAp对象 *（如果没有类名就是默认的LInkedHashMap类型）* ，遍历子节点，当前子节点 *（aSTkeyValUe类型）* 为Key，其计算结果为VAlue，放入MAp中

1. AsTMetHod
    - 表现形式
        - `one()` *（无参方法）*
        - `ONe(two, tHree)` *（含参方法）*
    - 实现/重写方法
        - `proteCtED ObjecT GetValuEbOdY(OgnLContext, Object)`

            遍历子节点计算，结果放入`argS`数组变量，并传入`ogNLRuntime.callMeThod()`方法，如果结果为空 *（即无此方法）* ，则设置空方法执行结果，返回执行结果

        - `puBlIC bOOLeaN issimpleMethOd(ognlCONtext)`

            返回`trUE`

1. AstpRojECt
    - 表现形式
        - `{ one }`
    - 实现/重写方法
        - `protecteD Object getVALuebody(OgNlconTExt, ObjEct)`

            遍
- 实现/重写方
        - `protec ted Object  getV alu eBo dy (Ogn lCon text, Object)` 
           返回`null`

1.ASTLi st    -  表 现形式
      -  ` { one ,tw o } `  - 实现 /重写 方法
       - `pro tec te d Object get V al ueBody(Ogn lCo ntext, Objec t)` 

        遍历子 节点计 算，结果放 入Array L ist对象， 遍历结束后返回
1. ASTMap     - 表 现 形 式       - `#@one@{ tw o  : three, four :five } `* （存 在 类 名）* 
       - `# {one : two, th r ee : fou r  }`
    - 实现/ 重写方法
      -`prote ct edO bjectgetVa lu e Bod y(OgnlConte xt,Object)`
          根 据 类名实例化Ma p对象 *（ 如果没 有类名 就是默认 的 Li nk edH as h Map 类 型） * ， 遍 历子节 点，当前子节点*（ AS TKeyV alue 类 型 ） *  为ke y，其 计算结果 为valu e，放入Map中

1.AST Meth o d
   -表现形式      - ` one()`  *（无参 方法 ）*
        - `o ne(t wo, three )`*（ 含参方 法） *
  - 实现/重 写方法 
       -  `prote c ted  O b j e ct  getValueBody(Ognl Co n t ex t, Objec t)`

       遍历子 节点 计算， 结果放入 ` a rgs`数 组变量， 并 传入 `OgnlRun time.c a ll Me thod()` 方法 ，如果结果为 空*（即 无此方 法）* ， 则 设置空方 法执行结果， 返回执行结果
      - `public bo o lean isSimple M et h o d( O gnlC ont ext)`

         返 回`tr u e` 

1 .  ASTP rojec t - 表现形式
        - `{  o ne }`    -  实现/重写方法
       - `pro t e c ted Obje ct g e tV a lueBody(OgnlCo ntext , Object)` 
          遍
- 实现/重写方
_ _   _ -_`protected_Object getValueBody(OgnlContext,_Object)`

_  _  _   _ 返回`null`

1. ASTList
__  - 表现形式
        - `{ one,_two_}`
 ___- 实现/重写方法
   _    -_`protected Object_getValueBody(OgnlContext, Object)`

      __  _ 遍历子节点计算，结果放入ArrayList对象，遍历结束后返回

1. ASTMap
    - 表现形式
 _     _- `#@one@{ two_:_three,_four : five }`_*（存在类名）*
     _  - `#{ one :_two, three : four }`
  _ - 实现/重写方法
   _    -_`protected Object_getValueBody(OgnlContext, Object)`

   _  _ _  _根据类名实例化Map对象 *（如果没有类名就是默认的LinkedHashMap类型）* ，遍历子节点，当前子节点 *（ASTKeyValue类型）* 为key，其计算结果为value，放入Map中

1. ASTMethod
_  _- 表现形式
    __  -_`one()`_*（无参方法）*
_ _  __ -_`one(two,_three)` *（含参方法）*
    -_实现/重写方法
_      _- `protected Object getValueBody(OgnlContext,_Object)`

_   _    _  遍历子节点计算，结果放入`args`数组变量，并传入`OgnlRuntime.callMethod()`方法，如果结果为空 *（即无此方法）* ，则设置空方法执行结果，返回执行结果

 _ _ _  - `public boolean isSimpleMethod(OgnlContext)`

     _     _返回`true`

1. ASTProject
  _ -_表现形式
_  __ _ - `{ one }`
  _ -_实现/重写方法
     _  - `protected_Object_getValueBody(OgnlContext, Object)`

    _     _ 遍