Class JsParser

java.lang.Object
xyz.cofe.cxel.parse.BaseParser
xyz.cofe.cxel.js.JsParser
All Implemented Interfaces:
GRCache

public class JsParser
extends BaseParser
Парсер JS выражений
  • Nested Class Summary

    Nested Classes 
    Modifier and Type Class Description
    static class  JsParser.GRBool
    Литерал - булево
    static class  JsParser.GRNull
    Литерал - null

    Nested classes/interfaces inherited from class xyz.cofe.cxel.parse.BaseParser

    BaseParser.Atomic<T extends xyz.cofe.text.tparse.CToken,​A extends AST>
  • Field Summary

    Fields 
    Modifier and Type Field Description
    xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> addSub  
    xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> and  
    xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> atom
    первичная "атомарная" конструкция
    xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> bitAnd  
    xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> bitOr  
    xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> bitShift  
    xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> bitXor  
    xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> bool
    Литерал - булево
    xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> compare  
    xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> equals  
    xyz.cofe.text.tparse.ProxyGR<xyz.cofe.text.tparse.TPointer,​AST> expression
    Выражение
    xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> floatNumber
    Литерал - дробное число
    xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> ifOp  
    xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> intNumber
    Литерал - целое число
    xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> literal
    Литерал - литерал
    xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> mulDiv  
    xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> nullz
    Литерал - null
    xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> number
    Литерал - число
    xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> or  
    xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> parenthes
    Круглые скобки
    xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> power  
    xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> primary  
    xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> string
    Литерал - строка
    xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> unaryExression
    Унарный оператор
    xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> varRef  

    Fields inherited from class xyz.cofe.cxel.parse.BaseParser

    cache, dummyInst
  • Constructor Summary

    Constructors 
    Constructor Description
    JsParser()  
  • Method Summary

    Modifier and Type Method Description
    static xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​? extends AST> list​(xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​? extends AST> expr)
    Список значений
    list ::= '[' [ expression { ',' expression } ] ']'
    static xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​? extends AST> map​(xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​? extends AST> literal, xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​? extends AST> expr)
    Карта значений
    static xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> postfix​(xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> grBase, xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> expr)
    Раширение atom до операций: доступа к полю объекта вызов метода доступ к элементу массива postfix ::= atom {
    '.' IdTok
    | '(' [ expression { ',' expression } ] ')'
    | '[' expression ']'
    }

    Methods inherited from class xyz.cofe.cxel.parse.BaseParser

    atomic, binaryOp, cache, dummy, source, source

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • intNumber

      public final xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> intNumber
      Литерал - целое число
    • floatNumber

      public final xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> floatNumber
      Литерал - дробное число
    • number

      public final xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> number
      Литерал - число
    • bool

      public final xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> bool
      Литерал - булево
    • nullz

      public final xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> nullz
      Литерал - null
    • string

      public final xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> string
      Литерал - строка
    • literal

      public final xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> literal
      Литерал - литерал
    • expression

      public final xyz.cofe.text.tparse.ProxyGR<xyz.cofe.text.tparse.TPointer,​AST> expression
      Выражение
    • parenthes

      public final xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> parenthes
      Круглые скобки
    • unaryExression

      public final xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> unaryExression
      Унарный оператор
    • varRef

      public final xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> varRef
    • atom

      public final xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> atom
      первичная "атомарная" конструкция
    • primary

      public final xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> primary
    • power

      public final xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> power
    • mulDiv

      public final xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> mulDiv
    • addSub

      public final xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> addSub
    • bitShift

      public final xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> bitShift
    • compare

      public final xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> compare
    • equals

      public final xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> equals
    • bitAnd

      public final xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> bitAnd
    • bitXor

      public final xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> bitXor
    • bitOr

      public final xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> bitOr
    • and

      public final xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> and
    • or

      public final xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> or
    • ifOp

      public final xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> ifOp
  • Constructor Details

  • Method Details

    • map

      public static xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​? extends AST> map​(xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​? extends AST> literal, xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​? extends AST> expr)
      Карта значений
      Parameters:
      literal - литеральное значение
      expr - выражение
      Returns:
      парсер правила
    • list

      public static xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​? extends AST> list​(xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​? extends AST> expr)
      Список значений
      list ::= '[' [ expression { ',' expression } ] ']'
      Parameters:
      expr - ссылка на правило expression
      Returns:
      Правило создания списка
    • postfix

      public static xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> postfix​(xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> grBase, xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> expr)
      Раширение atom до операций:
      • доступа к полю объекта
      • вызов метода
      • доступ к элементу массива
      postfix ::= atom {
      '.' IdTok
      | '(' [ expression { ',' expression } ] ')'
      | '[' expression ']'
      }
      Parameters:
      grBase - ссылка на atom
      Returns:
      Расширение atom