Workflowy selector parser

A parser for a DSL used to select specific items in a Workflowy hierarchy.

2016-08-12 기준 버전입니다. 최신 버전을 확인하세요.

이 스크립트는 직접 설치하는 용도가 아닙니다. 다른 스크립트에서 메타 지시문 // @require https://update.greatest.deepsurf.us/scripts/22247/141330/Workflowy%20selector%20parser.js을(를) 사용하여 포함하는 라이브러리입니다.

작성자
fiatjaf
버전
0.0.1.20160812143603
생성일
2016-08-12
갱신일
2016-08-12
크기
16.8KB
라이선스
해당 없음

Intended to be required by Workflowy userscripts.

pegjs source:

expr
  = s:selector _ ch:(connector? _ selector _)* {
    return [[null, s]].concat(ch.map(s => [s[0], s[2]]))
  }

selector
  = id:('#' [a-z0-9-]i+) { return {type: 'id', val: id[1].join('')} }
  / re:('/' [^/]+ '/') { return {type: 'regex', val: re[1].join('')} }
  / name:("'" [^']i+ "'") { return {type: 'name', val: name[1].join('')} }
  / any:'*' { return {type: 'any'} }

connector
  = '>' { return 'directchild' }

_ = ' '*