---
title: Analysis Flowchart
---
flowchart TD
start[Start]
pass1[Check shebangs]
pass1part2[Check filenames]
pass1part3[Check filepath patterns]
pass1part4[Check extensions]
result1[Return languages]
pass2[Heuristics]
result2branch1[Return languages from heuristics]
result2branch2[Return languages from first check]
pass3[Pick by priority]
stop[Stop]
start --> pass1
pass1 -->|Shebang matches| result1
pass1 -->|No matching shebangs| pass1part2
pass1part2 -->|filename matches| result1
pass1part2 -->|No matching filenames| pass1part3
pass1part3 -->|filepath matches| result1
pass1part3 -->|No matching filepaths| pass1part4
pass1part4 -->result1
result1 -->|0 or 1 matching languages| stop
result1 -->|2 or more matching languages| pass2
pass2 -->|1 matching language| stop
pass2 -->|2 or more matching languages| result2branch1
pass2 -->|No matching languages| result2branch2
result2branch1 --> pass3
result2branch2 --> pass3
pass3 --> stop