gpt4 book ai didi

org.eclipse.xtext.xbase.XExpression类的使用及代码示例

转载 作者:知者 更新时间:2024-03-22 15:11:05 29 4
gpt4 key购买 nike

本文整理了Java中org.eclipse.xtext.xbase.XExpression类的一些代码示例,展示了XExpression类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。XExpression类的具体详情如下:
包路径:org.eclipse.xtext.xbase.XExpression
类名称:XExpression

XExpression介绍

[英]A representation of the model object 'XExpression'.
[中]模型对象“XExpression”的表示形式。

代码示例

代码示例来源:origin: org.eclipse.xtend/org.eclipse.xtend.core

@Override
protected boolean isValueExpectedRecursive(XExpression expr) {
  EObject container = expr.eContainer();
  if (container instanceof RichString 
    || container instanceof RichStringForLoop
    || container instanceof XtendField) {
    return true;
  }
  return super.isValueExpectedRecursive(expr);
}

代码示例来源:origin: org.eclipse.viatra/org.eclipse.viatra.query.patternlanguage.emf

public static List<Variable> getUsedVariables(XExpression xExpression, Iterable<Variable> allVariables){
  if (xExpression == null) return Collections.emptyList();
  List<EObject> contents = Lists.newArrayList(xExpression.eAllContents());
  Stream<XFeatureCall> contentStream = contents.stream().filter(XFeatureCall.class::isInstance).map(XFeatureCall.class::cast);
  Stream<XFeatureCall> featuredCalls = (xExpression instanceof XFeatureCall) 
      ? Stream.concat(Stream.of((XFeatureCall)xExpression), contentStream)
      : contentStream;
  final Set<String> valNames = featuredCalls.map(XFeatureCall::getConcreteSyntaxFeatureName).collect(Collectors.toSet()); 
  Iterable<Variable> calledVariables = Iterables.filter(allVariables, var -> valNames.contains(var.getName()));
  return IterableExtensions.sortBy(calledVariables, Variable::getName);
}

代码示例来源:origin: org.eclipse.xtext/org.eclipse.xtext.xbase

private void resolveTypes(final XExpression expression) {
 final Resource resource = expression.eResource();
 IResolvedTypes resolvedTypes = this.resolvedTypesPerResource.get(resource);
 if ((resolvedTypes == null)) {
  resolvedTypes = this.typeResolver.resolveTypes(expression);
  this.resolvedTypesPerResource.put(resource, resolvedTypes);
 }
 this.resolvedTypesStack.push(resolvedTypes);
}

代码示例来源:origin: org.eclipse.xtext/org.eclipse.xtext.xbase

@Override
public void applyToModel(IResolvedTypes resolvedTypes) {
  Resource resource = getExpression().eResource();
  if (resource instanceof LazyLinkingResource) {
    LazyLinkingResource lazyLinkingResource = (LazyLinkingResource) resource;
    EObject referenced = (InternalEObject) getExpression().eGet(XbasePackage.Literals.XCONSTRUCTOR_CALL__CONSTRUCTOR, false);
    lazyLinkingResource.markUnresolvable(referenced);
  }
}

代码示例来源:origin: org.eclipse.xtext/org.eclipse.xtext.xbase

protected boolean isImplicitReturn(ITypeComputationResult expressionResult) {
    int flags = expressionResult.getConformanceFlags();
    if ((ConformanceFlags.NO_IMPLICIT_RETURN & flags) != 0) {
      return false;
    }
    XExpression expression = expressionResult.getExpression();
    if (expression == null) {
      return true;
    }
    if (expression.eClass() == XbasePackage.Literals.XRETURN_EXPRESSION) {
      return false;
    }
    TreeIterator<EObject> contents = expression.eAllContents();
    while (contents.hasNext()) {
      EObject next = contents.next();
      if (next.eClass() == XbasePackage.Literals.XRETURN_EXPRESSION) {
        return false;
      }
      if (next.eClass() == XbasePackage.Literals.XCLOSURE) {
        contents.prune();
      }
    }
    return true;
  }
}

代码示例来源:origin: org.eclipse.incquery/org.eclipse.incquery.patternlanguage

