本文整理匯總了TypeScript中@masala/parser.F類的典型用法代碼示例。如果您正苦於以下問題:TypeScript F類的具體用法?TypeScript F怎麽用?TypeScript F使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
在下文中一共展示了F類的10個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: combinator
function combinator() {
return C.letters()
.then(C.char(' '))
.then(C.lowerCase().rep())
.then(C.char(' '))
.then(C.notString('romane').rep())
.then(F.eos());
}
示例2: combinator
function combinator() {
return F.any().then(day()).then(F.nop()).then(F.any()).thenEos();
}
示例3: combinator
function combinator() {
return F.not(day()).then(F.not(a())).then(F.not(day()));
}
示例4: combinator
function combinator() {
return F.startWith('hello: ')
.then(F.moveUntil('brown'))
.then(C.string('brown'))
.then(F.dropTo('dog'))
}
示例5: emptyTry
function emptyTry() {
return F.try(C.string('xyz'));
}
示例6:
import {Streams, F, C, N} from '@masala/parser'
import {assertEquals, assertArrayEquals, assertTrue} from '../../assert';
// Parsec needs a stream of characters
const document = '12';
const s = Streams.ofString(document);
// numberLitteral defines any int or float number
// We expect a number, then eos: End Of Stream
// We use drop() because we don't need the value of F.eos, we only want 12
const numberParser = N.numberLiteral().then(F.eos().drop());
const parsing = numberParser.parse(s);
// If the parser reached the end of stream (F.eos) without rejection, parsing is accepted
assertTrue(parsing.isAccepted());
// The parser has a 12 value inside the monoid
assertEquals (12, parsing.value);
示例7:
import {Streams, F, C, N} from '@masala/parser'
import {assertEquals} from '../../assert';
/**
* Created by Nicolas Zozol on 05/11/2017.
*/
const stream = Streams.ofString('abc');
const charsParser = C.char('a')
.then(C.char('b'))
.then(C.char('c'))
.then(F.eos().drop()); // End Of Stream ; droping its value, just checking it's here
let charsParsing = charsParser.parse(stream);
assertEquals('abc', charsParsing.value.join(''), 'Chars parsing');
示例8: multExpr
function multExpr() {
return andOperation().drop().then(terminal())
.then(F.lazy(optionalMultExpr))
.map(([left,right]) => left * right.orElse(1));
}
示例9: B
/**
* There is recursion, and we call A with lazy. We send PARAMETERS to A
* within an array
*/
function B(aVal) {
return C.char('B').map(bVal=> aVal.join('')+'-'+bVal).or(F.lazy(A, ['a']));
}
示例10: plusExpr
function plusExpr() {
return plusOperation().drop().then(subExpr())
.then(F.lazy(optionalPlusExpr))
.map(([left,right])=>left+right.orElse(0));
}