MCPcopy Create free account
hub / github.com/GaijinEntertainment/daScript / ast_rpipe

Function ast_rpipe

src/parser/parser_impl.cpp:1247–1274  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1245 }
1246
1247 Expression * ast_rpipe ( yyscan_t scanner, Expression * arg, Expression * fncall, const LineInfo & locAt ) {
1248 if ( fncall->rtti_isCallLikeExpr() ) {
1249 auto pCall = (ExprLooksLikeCall *) fncall;
1250 pCall->arguments.insert(pCall->arguments.begin(),arg);
1251 return fncall;
1252 } else if ( fncall->rtti_isVar() ) {
1253 auto pVar = (ExprVar *) fncall;
1254 auto pCall = yyextra->g_Program->makeCall(pVar->at,pVar->name);
1255 // GC-managed: no manual delete needed
1256 pCall->arguments.insert(pCall->arguments.begin(),arg);
1257 return pCall;
1258 } else if (fncall->rtti_isNamedCall()) {
1259 auto pCall = (ExprNamedCall*)fncall;
1260 pCall->nonNamedArguments.insert(pCall->nonNamedArguments.begin(), arg);
1261 return fncall;
1262 } else if (fncall->rtti_isField() ) {
1263 auto pField = (ExprField*)fncall;
1264 pField->value = ast_rpipe(scanner, arg, pField->value, locAt);
1265 return fncall;
1266 } else if (fncall->rtti_isSafeField() ) {
1267 auto pField = (ExprSafeField*)fncall;
1268 pField->value = ast_rpipe(scanner, arg, pField->value, locAt);
1269 return fncall;
1270 } else {
1271 das_yyerror(scanner,"can only rpipe into a function call",locAt,CompilationError::cant_expression);
1272 return fncall;
1273 }
1274 }
1275
1276 Expression * ast_makeGenerator ( yyscan_t, TypeDecl * typeDecl, vector<CaptureEntry> * clist, Expression * subexpr, const LineInfo & locAt, const LineInfo & clistAt ) {
1277 auto gen = new ExprMakeGenerator(locAt, subexpr);

Callers 3

yyparseFunction · 0.85
yyparseFunction · 0.85
yyparseFunction · 0.85

Calls 4

makeCallMethod · 0.80
das_yyerrorFunction · 0.70
insertMethod · 0.45
beginMethod · 0.45

Tested by

no test coverage detected