當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript moo.compile函數代碼示例

本文整理匯總了TypeScript中moo.compile函數的典型用法代碼示例。如果您正苦於以下問題:TypeScript compile函數的具體用法?TypeScript compile怎麽用?TypeScript compile使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。


在下文中一共展示了compile函數的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1:

import * as moo from 'moo';

let lexer = moo.compile({
    lparen: '(',
    word: /[a-z]+/,
    rparen: ')',
    keyword: ['while', 'if', 'else', 'moo', 'cows']
});

lexer = moo.compile({
    WS: /[ \t]+/,
    comment: /\/\/.*?$/,
    number: /0|[1-9][0-9]*/,
    string: /"(?:\\["\\]|[^\n"\\])*"/,
    lparen: '(',
    rparen: ')',
    keyword: ['while', 'if', 'else', 'moo', 'cows'],
    NL: { match: /\n/, lineBreaks: true },
});

lexer = moo.compile({
    IDEN: {
        match: /[a-zA-Z]+/, keywords: {
            KW: ['while', 'if', 'else', 'moo', 'reloacows']
        }
    },
    SPACE: { match: /\s+/, lineBreaks: true }
});

lexer = moo.compile({
    name: {
開發者ID:Dru89,項目名稱:DefinitelyTyped,代碼行數:31,代碼來源:moo-tests.ts

示例2:

import * as moo from 'moo';

let lexer = moo.compile({
    lparen: '(',
    word:  /[a-z]+/,
    rparen: ')',
    keyword: ['while', 'if', 'else', 'moo', 'cows']
});

lexer = moo.states({
    main: {
        strstart: {match: '`', push: 'lit'},
        ident:    /\w+/,
        lbrace:   {match: '{', push: 'main'},
        rbrace:   {match: '}', pop: 1},
        colon:    ':',
        space:    {match: /\s+/, lineBreaks: true},
    },
    lit: {
        interp:   {match: '${', push: 'main'}, // tslint:disable-line no-invalid-template-strings
        escape:   /\\./,
        strend:   {match: '`', pop: 1},
        const:    {match: /(?:[^$`]|\$(?!\{))+/, lineBreaks: true},
    },
});

lexer.reset('some line\n');
const info = lexer.save();
lexer.next();
lexer.next();
lexer.reset('a different line\n', info);
開發者ID:AbraaoAlves,項目名稱:DefinitelyTyped,代碼行數:31,代碼來源:moo-tests.ts


注:本文中的moo.compile函數示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。