当前位置: 首页>>代码示例>>Java>>正文


Java ObjectLiteral类代码示例

本文整理汇总了Java中org.mozilla.javascript.ast.ObjectLiteral的典型用法代码示例。如果您正苦于以下问题:Java ObjectLiteral类的具体用法?Java ObjectLiteral怎么用?Java ObjectLiteral使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


ObjectLiteral类属于org.mozilla.javascript.ast包,在下文中一共展示了ObjectLiteral类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: decompileObjectLiteral

import org.mozilla.javascript.ast.ObjectLiteral; //导入依赖的package包/类
void decompileObjectLiteral(ObjectLiteral node) {
    decompiler.addToken(Token.LC);
    List<ObjectProperty> props = node.getElements();
    int size = props.size();
    for (int i = 0; i < size; i++) {
        ObjectProperty prop = props.get(i);
        boolean destructuringShorthand =
                Boolean.TRUE.equals(prop.getProp(Node.DESTRUCTURING_SHORTHAND));
        decompile(prop.getLeft());
        if (!destructuringShorthand) {
            decompiler.addToken(Token.COLON);
            decompile(prop.getRight());
        }
        if (i < size - 1) {
            decompiler.addToken(Token.COMMA);
        }
    }
    decompiler.addToken(Token.RC);
}
 
开发者ID:MikaGuraN,项目名称:HL4A,代码行数:20,代码来源:IRFactory.java

示例2: getPropertyNames

import org.mozilla.javascript.ast.ObjectLiteral; //导入依赖的package包/类
public List<String> getPropertyNames(){
	List<String> propNames = new ArrayList<String>();
	ObjectLiteral ol = (ObjectLiteral)this.getNode();
	for (ObjectProperty op : ol.getElements()){
		AstNode left = op.getLeft();
		if (left instanceof Name){
			propNames.add(((Name)left).getIdentifier());
		} else if (left instanceof StringLiteral){
			String identifier = ConstraintGenUtil.removeQuotes(((StringLiteral)left).toSource());
			propNames.add(identifier);
		} else {
			System.err.println(left.getClass().getName() + " " + left.toSource());
			throw new Error("unsupported case in getPropertyNames()");
		}
	}
	return propNames;
}
 
开发者ID:Samsung,项目名称:SJS,代码行数:18,代码来源:MapLiteralTerm.java

示例3: getPropertyNames

import org.mozilla.javascript.ast.ObjectLiteral; //导入依赖的package包/类
public static List<String> getPropertyNames(ObjectLiteral ol){
	List<String> propNames = new ArrayList<String>();
	for (ObjectProperty op : ol.getElements()){
		AstNode left = op.getLeft();
		if (left instanceof Name){
			propNames.add(((Name)left).getIdentifier());
		} else if (left instanceof StringLiteral){
			String identifier = ConstraintGenUtil.removeQuotes(((StringLiteral)left).toSource());
			propNames.add(identifier);
		} else {
			System.err.println(left.getClass().getName() + " " + left.toSource());
			throw new Error("unsupported case in getPropertyNames()");
		}
	}
	return propNames;
}
 
开发者ID:Samsung,项目名称:SJS,代码行数:17,代码来源:ConstraintGenUtil.java

示例4: processObjectLiteralForObject

import org.mozilla.javascript.ast.ObjectLiteral; //导入依赖的package包/类
/**
 * Create constraints for an object literal.
 */
private ITypeTerm processObjectLiteralForObject(ObjectLiteral n) {
	ITypeTerm expTerm = findOrCreateObjectLiteralTerm(n);
	ObjectLiteral o = (ObjectLiteral)n;
	for (ObjectProperty prop : o.getElements()){
		AstNode left = prop.getLeft();
		AstNode right = prop.getRight();
		if (left instanceof Name){
			String identifier = ((Name)left).getIdentifier();

			// for object literal o = { name_1 : exp_1, ..., name_k : exp_k } generate
			// a constraint |exp_i| <: prop(|o|, name_i)

			ITypeTerm propTerm = findOrCreatePropertyAccessTerm(expTerm, identifier, null);
			ITypeTerm valTerm = processExpression(right);
			processCopy(right, valTerm, propTerm, n.getLineno(), null);
		}
	}
	return expTerm;
}
 
开发者ID:Samsung,项目名称:SJS,代码行数:23,代码来源:ConstraintVisitor.java

示例5: processObjectLiteralForMap

import org.mozilla.javascript.ast.ObjectLiteral; //导入依赖的package包/类
/**
 * Create constraints for a map literal.
 */
