All Downloads are FREE. Search and download functionalities are using the official Maven repository.

schemas.enhancements.json Maven / Gradle / Ivy

{
    // enhancement nodes/edges that will automatically be derived from the cpg
    // note: these should *NOT* be written by the language frontend.

    "nodeKeys" : [
        {"id" : 8, "name": "VALUE", "comment" : "Tag value", "valueType" : "string", "cardinality" : "one"}
    ],

    "edgeKeys" : [],

    "nodeTypes" : [
        {"id":24, "name": "TAG",
         "keys": ["NAME", "VALUE"],
         "comment": "A string tag.",
         "outEdges": []
        },
        {
            "id":40,
            "name": "NAMESPACE",
            "keys": ["NAME"],
            "comment": "This node represents a namespace as a hole whereas the NAMESPACE_BLOCK is used for each grouping occurrence of a namespace in code. Single representing NAMESPACE node is required for easier navigation in the query language.",
            "outEdges": []
        },
        {
            "name": "NAMESPACE_BLOCK",
            "outEdges": [
                {"edgeName": "AST", "inNodes": ["TYPE_DECL", "METHOD"]}
            ]
        },
        { "name": "METHOD",
          "outEdges" : [
             {"edgeName": "AST", "inNodes": ["TYPE_DECL", "METHOD"]}
          ]
        },
        { "name": "METHOD_INST",
          "outEdges" : [
             {"edgeName": "REF", "inNodes": ["METHOD"]}
          ]
        },
        { "name": "METHOD_PARAMETER_IN",
          "outEdges" : [
            {"edgeName": "EVAL_TYPE", "inNodes": ["TYPE"]}
          ]
        },
        {"id" : 33, "name" : "METHOD_PARAMETER_OUT",
         "keys": ["CODE", "ORDER", "NAME", "EVALUATION_STRATEGY", "TYPE_FULL_NAME", "LINE_NUMBER", "LINE_NUMBER_END", "COLUMN_NUMBER", "COLUMN_NUMBER_END"],
         "comment" : "This node represents a formal parameter going towards the caller side.",
         "is": ["DECLARATION", "DATA_FLOW_OBJECT"],
         "outEdges" : [
           {"edgeName": "CALL_ARG_OUT", "inNodes": ["CALL", "IDENTIFIER", "LITERAL", "METHOD_REF", "UNKNOWN"]},
           {"edgeName": "TAGGED_BY", "inNodes": ["TAG"]},
           {"edgeName": "EVAL_TYPE", "inNodes": ["TYPE"]}
         ]
        },
        { "name": "METHOD_RETURN",
          "outEdges" : [
            {"edgeName": "EVAL_TYPE", "inNodes": ["TYPE"]}
          ]
        },
        { "name": "METHOD_REF",
          "outEdges" : [
            {"edgeName": "REF", "inNodes": ["METHOD_INST"]}
          ]
        },
        { "name": "TYPE",
          "outEdges" : [
             {"edgeName": "REF", "inNodes": ["TYPE_DECL"]}
          ]
        },
        { "name": "TYPE_DECL",
          "outEdges" : [
             {"edgeName": "AST", "inNodes": ["TYPE_DECL", "METHOD"]},
             {"edgeName": "INHERITS_FROM", "inNodes": ["TYPE"]}
          ]
        },
        { "name": "MEMBER",
          "outEdges" : [
            {"edgeName": "EVAL_TYPE", "inNodes": ["TYPE"]}
          ]
        },
        { "name": "LITERAL",
          "outEdges" : [
            {"edgeName": "EVAL_TYPE", "inNodes": ["TYPE"]}
          ]
        },
        { "name": "CALL",
          "outEdges" : [
            {"edgeName": "REF", "inNodes": ["MEMBER"]},
            {"edgeName": "CALL", "inNodes": ["METHOD_INST"]},
            {"edgeName": "EVAL_TYPE", "inNodes": ["TYPE"]}
          ]
        },
        { "name": "LOCAL",
          "outEdges" : [
            {"edgeName": "EVAL_TYPE", "inNodes": ["TYPE"]}
          ]
        },
        { "name": "IDENTIFIER",
          "outEdges" : [
            {"edgeName": "EVAL_TYPE", "inNodes": ["TYPE"]}
          ]
        },
        { "name": "LOCAL",
          "outEdges" : [
            {"edgeName": "EVAL_TYPE", "inNodes": ["TYPE"]}
          ]
        },
        { "name": "UNKNOWN",
          "outEdges" : [
            {"edgeName": "EVAL_TYPE", "inNodes": ["TYPE"]}
          ]
        }
    ],

    "edgeTypes" : [
        {"id" : 12, "name": "PARAMETER_LINK", "comment" : "Links together corresponding METHOD_PARAMETER_IN and METHOD_PARAMETER_OUT nodes.", "keys": []},
        {"id" : 4, "name" : "CALL_ARG", "comment" : "Function call argument", "keys" : [] },
        {"id" : 5, "name" : "CALL_RET", "comment" : "Function call return value", "keys" : [] },
        {"id" : 6, "name" : "CALL", "comment" : "Referencing to e.g. a LOCAL", "keys" : [] },
        {"id" : 11, "name": "TAGGED_BY", "keys" : [], "comment" : "Edges from nodes to tags"},
        {"id" : 14, "name": "CALL_ARG_OUT", "comment" : "Function call output argument. Goes from METHOD_PARAMETER_OUT to call argument node.", "keys" : []},

        {"id" : 21, "name" : "EVAL_TYPE", "keys": [], "comment" : "Link to evaluation type.", "keys" : [] },
        {"id" : 23, "name" : "INHERITS_FROM", "keys": [], "comment" : "Inheritance relation between types.", "keys" : [] }
    ]

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy