Workflowy selector parser

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

Tính đến 12-08-2016. Xem phiên bản mới nhất.

Script này sẽ không được không được cài đặt trực tiếp. Nó là một thư viện cho các script khác để bao gồm các chỉ thị meta // @require https://update.greatest.deepsurf.us/scripts/22247/141330/Workflowy%20selector%20parser.js

Tác giả
fiatjaf
Phiên bản
0.0.1.20160812143603
Đã tạo
12-08-2016
Đã cập nhật
12-08-2016
Size
20 KB
Giấy phép
N/A

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' }

_ = ' '*