A method providing evaluation of source code, the source code being written in a programming language, the method comprising: providing the source code, wherein the source code includes a plurality of source code elements; selecting a source code element from the plurality of source code elements; generating a plurality of tokens based on the source code element, wherein each token of the plurality of tokens comprises a sequence of text characters; generating a non-binary Abstract Syntax Tree, AST, representation of the source code element based on the plurality of tokens of the source code element, wherein the non-binary AST representation comprises non-binary AST token nodes, where each of the non-binary AST token nodes is based on a respective one of the plurality of tokens of the source code element; generating a binary AST representation of the source code element based on the plurality of tokens of the source code element and the non-binary AST representation, wherein the binary AST representation comprises a plurality of binary AST nodes including binary AST token nodes and binary AST null nodes, wherein each of the binary AST token nodes is based on a respective one of the plurality of tokens of the source code element, and wherein each of the binary AST token nodes corresponds to a respective one of the non-binary AST token nodes; encoding each of the binary AST token nodes and binary AST null nodes into a respective numeric value; generating a numeric array representation of the source code element based on the binary AST representation, wherein the numeric values for the respective binary AST token nodes and binary AST null nodes are mapped to locations in the numeric array representation based on respective locations of the binary AST token nodes and binary AST null nodes in the binary AST representation; and evaluating the source code based on the numeric array representation of the source code element using a machine learning, ML, model. providing the source code, wherein the source code includes a plurality of source code elements; selecting a source code element from the plurality of source code elements; generating a plurality of tokens based on the source code element, wherein each token of the plurality of tokens comprises a sequence of text characters; generating a non-binary Abstract Syntax Tree, AST, representation of the source code element based on the plurality of tokens of the source code element, wherein the non-binary AST representation comprises non-binary AST token nodes, where each of the non-binary AST token nodes is based on a respective one of the plurality of tokens of the source code element; generating a binary AST representation of the source code element based on the plurality of tokens of the source code element and the non-binary AST representation, wherein the binary AST representation comprises a plurality of binary AST nodes including binary AST token nodes and binary AST null nodes, wherein each of the binary AST token nodes is based on a respective one of the plurality of tokens of the source code element, and wherein each of the binary AST token nodes corresponds to a respective one of the non-binary AST token nodes; encoding each of the binary AST token nodes and binary AST null nodes into a respective numeric value; generating a numeric array representation of the source code element based on the binary AST representation, wherein the numeric values for the respective binary AST token nodes and binary AST null nodes are mapped to locations in the numeric array representation based on respective locations of the binary AST token nodes and binary AST null nodes in the binary AST representation; and evaluating the source code based on the numeric array representation of the source code element using a machine learning, ML, model.