Package st.gravel.support.compiler.ast

Examples of st.gravel.support.compiler.ast.AbsoluteReference


    return site;
  }

  public static CallSite globalReadBootstrap(Lookup lookup, String selector,
      MethodType type, String namespaceString) throws Throwable {
    AbsoluteReference namespace = (AbsoluteReference) Reference.factory
        .value_(namespaceString);
    AbsoluteReference fullReference = namespace.$slash$(Symbol
        .value(selector));
    final AlmostFinalValue singletonHolder = ImageBootstrapper.systemMapping
        .resolveSingletonHolder_(fullReference);
    return new ConstantCallSite(singletonHolder.createGetter());
  }
View Full Code Here


    return new ConstantCallSite(singletonHolder.createGetter());
  }

  public static CallSite globalWriteBootstrap(Lookup lookup, String selector,
      MethodType type, String namespaceString) throws Throwable {
    AbsoluteReference namespace = (AbsoluteReference) Reference.factory
        .value_(namespaceString);
    AbsoluteReference fullReference = namespace.$slash$(Symbol
        .value(selector));
    final AlmostFinalValue singletonHolder = ImageBootstrapper.systemMapping
        .resolveSingletonHolder_(fullReference);
    final MethodHandle target = lookup.findVirtual(
        AlmostFinalValue.class,
View Full Code Here

    return this;
  }

  public SystemMappingUpdater initializeClassShareds_(final MetaclassNode _aMetaclassNode) {
    for (final SharedDeclarationNode _sharedVariable : _aMetaclassNode.sharedVariables()) {
      final AbsoluteReference _reference;
      _reference = _aMetaclassNode.reference().nonmeta().$slash$(st.gravel.core.Symbol.value(_sharedVariable.name()));
      _systemMapping.singletonAtReference_initialize_(_reference, _sharedVariable);
    }
    return this;
  }
View Full Code Here

        _temp1 = ((st.gravel.support.jvm.runtime.AlmostFinalValue) st.gravel.support.jvm.DictionaryExtensions.at_ifAbsent_(_singletonHolders, _reference.namespace().namespace().$slash$(_reference.name()), ((st.gravel.support.jvm.Block0<st.gravel.support.jvm.runtime.AlmostFinalValue>) (new st.gravel.support.jvm.Block0<st.gravel.support.jvm.runtime.AlmostFinalValue>() {

          @Override
          public st.gravel.support.jvm.runtime.AlmostFinalValue value() {
            final AbstractClassMapping _cm;
            final AbsoluteReference _superclassReference;
            final SharedDeclarationNode _sharedVariable;
            _cm = ((AbstractClassMapping) st.gravel.support.jvm.DictionaryExtensions.at_ifAbsent_(_classMappingsByReference, _reference.namespace(), ((st.gravel.support.jvm.Block0<AbstractClassMapping>) (new st.gravel.support.jvm.Block0<AbstractClassMapping>() {

              @Override
              public AbstractClassMapping value() {
                throw new NonLocalReturn(_aBlock.value(), _temp2);
              }
            }))));
            _sharedVariable = _cm.classNode().meta().sharedVariableAt_ifAbsent_(_reference.name().asString(), new st.gravel.support.jvm.Block0<SharedDeclarationNode>() {

              @Override
              public SharedDeclarationNode value() {
                return (SharedDeclarationNode) null;
              }
            });
            if (_sharedVariable != null) {
              throw new RuntimeException("Shared not initialized: " + _reference.toString());
            }
            _superclassReference = ((AbsoluteReference) _cm.superclassReference());
            if (_superclassReference == null) {
              throw new NonLocalReturn(_aBlock.value(), _temp2);
            }
            return (st.gravel.support.jvm.runtime.AlmostFinalValue) SystemMapping.this.classSharedSingletonHolderAtReference_ifAbsent_(_superclassReference.$slash$(_reference.name()), _aBlock);
          }
        }))));
      }
      return ((st.gravel.support.jvm.runtime.AlmostFinalValue) _temp1);
    } catch (NonLocalReturn nlr) {
View Full Code Here

          return _namespaceNodes[0].put(_reference, _namespaceNode);
        }
      }
    });
    for (final Reference _ref : _classNodes[0].keySet()) {
      final AbsoluteReference _namespace;
      _namespace = _ref.namespace();
      NamespaceNode _temp1 = _namespaceNodes[0].get(_namespace);
      if (_temp1 == null) {
        NamespaceNode _temp2 = NamespaceNode.factory.for_(_namespace);
        _namespaceNodes[0].put(_namespace, _temp2);
View Full Code Here

    }

    @Override
    public Object evaluate() {
      System.out.println("evaluate started");
      AbsoluteReference _reference = AbsoluteReference.factory
          .object();
      Expression expression = Parser.factory.parseExpression_(source);
      Object value = ImageBootstrapper.systemMapping
          .evaluateExpression_reference_(expression, _reference);
      System.out.println("evaluate done");
View Full Code Here

      newInstance.initialize();
      return newInstance;
    }

    public NamespaceNode for_(final Reference _aReference) {
      final AbsoluteReference _orgGravelLang;
      _orgGravelLang = AbsoluteReference.factory.path_(new st.gravel.core.Symbol[] { st.gravel.core.Symbol.value("st"), st.gravel.core.Symbol.value("gravel"), st.gravel.core.Symbol.value("lang") });
      if (st.gravel.support.jvm.ObjectExtensions.equals_(_aReference, _orgGravelLang)) {
        return NamespaceNode.factory.reference_(((AbsoluteReference) _aReference));
      }
      return NamespaceNode.factory.reference_publicImports_privateImports_sharedVariables_(((AbsoluteReference) _aReference), new AbsoluteReference[] {}, st.gravel.support.jvm.ArrayFactory.with_(_orgGravelLang), new SharedDeclarationNode[] {});
View Full Code Here

TOP

Related Classes of st.gravel.support.compiler.ast.AbsoluteReference

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.