• Home
  • Raw
  • Download

Lines Matching refs:Expr

22 Expr<SomeType> Parenthesize(Expr<SomeType> &&expr) {  in Parenthesize()
27 std::is_same_v<T, Expr<SomeDerived>>) { in Parenthesize()
74 parser::ContextualMessages &messages, Expr<SomeType> &&x, in ConvertRealOperands()
75 Expr<SomeType> &&y, int defaultRealKind) { in ConvertRealOperands()
78 [&](Expr<SomeInteger> &&ix, in ConvertRealOperands()
79 Expr<SomeInteger> &&iy) -> ConvertRealOperandsResult { in ConvertRealOperands()
88 [&](Expr<SomeInteger> &&ix, in ConvertRealOperands()
89 Expr<SomeReal> &&ry) -> ConvertRealOperandsResult { in ConvertRealOperands()
93 [&](Expr<SomeReal> &&rx, in ConvertRealOperands()
94 Expr<SomeInteger> &&iy) -> ConvertRealOperandsResult { in ConvertRealOperands()
98 [&](Expr<SomeReal> &&rx, in ConvertRealOperands()
99 Expr<SomeReal> &&ry) -> ConvertRealOperandsResult { in ConvertRealOperands()
103 [&](Expr<SomeInteger> &&ix, in ConvertRealOperands()
112 Expr<SomeInteger> &&iy) -> ConvertRealOperandsResult { in ConvertRealOperands()
119 [&](Expr<SomeReal> &&rx, in ConvertRealOperands()
125 Expr<SomeReal> &&ry) -> ConvertRealOperandsResult { in ConvertRealOperands()
138 static std::optional<Expr<SomeType>> NoExpr() { return std::nullopt; } in NoExpr()
141 std::optional<Expr<SomeType>> Package(Expr<SomeKind<CAT>> &&catExpr) { in Package()
145 std::optional<Expr<SomeType>> Package( in Package()
146 std::optional<Expr<SomeKind<CAT>>> &&catExpr) { in Package()
156 std::optional<Expr<SomeType>> MixedRealLeft( in MixedRealLeft()
157 Expr<SomeReal> &&rx, Expr<SomeInteger> &&iy) { in MixedRealLeft()
159 [&](auto &&rxk) -> Expr<SomeReal> { in MixedRealLeft()
173 std::optional<Expr<SomeComplex>> ConstructComplex( in ConstructComplex()
174 parser::ContextualMessages &messages, Expr<SomeType> &&real, in ConstructComplex()
175 Expr<SomeType> &&imaginary, int defaultRealKind) { in ConstructComplex()
187 std::optional<Expr<SomeComplex>> ConstructComplex( in ConstructComplex()
188 parser::ContextualMessages &messages, std::optional<Expr<SomeType>> &&real, in ConstructComplex()
189 std::optional<Expr<SomeType>> &&imaginary, int defaultRealKind) { in ConstructComplex()
197 Expr<SomeReal> GetComplexPart(const Expr<SomeComplex> &z, bool isImaginary) { in GetComplexPart()
210 Expr<SomeComplex> PromoteRealToComplex(Expr<SomeReal> &&someX) { in PromoteRealToComplex()
224 std::optional<Expr<SomeType>> MixedComplexLeft( in MixedComplexLeft()
225 parser::ContextualMessages &messages, Expr<SomeComplex> &&zx, in MixedComplexLeft()
226 Expr<SomeKind<RCAT>> &&iry, int defaultRealKind) { in MixedComplexLeft()
227 Expr<SomeReal> zr{GetComplexPart(zx, false)}; in MixedComplexLeft()
228 Expr<SomeReal> zi{GetComplexPart(zx, true)}; in MixedComplexLeft()
233 if (std::optional<Expr<SomeType>> rr{ in MixedComplexLeft()
267 Expr<SomeComplex> zy{ConvertTo(zx, std::move(iry))}; in MixedComplexLeft()
270 Expr<SomeComplex> zy{PromoteRealToComplex(std::move(iry))}; in MixedComplexLeft()
283 std::optional<Expr<SomeType>> MixedComplexRight( in MixedComplexRight()
284 parser::ContextualMessages &messages, Expr<SomeKind<LCAT>> &&irx, in MixedComplexRight()
285 Expr<SomeComplex> &&zy, int defaultRealKind) { in MixedComplexRight()
295 Expr<SomeReal> zr{GetComplexPart(zy, false)}; in MixedComplexRight()
296 Expr<SomeReal> zi{GetComplexPart(zy, true)}; in MixedComplexRight()
297 if (std::optional<Expr<SomeType>> rr{ in MixedComplexRight()
306 Expr<SomeComplex> zx{ConvertTo(zy, std::move(irx))}; in MixedComplexRight()
309 Expr<SomeComplex> zx{PromoteRealToComplex(std::move(irx))}; in MixedComplexRight()
320 std::optional<Expr<SomeType>> NumericOperation( in NumericOperation()
321 parser::ContextualMessages &messages, Expr<SomeType> &&x, in NumericOperation()
322 Expr<SomeType> &&y, int defaultRealKind) { in NumericOperation()
325 [](Expr<SomeInteger> &&ix, Expr<SomeInteger> &&iy) { in NumericOperation()
329 [](Expr<SomeReal> &&rx, Expr<SomeReal> &&ry) { in NumericOperation()
334 [](Expr<SomeReal> &&rx, Expr<SomeInteger> &&iy) { in NumericOperation()
337 [](Expr<SomeInteger> &&ix, Expr<SomeReal> &&ry) { in NumericOperation()
339 [&](auto &&ryk) -> Expr<SomeReal> { in NumericOperation()
348 [](Expr<SomeComplex> &&zx, Expr<SomeComplex> &&zy) { in NumericOperation()
352 [&](Expr<SomeComplex> &&zx, Expr<SomeInteger> &&iy) { in NumericOperation()
356 [&](Expr<SomeComplex> &&zx, Expr<SomeReal> &&ry) { in NumericOperation()
360 [&](Expr<SomeInteger> &&ix, Expr<SomeComplex> &&zy) { in NumericOperation()
364 [&](Expr<SomeReal> &&rx, Expr<SomeComplex> &&zy) { in NumericOperation()
369 [&](BOZLiteralConstant &&bx, Expr<SomeInteger> &&iy) { in NumericOperation()
374 [&](BOZLiteralConstant &&bx, Expr<SomeReal> &&ry) { in NumericOperation()
379 [&](Expr<SomeInteger> &&ix, BOZLiteralConstant &&by) { in NumericOperation()
383 [&](Expr<SomeReal> &&rx, BOZLiteralConstant &&by) { in NumericOperation()
397 template std::optional<Expr<SomeType>> NumericOperation<Power>(
398 parser::ContextualMessages &, Expr<SomeType> &&, Expr<SomeType> &&,
400 template std::optional<Expr<SomeType>> NumericOperation<Multiply>(
401 parser::ContextualMessages &, Expr<SomeType> &&, Expr<SomeType> &&,
403 template std::optional<Expr<SomeType>> NumericOperation<Divide>(
404 parser::ContextualMessages &, Expr<SomeType> &&, Expr<SomeType> &&,
406 template std::optional<Expr<SomeType>> NumericOperation<Add>(
407 parser::ContextualMessages &, Expr<SomeType> &&, Expr<SomeType> &&,
409 template std::optional<Expr<SomeType>> NumericOperation<Subtract>(
410 parser::ContextualMessages &, Expr<SomeType> &&, Expr<SomeType> &&,
413 std::optional<Expr<SomeType>> Negation( in Negation()
414 parser::ContextualMessages &messages, Expr<SomeType> &&x) { in Negation()
433 [&](Expr<SomeInteger> &&x) { return Package(-std::move(x)); }, in Negation()
434 [&](Expr<SomeReal> &&x) { return Package(-std::move(x)); }, in Negation()
435 [&](Expr<SomeComplex> &&x) { return Package(-std::move(x)); }, in Negation()
436 [&](Expr<SomeCharacter> &&) { in Negation()
441 [&](Expr<SomeLogical> &&) { in Negation()
446 [&](Expr<SomeDerived> &&) { in Negation()
455 Expr<SomeLogical> LogicalNegation(Expr<SomeLogical> &&x) { in LogicalNegation()
462 Expr<LogicalResult> PackageRelation( in PackageRelation()
463 RelationalOperator opr, Expr<T> &&x, Expr<T> &&y) { in PackageRelation()
465 return Expr<LogicalResult>{ in PackageRelation()
470 Expr<LogicalResult> PromoteAndRelate( in PromoteAndRelate()
471 RelationalOperator opr, Expr<SomeKind<CAT>> &&x, Expr<SomeKind<CAT>> &&y) { in PromoteAndRelate()
479 std::optional<Expr<LogicalResult>> Relate(parser::ContextualMessages &messages, in Relate()
480 RelationalOperator opr, Expr<SomeType> &&x, Expr<SomeType> &&y) { in Relate()
483 [=](Expr<SomeInteger> &&ix, in Relate()
484 Expr<SomeInteger> &&iy) -> std::optional<Expr<LogicalResult>> { in Relate()
487 [=](Expr<SomeReal> &&rx, in Relate()
488 Expr<SomeReal> &&ry) -> std::optional<Expr<LogicalResult>> { in Relate()
491 [&](Expr<SomeReal> &&rx, Expr<SomeInteger> &&iy) { in Relate()
495 [&](Expr<SomeInteger> &&ix, Expr<SomeReal> &&ry) { in Relate()
499 [&](Expr<SomeComplex> &&zx, in Relate()
500 Expr<SomeComplex> &&zy) -> std::optional<Expr<LogicalResult>> { in Relate()
510 [&](Expr<SomeComplex> &&zx, Expr<SomeInteger> &&iy) { in Relate()
514 [&](Expr<SomeComplex> &&zx, Expr<SomeReal> &&ry) { in Relate()
518 [&](Expr<SomeInteger> &&ix, Expr<SomeComplex> &&zy) { in Relate()
522 [&](Expr<SomeReal> &&rx, Expr<SomeComplex> &&zy) { in Relate()
526 [&](Expr<SomeCharacter> &&cx, Expr<SomeCharacter> &&cy) { in Relate()
529 auto &&cyk) -> std::optional<Expr<LogicalResult>> { in Relate()
544 return std::optional<Expr<LogicalResult>>{}; in Relate()
550 Expr<SomeLogical> BinaryLogicalOperation( in BinaryLogicalOperation()
551 LogicalOperator opr, Expr<SomeLogical> &&x, Expr<SomeLogical> &&y) { in BinaryLogicalOperation()
556 return Expr<SomeLogical>{BinaryLogicalOperation<Ty::kind>( in BinaryLogicalOperation()
563 std::optional<Expr<SomeType>> ConvertToNumeric(int kind, Expr<SomeType> &&x) { in ConvertToNumeric()
566 [=](auto &&cx) -> std::optional<Expr<SomeType>> { in ConvertToNumeric()
570 return Expr<SomeType>{ConvertToKind<TO>(kind, std::move(cx))}; in ConvertToNumeric()
578 std::optional<Expr<SomeType>> ConvertToType( in ConvertToType()
579 const DynamicType &type, Expr<SomeType> &&x) { in ConvertToType()
585 return Expr<SomeType>{ in ConvertToType()
591 return Expr<SomeType>{ in ConvertToType()
598 if (auto *cx{UnwrapExpr<Expr<SomeCharacter>>(x)}) { in ConvertToType()
603 Expr<SomeInteger> lenParam{*len}; in ConvertToType()
604 Expr<SubscriptInteger> length{Convert<SubscriptInteger>{lenParam}}; in ConvertToType()
609 return Expr<SomeCharacter>{ in ConvertToType()
610 Expr<CharacterType>{SetLength<CharacterType::kind>{ in ConvertToType()
616 return Expr<SomeType>{std::move(converted)}; in ConvertToType()
620 if (auto *cx{UnwrapExpr<Expr<SomeLogical>>(x)}) { in ConvertToType()
621 return Expr<SomeType>{ in ConvertToType()
636 std::optional<Expr<SomeType>> ConvertToType( in ConvertToType()
637 const DynamicType &to, std::optional<Expr<SomeType>> &&x) { in ConvertToType()
645 std::optional<Expr<SomeType>> ConvertToType( in ConvertToType()
646 const Symbol &symbol, Expr<SomeType> &&x) { in ConvertToType()
653 std::optional<Expr<SomeType>> ConvertToType( in ConvertToType()
654 const Symbol &to, std::optional<Expr<SomeType>> &&x) { in ConvertToType()
681 bool IsProcedure(const Expr<SomeType> &expr) { in IsProcedure()
684 bool IsFunction(const Expr<SomeType> &expr) { in IsFunction()
689 bool IsProcedurePointer(const Expr<SomeType> &expr) { in IsProcedurePointer()
712 bool IsNullPointer(const Expr<SomeType> &expr) { in IsNullPointer()
767 template semantics::SymbolSet CollectSymbols(const Expr<SomeType> &);
768 template semantics::SymbolSet CollectSymbols(const Expr<SomeInteger> &);
769 template semantics::SymbolSet CollectSymbols(const Expr<SubscriptInteger> &);
784 bool HasVectorSubscript(const Expr<SomeType> &expr) { in HasVectorSubscript()
844 FoldingContext &context, const Expr<SomeType> &expr) { in FindImpureCall()