当前位置: 首页>>代码示例>>TypeScript>>正文


TypeScript config-parser.Ast类代码示例

本文整理汇总了TypeScript中config-parser.Ast的典型用法代码示例。如果您正苦于以下问题:TypeScript Ast类的具体用法?TypeScript Ast怎么用?TypeScript Ast使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了Ast类的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。

示例1: updateMissionSqm

function updateMissionSqm(missionSqmPath: string): Parser.Node {
    var missionSqm = fs.readFileSync(missionSqmPath, 'UTF-8');
    var ast = Parser.create(missionSqm, Lexer.create(missionSqm)).parse();
    _.remove(Ast.select(ast, 'Mission.Entities')[0].fields, n => {
        var dataType = Ast.select(n, 'dataType')[0];
        return dataType && dataType.value != 'Group';
    });

    var groupItems = Ast.select(ast, 'Mission.Entities.Item*').filter(e => Ast.select(e, 'dataType')[0].value == 'Group');
    _.each(groupItems, g => {
        _.chain(Ast.select(g, 'Entities.Item*'))
        .each(v => { removeRolePrefix(v); })
        .value();
    });

    var hmgGroups = Ast.select(ast, 'Mission.Entities.Item*')
        .filter(e => Ast.select(e, 'dataType')[0].value == 'Group')
        .filter(e => Ast.select(e, 'Entities.Item0.Attributes.description')[0].value.indexOf('HMG') >= 0);
    _.each(hmgGroups, g => {
        _.remove(Ast.select(g, 'Entities')[0].fields, u => {
            var description = Ast.select(u, 'Attributes.description')[0];
            return description
                && description.value.indexOf('HMG') >= 0
                && description.value.indexOf('Assistant') >= 0;
        });
        Ast.select(g, 'Entities.items')[0].value = Ast.select(g, 'Entities.Item*').length;
        Ast.select(g, 'Entities.Item2')[0].fieldName = "Item1";
    });
    Ast.select(ast, 'Mission.Entities.items')[0].value = Ast.select(ast, 'Mission.Entities.Item*').length;
    return ast;
}
开发者ID:Cyruz143,项目名称:shipyard,代码行数:31,代码来源:RandomEngagements.ts

示例2:

 _.each(hmgGroups, g => {
     _.remove(Ast.select(g, 'Entities')[0].fields, u => {
         var description = Ast.select(u, 'Attributes.description')[0];
         return description
             && description.value.indexOf('HMG') >= 0
             && description.value.indexOf('Assistant') >= 0;
     });
     Ast.select(g, 'Entities.items')[0].value = Ast.select(g, 'Entities.Item*').length;
     Ast.select(g, 'Entities.Item2')[0].fieldName = "Item1";
 });
开发者ID:Cyruz143,项目名称:shipyard,代码行数:10,代码来源:RandomEngagements.ts

示例3: updateMissionSqm

function updateMissionSqm(missionSqmPath: string) {
    var missionSqm = fs.readFileSync(missionSqmPath, 'UTF-8');
    var ast = Parser.create(missionSqm, Lexer.create(missionSqm)).parse();
    _.remove(Ast.select(ast, 'Mission.Entities')[0].fields, n => {
        var dataType = Ast.select(n, 'dataType')[0];
        return dataType && dataType.value != 'Group'
    });
    Ast.select(ast, 'Mission.Entities.items')[0].value = Ast.select(ast, 'Mission.Entities.Item*').length;
    var groupItems = Ast.select(ast, 'Mission.Entities.Item*').filter(e => Ast.select(e, 'dataType')[0].value == 'Group');
    _.each(groupItems, g => {
        _.chain(Ast.select(g, 'Entities.Item*'))
        .each(v => { removeRolePrefix(v); })
        .value();
    });
    fs.writeFileSync(missionSqmPath, PrettyPrinter.create('\t').print(ast), 'UTF-8');
}
开发者ID:Cyruz143,项目名称:shipyard,代码行数:16,代码来源:TownSweep.ts

示例4: getTemplates

function getTemplates(filePath: string, parentSelector: string): Template[] {
    var ast = parseFile(filePath);
    var templateAst = Ast.select(ast, `${parentSelector}.*`);
    return templateAst.map(ut => ({
        id: ut.fieldName,
        name: ut.fieldName,
        description: ''
    }));
}
开发者ID:Cyruz143,项目名称:shipyard,代码行数:9,代码来源:Admiral.ts

示例5: generateMission

export function generateMission(terrainId: string): Mission.GeneratedMission {
    var mission = defaultMission(terrainId);
    var generatedMission = Mission.generateMission(mission);
    var missionSqmPath = `${generatedMission.missionDir}/mission.sqm`;
    var missionAst = updateMissionSqm(missionSqmPath);
    var maxPlayers = Mission.getPlayableUnitCount(missionAst);
    var fullMissionName = `ark_${Mission.missionTypeToMissionNamePrefix(Mission.stringToMissionType(mission.missionTypeName))}${maxPlayers}_${mission.briefingName.toLowerCase()}`;
    updateDescriptionExt(`${generatedMission.missionDir}/description.ext`, maxPlayers);

    generatedMission.downloadMissionName = `${fullMissionName}.${mission.terrainId}`;
    Ast.select(missionAst, 'ScenarioData.Header.maxPlayers')[0].value = maxPlayers;
    Ast.select(missionAst, 'Mission.Intel.briefingName')[0].value = fullMissionName;

    fs.writeFileSync(missionSqmPath, PrettyPrinter.create('\t').print(missionAst), 'UTF-8');
    fs.copySync(`${RE_HOME}/blufor_briefing.sqf`, `${generatedMission.missionDir}/hull3/briefing/blufor.sqf`);
    fs.copySync(`${RE_HOME}/opfor_briefing.sqf`, `${generatedMission.missionDir}/hull3/briefing/opfor.sqf`);

    return generatedMission;
}
开发者ID:Cyruz143,项目名称:shipyard,代码行数:19,代码来源:RandomEngagements.ts

示例6:

 templates.forEach(t => {
     Ast.select(admiralAst, 'Admiral.' + t.selector)[0].value = t.value;
 })
开发者ID:Cyruz143,项目名称:shipyard,代码行数:3,代码来源:Admiral.ts

示例7: removeRolePrefix

 _.each(groupItems, g => {
     _.chain(Ast.select(g, 'Entities.Item*'))
     .each(v => { removeRolePrefix(v); })
     .value();
 });
开发者ID:Cyruz143,项目名称:shipyard,代码行数:5,代码来源:TownSweep.ts

示例8:

 var groupItems = Ast.select(ast, 'Mission.Entities.Item*').filter(e => Ast.select(e, 'dataType')[0].value == 'Group');
开发者ID:Cyruz143,项目名称:shipyard,代码行数:1,代码来源:TownSweep.ts


注:本文中的config-parser.Ast类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。