public AnalysisResults(GrammarEngine gren, IntPtr hPack, bool preserveMarkers = false) { _hPack = hPack; int n = GrammarApi.sol_CountRoots(_hPack, 0); if (n == 0) { _nodes = new SyntaxTreeNode[0]; return; } int offset = preserveMarkers ? 0 : 1; _nodes = new SyntaxTreeNode[n - offset * 2]; for (int i = offset; i < n - offset; i++) { _nodes[i - offset] = new SyntaxTreeNode(gren, GrammarApi.sol_GetRoot(_hPack, 0, i)); } }