private ITypeTerm processObjectLiteralForMap(ObjectLiteral o) {
	ITypeTerm expTerm = findOrCreateMapLiteralTerm(o);
	for (ObjectProperty prop : o.getElements()){
		AstNode left = prop.getLeft();
		AstNode right = prop.getRight();
		if (left instanceof StringLiteral){

			// for map literal o = { name_1 : exp_1, ..., name_k : exp_k } generate
			// a constraint |exp_i| <: MapElem(|o|)

			ITypeTerm mapAccessTerm = findOrCreateIndexedTerm(expTerm, o.getLineno());
			ITypeTerm valTerm = processExpression(right);
			processCopy(right, valTerm, mapAccessTerm,
					o.getLineno(), (solution) ->
							genericTypeError("map does not have a homogenous value type", locationOf(prop))
									.withNote("map value type is " + describeTypeOf(mapAccessTerm, solution))
									.withNote("key " + left.toSource() + " has type " + describeTypeOf(valTerm, solution)));
		}
	}
	return expTerm;
}
 
开发者ID:Samsung,项目名称:SJS,代码行数:25,代码来源:ConstraintVisitor.java

示例6: visitPrototypeMembers

import org.mozilla.javascript.ast.ObjectLiteral; //导入依赖的package包/类
private void visitPrototypeMembers(ObjectLiteral objLiteral,
		String clazz) {

	List<ObjectProperty> properties = objLiteral.getElements();
	for (ObjectProperty property : properties) {

		AstNode propertyKey = property.getLeft();
		JavaScriptTreeNode tn = createTreeNode(propertyKey);

		String memberName = RhinoUtil.getPropertyName(propertyKey);
		AstNode propertyValue = property.getRight();
		visitPrototypeMember(tn, clazz,
			memberName, propertyValue);

	}

}
 
开发者ID:bobbylight,项目名称:RSTALanguageSupport,代码行数:18,代码来源:JavaScriptOutlineTreeGenerator.java

示例7: decompile

import org.mozilla.javascript.ast.ObjectLiteral; //导入依赖的package包/类
void decompile(AstNode node) {
    switch (node.getType()) {
      case Token.ARRAYLIT:
          decompileArrayLiteral((ArrayLiteral)node);
          break;
      case Token.OBJECTLIT:
          decompileObjectLiteral((ObjectLiteral)node);
          break;
      case Token.STRING:
          decompiler.addString(((StringLiteral)node).getValue());
          break;
      case Token.NAME:
          decompiler.addName(((Name)node).getIdentifier());
          break;
      case Token.NUMBER:
          decompiler.addNumber(((NumberLiteral)node).getNumber());
          break;
      case Token.GETPROP:
          decompilePropertyGet((PropertyGet)node);
          break;
      case Token.EMPTY:
          break;
      case Token.GETELEM:
          decompileElementGet((ElementGet) node);
          break;
      case Token.THIS:
          decompiler.addToken(node.getType());
          break;
      default:
          Kit.codeBug("unexpected token: "
                      + Token.typeToName(node.getType()));
    }
}
 
开发者ID:MikaGuraN,项目名称:HL4A,代码行数:34,代码来源:IRFactory.java

示例8: arrowFunctionParams

import org.mozilla.javascript.ast.ObjectLiteral; //导入依赖的package包/类
private void arrowFunctionParams(FunctionNode fnNode, AstNode params, Map<String, Node> destructuring, Set<String> paramNames) {
    if (params instanceof ArrayLiteral || params instanceof ObjectLiteral) {
        markDestructuring(params);
        fnNode.addParam(params);
        String pname = currentScriptOrFn.getNextTempName();
        defineSymbol(Token.LP, pname, false);
        destructuring.put(pname, params);
    } else if (params instanceof InfixExpression && params.getType() == Token.COMMA) {
        arrowFunctionParams(fnNode, ((InfixExpression)params).getLeft(), destructuring, paramNames);
        arrowFunctionParams(fnNode, ((InfixExpression)params).getRight(), destructuring, paramNames);
    } else if (params instanceof Name) {
        fnNode.addParam(params);
        String paramName = ((Name)params).getIdentifier();
        defineSymbol(Token.LP, paramName);

        if (this.inUseStrictDirective) {
            if ("eval".equals(paramName) ||
                "arguments".equals(paramName))
                {
                    reportError("msg.bad.id.strict", paramName);
                }
            if (paramNames.contains(paramName))
                addError("msg.dup.param.strict", paramName);
            paramNames.add(paramName);
        }
    } else {
        reportError("msg.no.parm", params.getPosition(), params.getLength());
        fnNode.addParam(makeErrorNode());
    }
}
 
