public IfLet(ParserRuleContext ctx, Visitor visitor) {
SwiftParser.Condition_clauseContext conditionClause = ctx instanceof SwiftParser.If_statementContext ? ((SwiftParser.If_statementContext)ctx).condition_clause() : ((SwiftParser.Guard_statementContext)ctx).condition_clause();
if(!(WalkerUtil.isDirectDescendant(SwiftParser.Optional_binding_conditionContext.class, conditionClause))) return;
ArrayList<ParserRuleContext> ifLets = new ArrayList<ParserRuleContext>();
ifLets.add(conditionClause.condition_list().condition(0).optional_binding_condition().optional_binding_head());
if(conditionClause.condition_list().condition(0).optional_binding_condition().optional_binding_continuation_list() != null) {
List<SwiftParser.Optional_binding_continuationContext> moreIfLets = conditionClause.condition_list().condition(0).optional_binding_condition().optional_binding_continuation_list().optional_binding_continuation();
for(int i = 0; i < moreIfLets.size(); i++) ifLets.add(moreIfLets.get(i));
}
/*for(int i = 0; i < ifLets.size(); i++) {
String varName = visitor.visitWithoutTerminals(ifLets.get(i) instanceof SwiftParser.Optional_binding_headContext ? ((SwiftParser.Optional_binding_headContext)ifLets.get(i)).pattern() : ((SwiftParser.Optional_binding_continuationContext)ifLets.get(i)).pattern()).trim();
Expression varVal = new Expression((ifLets.get(i) instanceof SwiftParser.Optional_binding_headContext ? ((SwiftParser.Optional_binding_headContext)ifLets.get(i)).initializer() : ((SwiftParser.Optional_binding_continuationContext)ifLets.get(i)).initializer()).expression(), null, visitor);
varNames.add(varName);
varVals.add(varVal.code);
varTypes.add(varVal.type);
}*/
}
ControlFlow.java 文件源码
java
阅读 28
收藏 0
点赞 0
评论 0
项目:ts-swift-transpiler
作者:
评论列表
文章目录