diff --git a/src/ident.pest b/src/ident.pest
new file mode 100644
index 0000000000000000000000000000000000000000..c35442fb289f8d1a341a47a2921e18b8839b3532
--- /dev/null
+++ b/src/ident.pest
@@ -0,0 +1,27 @@
+alpha = { 'a'..'z' | 'A'..'Z' }
+digit = { '0'..'9' }
+digits = @{ digit+ }
+hex = @{ "0x" ~ (digit | 'a'..'f' | 'A'..'F')+ } 
+
+ident = { (alpha | digit | "."| "$" | "_" | ":")+ }
+
+entry = { "'" ~ ident ~ "'"}
+
+address = { "<" ~ hex ~ ">"}
+
+function = { entry ~ "<" ~ address ~ ">" ~ "#uses=" ~ digits }
+nullfunction = { "<<null function>>" ~ "<" ~ address ~ ">" ~ "#uses=" ~ digits }
+
+
+callext = { "CS" ~ address ~ "calls" ~ "external" ~ "node"  }
+callfun = { "CS" ~ address ~ "calls" ~ "function" ~ entry }
+
+fun = { "Call graph node for function:" ~ function ~ (callext | callfun)* }
+null = { "Call graph node" ~ nullfunction ~ (callext | callfun)* }
+
+
+
+ident_list = _{ SOI ~ (fun|null)* ~ EOI }
+
+WHITESPACE = _{ " " | "\t" | "\n"}
+