开发者ID:MikaGuraN,项目名称:HL4A,代码行数:31,代码来源:Parser.java

示例9: ObjectLiteralTerm

import org.mozilla.javascript.ast.ObjectLiteral; //导入依赖的package包/类
public ObjectLiteralTerm(ObjectLiteral n){
	super(n);
       ObjectType oType = new ObjectType(this.getPropertyNames().stream()
               .map((s) -> new Property(s, new AnyType(), false))
               .collect(Collectors.toList()));
	this.type = oType;
}
 
开发者ID:Samsung,项目名称:SJS,代码行数:8,代码来源:ObjectLiteralTerm.java

示例10: findOrCreateObjectLiteralTerm

import org.mozilla.javascript.ast.ObjectLiteral; //导入依赖的package包/类
/**
 * Find or create a term representing the type of an object literal
 */
public ITypeTerm findOrCreateObjectLiteralTerm(ObjectLiteral n) {
    if (!objectLiteralTerms.containsKey(n)){
        objectLiteralTerms.put(n, new ObjectLiteralTerm(n));
    }
    return objectLiteralTerms.get(n);
}
 
开发者ID:Samsung,项目名称:SJS,代码行数:10,代码来源:ConstraintFactory.java

示例11: findOrCreateMapLiteralTerm

import org.mozilla.javascript.ast.ObjectLiteral; //导入依赖的package包/类
/**
 * Find or create a term representing the type of a map literal
 */
public ITypeTerm findOrCreateMapLiteralTerm(ObjectLiteral n) {
    if (!mapLiteralTerms.containsKey(n)){
        mapLiteralTerms.put(n, new MapLiteralTerm(n));
    }
    return mapLiteralTerms.get(n);
}
 
开发者ID:Samsung,项目名称:SJS,代码行数:10,代码来源:ConstraintFactory.java

示例12: isObject

import org.mozilla.javascript.ast.ObjectLiteral; //导入依赖的package包/类
/**
 * Tests if an object literal is an object by checking that all
 * properties are unquoted.
 */
static boolean isObject(ObjectLiteral o){
	boolean result = (o.getElements().size() > 0);
	for (ObjectProperty prop : o.getElements()){
		AstNode left = prop.getLeft();
		result = result && (left instanceof Name);
	}
	return result;
}
 
开发者ID:Samsung,项目名称:SJS,代码行数:13,代码来源:ConstraintGenUtil.java

示例13: isMap

import org.mozilla.javascript.ast.ObjectLiteral; //导入依赖的package包/类
/**
 * Tests if an object literal is a map by checking that
 * all properties are quoted.
 * In JavaScript, both double quotes and single quotes are
 * supported but for now we assume double quotes are used.
 *
 * Empty object literals are assumed to be maps.
 */
static boolean isMap(ObjectLiteral o){
	boolean result = true;
	for (ObjectProperty prop : o.getElements()){
		AstNode left = prop.getLeft();
		result = result && (left instanceof StringLiteral);
	}
	return result;
}
 
开发者ID:Samsung,项目名称:SJS,代码行数:17,代码来源:ConstraintGenUtil.java

示例14: validRHSForAssignToPrototype

import org.mozilla.javascript.ast.ObjectLiteral; //导入依赖的package包/类
/**
 * is right a valid expression to assign into the prototype field of a
 * constructor?  currently we allow object literals, constructor calls, and
 * expressions of the form B.prototype
 *
 * @param right
 * @return
 */
private boolean validRHSForAssignToPrototype(AstNode right) {
    if (right instanceof ObjectLiteral || right instanceof NewExpression) {
        return true;
    }
    if (right instanceof PropertyGet) {
        PropertyGet pg = (PropertyGet) right;
        if (pg.getProperty().getIdentifier().equals("prototype")) {
            return true;
        }
    }
    return false;
}
 
开发者ID:Samsung,项目名称:SJS,代码行数:21,代码来源:ConstraintVisitor.java

示例15: processObjectLiteral

import org.mozilla.javascript.ast.ObjectLiteral; //导入依赖的package包/类
/**
 * generate constraints for object literals.
 */
private ITypeTerm processObjectLiteral(ObjectLiteral n) {

	if (ConstraintGenUtil.isObject(n)){
		return processObjectLiteralForObject(n);
	} else if (ConstraintGenUtil.isMap(n)){
		return processObjectLiteralForMap(n);
	} else {
		return expError("inconsistent use of quotes in object literal: " + n.toSource(), n);
	}
}
 
开发者ID:Samsung,项目名称:SJS,代码行数:14,代码来源:ConstraintVisitor.java


注:本文中的org.mozilla.javascript.ast.ObjectLiteral类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。