当前位置: 首页>>代码示例>>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;未经允许,请勿转载。