private void checkForImpureJavaCallsInternal(XExpression xExpression, EStructuralFeature feature) {
  Set<String> elementsWithWarnings = new HashSet<String>();
  if (xExpression != null) {
    TreeIterator<EObject> eAllContents = xExpression.eAllContents();
    while (eAllContents.hasNext()) {
      EObject nextEObject = eAllContents.next();
      if (nextEObject instanceof XMemberFeatureCall) {
        XMemberFeatureCall xFeatureCall = (XMemberFeatureCall) nextEObject;
        JvmIdentifiableElement jvmIdentifiableElement = xFeatureCall.getFeature();
        if (jvmIdentifiableElement instanceof JvmOperation) {
          JvmOperation jvmOperation = (JvmOperation) jvmIdentifiableElement;
          if (!PurityChecker.isPure(jvmOperation) && !jvmOperation.eIsProxy()) {
            elementsWithWarnings.add(jvmOperation.getQualifiedName());
          }
        }
      }
    }
  }
  if (!elementsWithWarnings.isEmpty()) {
    warning("There is at least one potentially problematic java call in the check()/eval() expression. Custom java calls "
        + "are considered unsafe in IncQuery unless they are annotated with @"
        + Pure.class.getSimpleName()
        + " or registered with the "
        + PureWhitelistExtensionLoader.EXTENSION_ID
        + " extension point. The possible erroneous calls are the following: " + elementsWithWarnings + ".",
        xExpression.eContainer(), feature, IssueCodes.CHECK_WITH_IMPURE_JAVA_CALLS);
  }
}

代码示例来源:origin: org.eclipse.xtext/org.eclipse.xtext.xbase

@Override
public final ITypeComputationResult computeTypes(/* @Nullable */ XExpression expression) {
  resolvedTypes.checkCanceled();
  if (expression != null) {
    if (expression.eContainer() == null && expression.eResource() == null)
      throw new IllegalStateException("Dangling expression: " + expression);
    assert getResolvedTypes().doGetTypeData(expression) == null : "Expression was already resolved: " + expression;  
    ExpressionAwareStackedResolvedTypes stackedResolvedTypes = doComputeTypes(expression);
    stackedResolvedTypes.performMergeIntoParent();
    return new ResolutionBasedComputationResult(expression, resolvedTypes);
  } else {
    return new NoTypeResult(null, getReferenceOwner());
  }
}

代码示例来源:origin: org.eclipse.xtext/org.eclipse.xtext.xbase

