private void populateArrowExprParamTypes(BLangArrowFunction bLangArrowFunction, List<BType> paramTypes) { if (paramTypes.size() != bLangArrowFunction.params.size()) { dlog.error(bLangArrowFunction.pos, DiagnosticCode.ARROW_EXPRESSION_MISMATCHED_PARAMETER_LENGTH, paramTypes.size(), bLangArrowFunction.params.size()); resultType = symTable.semanticError; bLangArrowFunction.params.forEach(param -> param.type = symTable.semanticError); return; } for (int i = 0; i < bLangArrowFunction.params.size(); i++) { BLangSimpleVariable paramIdentifier = bLangArrowFunction.params.get(i); BType bType = paramTypes.get(i); BLangValueType valueTypeNode = (BLangValueType) TreeBuilder.createValueTypeNode(); valueTypeNode.setTypeKind(bType.getKind()); paramIdentifier.setTypeNode(valueTypeNode); paramIdentifier.type = bType; } }
private VariableNode generateBasicVarNode(DiagnosticPos pos, Set<Whitespace> ws, String identifier, boolean isDeclaredWithVar, boolean isExpressionAvailable) { BLangSimpleVariable var = (BLangSimpleVariable) TreeBuilder.createSimpleVariableNode(); var.pos = pos; IdentifierNode name = this.createIdentifier(identifier); var.setName(name); var.addWS(ws); if (isDeclaredWithVar) { var.isDeclaredWithVar = true; } else { var.setTypeNode(this.typeNodeStack.pop()); } if (isExpressionAvailable) { var.setInitialExpression(this.exprNodeStack.pop()); } return var; }
receiver.setTypeNode(typeNode); function.receiver = receiver; function.flagSet.add(Flag.ATTACHED);
receiver.setName(name); receiver.setTypeNode(objectType);
private BLangSimpleVariableDef createVariableDef(BLangExpression expr, BType exprType, BVarSymbol exprTypeSymbol, DiagnosticPos pos, String exprVarName, String objName) { BLangSimpleVariable windowInvokableTypeVariable = ASTBuilderUtil.createVariable(pos, getVariableName(exprVarName), exprType, expr, exprTypeSymbol); BLangUserDefinedType userDefinedType = (BLangUserDefinedType) TreeBuilder.createUserDefinedTypeNode(); userDefinedType.typeName = ASTBuilderUtil.createIdentifier(pos, objName); userDefinedType.type = exprType; windowInvokableTypeVariable.setTypeNode(userDefinedType); return ASTBuilderUtil.createVariableDef(pos, windowInvokableTypeVariable); }
private BLangSimpleVariable createReceiver(DiagnosticPos pos, BLangIdentifier name) { BLangSimpleVariable receiver = (BLangSimpleVariable) TreeBuilder.createSimpleVariableNode(); receiver.pos = pos; IdentifierNode identifier = createIdentifier(Names.SELF.getValue()); receiver.setName(identifier); BLangUserDefinedType structTypeNode = (BLangUserDefinedType) TreeBuilder.createUserDefinedTypeNode(); structTypeNode.pkgAlias = new BLangIdentifier(); structTypeNode.typeName = name; receiver.setTypeNode(structTypeNode); return receiver; }
private BLangSimpleVariableDef createSimpleVariableDef(DiagnosticPos pos, Set<Whitespace> ws, String identifier, boolean isFinal, boolean isExpressionAvailable, boolean isDeclaredWithVar) { BLangSimpleVariable var = (BLangSimpleVariable) TreeBuilder.createSimpleVariableNode(); BLangSimpleVariableDef varDefNode = (BLangSimpleVariableDef) TreeBuilder.createSimpleVariableDefinitionNode(); var.pos = pos; var.addWS(ws); var.setName(this.createIdentifier(identifier)); if (isFinal) { markVariableAsFinal(var); } if (isDeclaredWithVar) { var.isDeclaredWithVar = true; } else { var.setTypeNode(this.typeNodeStack.pop()); } if (isExpressionAvailable) { var.setInitialExpression(this.exprNodeStack.pop()); } varDefNode.pos = pos; varDefNode.setVariable(var); varDefNode.addWS(ws); return varDefNode; }
private BLangSimpleVariableDef createOrderByProcessDef(BLangOrderBy orderBy, BLangSimpleVariable orderingFuncArrVariable, BLangArrayLiteral orderingTypeArrExpr) { BLangSimpleVarRef orderingFuncPointerArr = ASTBuilderUtil.createVariableRef(orderBy.pos, orderingFuncArrVariable.symbol); List<BLangExpression> args = new ArrayList<>(); args.add(createNextProcessFuncPointer(orderBy.pos)); args.add(orderingFuncPointerArr); args.add(orderingTypeArrExpr); BInvokableSymbol orderByProcessInvokableSymbol = (BInvokableSymbol) symResolver. resolvePkgSymbol(orderBy.pos, env, Names.STREAMS_MODULE). scope.lookup(new Name(CREATE_ORDER_BY_METHOD_NAME)).symbol; BType orderByProcessInvokableType = orderByProcessInvokableSymbol.type.getReturnType(); BVarSymbol orderByProcessInvokableTypeVarSymbol = new BVarSymbol(0, new Name(getVariableName(ORDER_BY_PROCESS_FUNC_REFERENCE)), orderByProcessInvokableSymbol.pkgID, orderByProcessInvokableType, env.scope.owner); nextProcessVarSymbolStack.push(orderByProcessInvokableTypeVarSymbol); BLangInvocation orderByProcessMethodInvocation = ASTBuilderUtil. createInvocationExprForMethod(orderBy.pos, orderByProcessInvokableSymbol, args, symResolver); orderByProcessMethodInvocation.argExprs = args; BLangSimpleVariable orderByProcessInvokableTypeVariable = ASTBuilderUtil. createVariable(orderBy.pos, getVariableName(ORDER_BY_PROCESS_FUNC_REFERENCE), orderByProcessInvokableType, orderByProcessMethodInvocation, orderByProcessInvokableTypeVarSymbol); BLangUserDefinedType userDefinedType = (BLangUserDefinedType) TreeBuilder.createUserDefinedTypeNode(); userDefinedType.typeName = ASTBuilderUtil.createIdentifier(orderBy.pos, ORDER_BY_PROCESS_OBJECT_NAME); userDefinedType.type = orderByProcessInvokableType; orderByProcessInvokableTypeVariable.setTypeNode(userDefinedType); return ASTBuilderUtil.createVariableDef(orderBy.pos, orderByProcessInvokableTypeVariable); }
TABLE_JOIN_PROCESS_OBJECT_NAME); userDefinedType.type = tableJoinProcessorReturnType; joinInvokableTypeVariable.setTypeNode(userDefinedType); BLangSimpleVariableDef tableJoinProcessorInvokableTypeDef = ASTBuilderUtil.createVariableDef(joinStreamingInput.pos, joinInvokableTypeVariable);
userDefinedType.typeName = ASTBuilderUtil.createIdentifier(joinStreamingInput.pos, JOIN_PROCESS_OBJECT_NAME); userDefinedType.type = joinProcessorReturnType; joinInvokableTypeVariable.setTypeNode(userDefinedType);
userDefinedType.typeName = ASTBuilderUtil.createIdentifier(selectClause.pos, SELECT_WITH_GROUP_BY_OBJECT_NAME); userDefinedType.type = selectWithGroupByInvokableType; selectWithGroupByInvokableTypeVariable.setTypeNode(userDefinedType);
userDefinedType.typeName = ASTBuilderUtil.createIdentifier(streamingInput.pos, STREAM_EVENT_OBJECT_NAME); userDefinedType.type = streamEventArrayTypeVarSymbol.type.getReturnType(); streamEventArrayTypeVariable.setTypeNode(userDefinedType); BLangSimpleVariableDef streamEventArrayTypeVariableDef = ASTBuilderUtil.createVariableDef(streamingInput.pos, streamEventArrayTypeVariable);
userDefinedType.typeName = ASTBuilderUtil.createIdentifier(outputLambdaFunc.pos, OUTPUT_PROCESS_OBJECT_NAME); userDefinedType.type = outputProcessInvokableType; outputProcessInvokableTypeVariable.setTypeNode(userDefinedType); BLangSimpleVariableDef outputProcessInvokableTypeVariableDef = ASTBuilderUtil. createVariableDef(outputLambdaFunc.pos, outputProcessInvokableTypeVariable);