protected boolean isValueExpectedRecursive(XExpression expr) {
  EStructuralFeature feature = expr.eContainingFeature();
  EObject container = expr.eContainer();

代码示例来源:origin: io.sarl.lang/io.sarl.lang

/** Determine if the given expression has a side effect.
 *
 * @param expr the expression.
 * @param context the context.
 * @return {@code true} if the expression has a side effect.
 */
protected Boolean hasSideEffects(XExpression expr, ISideEffectContext context) {
  if (expr != null && !expr.eIsProxy()) {
    return this.hasSideEffectsDispatcher.invoke(expr, context);
  }
  return false;
}

代码示例来源:origin: io.sarl.lang/io.sarl.lang

/** Replies if the given expression is a early-exit SARL statement.
 *
 * @param expression the expression to test.
 * @return <code>true</code> if the given expression is a SARL early-exit
 *     statement, <code>false</code> otherwise.
 * @see ISarlEarlyExitComputer#isEarlyExitAnnotatedElement(Object)
 */
protected boolean isEarlyExitSARLStatement(XExpression expression) {
  if (expression instanceof XAbstractFeatureCall) {
    // Do not call expression.getFeature() since the feature may be unresolved.
    // The type resolution at this point causes exceptions in the reentrant type resolver.
    // The second parameter (false) forces to ignore feature resolution.
    final Object element = expression.eGet(
        XbasePackage.Literals.XABSTRACT_FEATURE_CALL__FEATURE,
        false);
    return this.originalComputer.isEarlyExitAnnotatedElement(element);
  }
  return false;
}

代码示例来源:origin: io.sarl.lang/io.sarl.lang

/** Change the documentation of the element.
 *
 * <p>The documentation will be displayed just before the element.
 *
 * @param doc the documentation.
 */
public void setDocumentation(String doc) {
  if (Strings.isEmpty(doc)) {
    getXExpression().eAdapters().removeIf(new Predicate<Adapter>() {
      public boolean test(Adapter adapter) {
        return adapter.isAdapterForType(DocumentationAdapter.class);
      }
    });
  } else {
    DocumentationAdapter adapter = (DocumentationAdapter) EcoreUtil.getExistingAdapter(
        getXExpression(), DocumentationAdapter.class);
    if (adapter == null) {
      adapter = new DocumentationAdapter();
      getXExpression().eAdapters().add(adapter);
    }
    adapter.setDocumentation(doc);
  }
}

代码示例来源:origin: org.eclipse.xtext/org.eclipse.xtext.xbase

@Override
public void applyToModel(IResolvedTypes resolvedTypes) {
  Resource resource = getExpression().eResource();
  if (resource instanceof LazyLinkingResource) {
    LazyLinkingResource lazyLinkingResource = (LazyLinkingResource) resource;
    EObject referenced = (InternalEObject) getExpression().eGet(getReference(), false);
    lazyLinkingResource.markUnresolvable(referenced);
  }
}

代码示例来源:origin: org.eclipse.xtext/org.eclipse.xtext.xbase

return true;
final EStructuralFeature eContainingFeature = expr.eContainingFeature();
if (eContainingFeature == XbasePackage.Literals.XMEMBER_FEATURE_CALL__MEMBER_CALL_TARGET) {
  if (((XMemberFeatureCall) expr.eContainer()).isNullSafe()) {
    if (expr instanceof XFeatureCall) {
      JvmIdentifiableElement feature = ((XFeatureCall) expr).getFeature();
  XBinaryOperation binaryOperation = (XBinaryOperation) expr.eContainer();
  if (binaryOperation.isReassignFirstArgument()) {
    return true;

代码示例来源:origin: org.eclipse.xtend/org.eclipse.xtend.core

/**
 * <!-- begin-user-doc -->
 * <!-- end-user-doc -->
 * @generated
 */
public XExpression getExpression()
{
  if (expression != null && expression.eIsProxy())
  {
    InternalEObject oldExpression = (InternalEObject)expression;
    expression = (XExpression)eResolveProxy(oldExpression);
    if (expression != oldExpression)
    {
      if (eNotificationRequired())
        eNotify(new ENotificationImpl(this, Notification.RESOLVE, ProcessedRichStringPackage.PRINTED_EXPRESSION__EXPRESSION, oldExpression, expression));
    }
  }
  return expression;
}

代码示例来源:origin: io.sarl.lang/io.sarl.lang

@Override
protected boolean isValueExpectedRecursive(XExpression expr) {
  final EObject container = expr.eContainer();
  if (container instanceof SarlBreakExpression) {
    return false;
  }
  if (container instanceof SarlContinueExpression) {
    return false;
  }
  if (container instanceof SarlAssertExpression) {
    return true;
  }
  return super.isValueExpectedRecursive(expr);
}

代码示例来源:origin: org.eclipse.incquery/org.eclipse.incquery.patternlanguage

public static List<Variable> getUsedVariables(XExpression xExpression, Iterable<Variable> allVariables){
  List<EObject> contents = Lists.newArrayList(xExpression.eAllContents());
  Iterable<XFeatureCall> featuredCalls = Iterables.filter(contents, XFeatureCall.class);
  final Set<String> valNames = Sets.newHashSet(Iterables.transform(featuredCalls, new Function<XFeatureCall,String>() {
    @Override
    public String apply(final XFeatureCall call) {
     return call.getConcreteSyntaxFeatureName();
    }
   }));
  Iterable<Variable> calledVariables = Iterables.filter(allVariables, new Predicate<Variable>() {
    @Override
    public boolean apply(final Variable var) {
     return valNames.contains(var.getName());
    }
   });
  return IterableExtensions.sortBy(calledVariables, new Function1<Variable,String>() {
    public String apply(final Variable var) {
     return var.getName();
    }
   });
}

代码示例来源:origin: org.eclipse.xtext/org.eclipse.xtext.xbase

@Override
public void associateLogicalContainer(XExpression logicalChild, JvmIdentifiableElement element) {
  if (logicalChild == null)
    return;
  final Map<EObject, JvmIdentifiableElement> mapping = getLogicalContainerMapping(logicalChild.eResource());
  mapping.put(logicalChild, element);
}

代码示例来源:origin: org.eclipse.xtext/org.eclipse.xtext.xbase

@Override
public void applyToModel(IResolvedTypes resolvedTypes) {
  Resource resource = getExpression().eResource();
  if (resource instanceof LazyLinkingResource) {
    LazyLinkingResource lazyLinkingResource = (LazyLinkingResource) resource;
    
    TypeAwareLinkingDiagnosticContext context = new TypeAwareLinkingDiagnosticContext(this, resolvedTypes);
    DiagnosticMessage message = lazyLinkingResource.getDiagnosticMessageProvider()
        .getUnresolvedProxyMessage(context);
    if (message != null) {
      List<Resource.Diagnostic> diagnostics = getDiagnosticList(lazyLinkingResource, message);
      Diagnostic diagnostic = createDiagnostic(message);
      diagnostics.add(diagnostic);
    }
    EObject referenced = (InternalEObject) getExpression().eGet(getReference(), false);
    lazyLinkingResource.markUnresolvable(referenced);
  }
}

代码示例来源:origin: org.eclipse.xtext/org.eclipse.xtext.xbase

if (receiver == null || receiver.eIsProxy())
  return IScope.NULLSCOPE;
LightweightTypeReference receiverType = resolvedTypes.getActualType(receiver);

代码示例来源:origin: org.eclipse.xtext/org.eclipse.xtext.xbase

protected XAbstractFeatureCall getFeatureCall(final XExpression argument) {
  EObject expr = argument.eContainer();
  if (expr instanceof XAbstractFeatureCall) {
    return (XAbstractFeatureCall) expr;
  }
  if (expr instanceof XBlockExpression) {
    XBlockExpression blockExpression = (XBlockExpression) expr;
    if (blockExpression.getExpressions().size() == 1)
      return getFeatureCall(blockExpression);
  }
  return null;
}

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com