!_TAG_FILE_FORMAT	2	/extended format; --format=1 will not append ;" to lines/
!_TAG_FILE_SORTED	1	/0=unsorted, 1=sorted, 2=foldcase/
!_TAG_PROGRAM_AUTHOR	Darren Hiebert	/dhiebert@users.sourceforge.net/
!_TAG_PROGRAM_NAME	Exuberant Ctags	//
!_TAG_PROGRAM_URL	http://ctags.sourceforge.net	/official site/
!_TAG_PROGRAM_VERSION	5.8	//
And	../ast.ml	/^  | And$/;"	C	type:bin_op
Assign	../ast.ml	/^  | Assign$/;"	C	type:bin_op
Ast	../ast.ml	/^type bin_op =$/;"	M
Ast	../flowc.ml	/^type action = | Ast | Sast | Compile | Dot$/;"	C	type:action
BASIC_CHANNEL_MEMBERS	../c_runtime.c	/^#define BASIC_CHANNEL_MEMBERS /;"	d	file:
BinOp	../ast.ml	/^  | BinOp of expr * bin_op * expr$/;"	C	type:expr
Block	../ast.ml	/^  | Block of stmt list$/;"	C	type:stmt
Bool	../ast.ml	/^  | Bool$/;"	C	type:flow_type
BoolLiteral	../ast.ml	/^  | BoolLiteral of bool$/;"	C	type:expr
Break	../ast.ml	/^  | Break$/;"	C	type:stmt
CALL_DEQUEUE_FUNC	../c_runtime.c	/^#define CALL_DEQUEUE_FUNC(/;"	d	file:
CALL_ENQUEUE_FUNC	../c_runtime.c	/^#define CALL_ENQUEUE_FUNC(/;"	d	file:
Channel	../ast.ml	/^  | Channel of flow_type * direction$/;"	C	type:flow_type
Char	../ast.ml	/^  | Char$/;"	C	type:flow_type
CharLiteral	../ast.ml	/^  | CharLiteral of char$/;"	C	type:expr
Check	../testall.sh	/^Check() {$/;"	f
CheckFail	../testall.sh	/^CheckFail() {$/;"	f
Compare	../testall.sh	/^Compare() {$/;"	f
Compile	../compile.ml	/^open Ast$/;"	M
Compile	../flowc.ml	/^type action = | Ast | Sast | Compile | Dot$/;"	C	type:action
Concat	../ast.ml	/^  | Concat$/;"	C	type:bin_op
Continue	../ast.ml	/^  | Continue$/;"	C	type:stmt
Declaration	../ast.ml	/^  | Declaration of variable_declaration$/;"	C	type:stmt
Divide	../ast.ml	/^  | Divide$/;"	C	type:bin_op
Dot	../flowc.ml	/^type action = | Ast | Sast | Compile | Dot$/;"	C	type:action
Double	../ast.ml	/^  | Double$/;"	C	type:flow_type
DoubleLiteral	../ast.ml	/^  | DoubleLiteral of float$/;"	C	type:expr
Eq	../ast.ml	/^  | Eq$/;"	C	type:bin_op
Expr	../ast.ml	/^  | Expr of expr$/;"	C	type:stmt
Flowc	../flowc.ml	/^open Ast$/;"	M
For	../ast.ml	/^  | For of expr * expr * expr * stmt$/;"	C	type:stmt
FuncDecl	../ast.ml	/^  | VarDecl of variable_declaration | FuncDecl of function_declaration$/;"	C	type:declaration
FunctionCall	../ast.ml	/^  | FunctionCall of string * expr list$/;"	C	type:expr
Geq	../ast.ml	/^  | Geq$/;"	C	type:bin_op
Gt	../ast.ml	/^  | Gt$/;"	C	type:bin_op
Id	../ast.ml	/^  | Id of string$/;"	C	type:expr
If	../ast.ml	/^  | If of expr * stmt * stmt$/;"	C	type:stmt
In	../ast.ml	/^type direction = | In | Out | Nodir$/;"	C	type:direction
Int	../ast.ml	/^  | Int$/;"	C	type:flow_type
IntLiteral	../ast.ml	/^  | IntLiteral of int$/;"	C	type:expr
Leq	../ast.ml	/^  | Leq$/;"	C	type:bin_op
List	../ast.ml	/^  | List of flow_type$/;"	C	type:flow_type
ListInitializer	../ast.ml	/^  | ListInitializer of expr list$/;"	C	type:expr
ListLength	../ast.ml	/^type unary_op = | Retrieve | Negate | Not | ListLength | ListTail$/;"	C	type:unary_op
ListTail	../ast.ml	/^type unary_op = | Retrieve | Negate | Not | ListLength | ListTail$/;"	C	type:unary_op
Lt	../ast.ml	/^  | Lt$/;"	C	type:bin_op
MAKE_DEQUEUE_FUNC	../c_runtime.c	/^#define MAKE_DEQUEUE_FUNC(/;"	d	file:
MAKE_ENQUEUE_FUNC	../c_runtime.c	/^#define MAKE_ENQUEUE_FUNC(/;"	d	file:
MALLOC_CHANNEL	../c_runtime.c	/^#define MALLOC_CHANNEL(/;"	d	file:
MAX_SIZE	../c_types/char_simple_interleaver.c	/^    int MAX_SIZE;$/;"	m	struct:_char_channel	file:
MAX_SIZE	../c_types/int_channel.c	/^    int MAX_SIZE;$/;"	m	struct:int_channel	file:
MAX_SIZE	../c_types/int_interleaver.c	/^    int MAX_SIZE;$/;"	m	struct:int_channel	file:
MAX_SIZE	../c_types/int_simple_interleaver.c	/^    int MAX_SIZE;$/;"	m	struct:_int_channel	file:
Minus	../ast.ml	/^  | Minus$/;"	C	type:bin_op
Modulo	../ast.ml	/^  | Modulo$/;"	C	type:bin_op
Negate	../ast.ml	/^type unary_op = | Retrieve | Negate | Not | ListLength | ListTail$/;"	C	type:unary_op
Neq	../ast.ml	/^  | Neq$/;"	C	type:bin_op
Nodir	../ast.ml	/^type direction = | In | Out | Nodir$/;"	C	type:direction
Noexpr	../ast.ml	/^  | Noexpr$/;"	C	type:expr
Not	../ast.ml	/^type unary_op = | Retrieve | Negate | Not | ListLength | ListTail$/;"	C	type:unary_op
OBJS	../Makefile	/^OBJS = parser.cmo scanner.cmo printer.cmo sprinter.cmo boilerplate.cmo compile.cmo semantic_analysis.cmo flowc.cmo$/;"	m
Or	../ast.ml	/^  | Or$/;"	C	type:bin_op
Out	../ast.ml	/^type direction = | In | Out | Nodir$/;"	C	type:direction
Plus	../ast.ml	/^  | Plus$/;"	C	type:bin_op
Poison	../ast.ml	/^  | Poison of expr$/;"	C	type:stmt
Printer	../printer.ml	/^open Ast;;$/;"	M
Proc	../ast.ml	/^  | Proc$/;"	C	type:flow_type
Retrieve	../ast.ml	/^type unary_op = | Retrieve | Negate | Not | ListLength | ListTail$/;"	C	type:unary_op
Return	../ast.ml	/^  | Return of expr$/;"	C	type:stmt
Run	../testall.sh	/^Run() {$/;"	f
RunFail	../testall.sh	/^RunFail() {$/;"	f
SBlock	../sast.ml	/^  | SBlock of s_stmt list$/;"	C	type:s_stmt
SBreak	../sast.ml	/^  | SBreak$/;"	C	type:s_stmt
SContinue	../sast.ml	/^  | SContinue$/;"	C	type:s_stmt
SDeclaration	../sast.ml	/^  | SDeclaration of s_variable_declaration$/;"	C	type:s_stmt
SExitProc	../sast.ml	/^  | SExitProc$/;"	C	type:s_stmt
SExpr	../sast.ml	/^  | SExpr of typed_expr$/;"	C	type:s_stmt
SFor	../sast.ml	/^  | SFor of typed_expr * typed_expr * typed_expr * s_stmt$/;"	C	type:s_stmt
SFuncDecl	../sast.ml	/^  | SVarDecl of s_variable_declaration | SFuncDecl of s_function_declaration$/;"	C	type:s_declaration
SIf	../sast.ml	/^  | SIf of typed_expr * s_stmt * s_stmt$/;"	C	type:s_stmt
SPoison	../sast.ml	/^  | SPoison of typed_expr$/;"	C	type:s_stmt
SReturn	../sast.ml	/^  | SReturn of typed_expr$/;"	C	type:s_stmt
SVarDecl	../sast.ml	/^  | SVarDecl of s_variable_declaration | SFuncDecl of s_function_declaration$/;"	C	type:s_declaration
SWhile	../sast.ml	/^  | SWhile of typed_expr * s_stmt$/;"	C	type:s_stmt
Sast	../flowc.ml	/^type action = | Ast | Sast | Compile | Dot$/;"	C	type:action
Sast	../sast.ml	/^open Ast$/;"	M
Semantic_analysis	../semantic_analysis.ml	/^open Ast$/;"	M
Send	../ast.ml	/^  | Send$/;"	C	type:bin_op
SignalError	../testall.sh	/^SignalError() {$/;"	f
Sprinter	../sprinter.ml	/^open Ast;;$/;"	M
String	../ast.ml	/^  | String$/;"	C	type:flow_type
StringLiteral	../ast.ml	/^  | StringLiteral of string$/;"	C	type:expr
TARFILES	../Makefile	/^TARFILES = Makefile scanner.mll parser.mly flowc.ml$/;"	m
TBinOp	../sast.ml	/^  | TBinOp of typed_expr * bin_op * typed_expr$/;"	C	type:expr_details
TBoolLiteral	../sast.ml	/^  | TBoolLiteral of bool$/;"	C	type:expr_details
TCharLiteral	../sast.ml	/^  | TCharLiteral of char$/;"	C	type:expr_details
TDoubleLiteral	../sast.ml	/^  | TDoubleLiteral of float$/;"	C	type:expr_details
TFunctionCall	../sast.ml	/^  | TFunctionCall of string * typed_expr list$/;"	C	type:expr_details
TId	../sast.ml	/^  | TId of string$/;"	C	type:expr_details
TIntLiteral	../sast.ml	/^  | TIntLiteral of int$/;"	C	type:expr_details
TListInitializer	../sast.ml	/^  | TListInitializer of typed_expr list$/;"	C	type:expr_details
TNoexpr	../sast.ml	/^  | TNoexpr$/;"	C	type:expr_details
TStringLiteral	../sast.ml	/^  | TStringLiteral of string$/;"	C	type:expr_details
TUnaryOp	../sast.ml	/^  | TUnaryOp of unary_op * typed_expr$/;"	C	type:expr_details
Times	../ast.ml	/^  | Times$/;"	C	type:bin_op
UnaryOp	../ast.ml	/^  | UnaryOp of unary_op * expr$/;"	C	type:expr
Usage	../testall.sh	/^Usage() {$/;"	f
VarDecl	../ast.ml	/^  | VarDecl of variable_declaration | FuncDecl of function_declaration$/;"	C	type:declaration
Void	../ast.ml	/^  | Void$/;"	C	type:flow_type
While	../ast.ml	/^  | While of expr * stmt$/;"	C	type:stmt
YACC	../Makefile	/^YACC = ocamlyacc$/;"	m
__decrease_refs	../c_runtime.c	/^void __decrease_refs(struct _cell *head, int lock) {$/;"	f
_add_front	../c_runtime.c	/^struct _cell *_add_front(union _payload element, struct _cell *tail) {$/;"	f
_cell	../c_runtime.c	/^  void *_cell;$/;"	m	union:_payload	file:
_cell	../c_runtime.c	/^struct _cell {$/;"	s	file:
_cell	../c_types/linked_list.c	/^	void * _cell;$/;"	m	union:_payload	file:
_cell	../c_types/linked_list.c	/^struct _cell {$/;"	s	file:
_channel	../c_runtime.c	/^struct _channel {$/;"	s	file:
_channel_list_node	../c_runtime.c	/^struct _channel_list_node {$/;"	s	file:
_char	../c_runtime.c	/^  char _char;$/;"	m	union:_payload	file:
_char	../c_types/linked_list.c	/^	char _char;$/;"	m	union:_payload	file:
_char_channel	../c_runtime.c	/^struct _char_channel {$/;"	s	file:
_char_channel	../c_types/char_simple_interleaver.c	/^struct _char_channel{$/;"	s	file:
_decrease_refs	../c_runtime.c	/^void _decrease_refs(struct _cell *head) {$/;"	f
_dequeue_char	../c_types/char_simple_interleaver.c	/^char _dequeue_char(struct _char_channel *channel){$/;"	f
_dequeue_int	../c_types/int_simple_interleaver.c	/^int _dequeue_int(struct _int_channel *channel){$/;"	f
_double	../c_runtime.c	/^  double _double;$/;"	m	union:_payload	file:
_double	../c_types/linked_list.c	/^	double _double;$/;"	m	union:_payload	file:
_double_channel	../c_runtime.c	/^struct _double_channel {$/;"	s	file:
_enqueue_char	../c_types/char_simple_interleaver.c	/^void _enqueue_char(char element, struct _char_channel *channel){$/;"	f
_enqueue_int	../c_types/int_simple_interleaver.c	/^void _enqueue_int(int element, struct _int_channel *channel){$/;"	f
_exit_thread	../c_runtime.c	/^void _exit_thread() {$/;"	f
_get_front	../c_runtime.c	/^union _payload _get_front(struct _cell *head) {$/;"	f
_get_front	../c_types/linked_list.c	/^union _payload _get_front(struct _cell* head){$/;"	f
_get_length	../c_runtime.c	/^int _get_length(struct _cell *head) {$/;"	f
_get_length	../c_types/linked_list.c	/^int _get_length(struct _cell* head){$/;"	f
_get_tail	../c_runtime.c	/^struct _cell *_get_tail(struct _cell *head) {$/;"	f
_get_thread	../c_runtime.c	/^struct _pthread_node *_get_thread(pthread_t thread_id) {$/;"	f
_get_thread_name	../c_runtime.c	/^char *_get_thread_name(pthread_t thread_id) {$/;"	f
_head	../c_runtime.c	/^struct _pthread_node *_head = NULL;$/;"	v	typeref:struct:_pthread_node
_head	../c_types/char_simple_interleaver.c	/^struct _pthread_node* _head = NULL;$/;"	v	typeref:struct:_pthread_node
_head	../c_types/int_simple_interleaver.c	/^struct _pthread_node* _head = NULL;$/;"	v	typeref:struct:_pthread_node
_increase_refs	../c_runtime.c	/^void _increase_refs(struct _cell *head) {$/;"	f
_init_channel	../c_runtime.c	/^int _init_channel(struct _channel *channel) {$/;"	f
_init_char_channel	../c_types/char_simple_interleaver.c	/^int _init_char_channel(struct _char_channel *channel){$/;"	f
_init_int_channel	../c_types/int_simple_interleaver.c	/^int _init_int_channel(struct _int_channel *channel){$/;"	f
_initialize_runtime	../c_runtime.c	/^void _initialize_runtime(bool print_dot) {$/;"	f
_int	../c_runtime.c	/^  int _int;$/;"	m	union:_payload	file:
_int	../c_types/linked_list.c	/^	int _int;$/;"	m	union:_payload	file:
_int_channel	../c_runtime.c	/^  struct _int_channel *_int_channel;$/;"	m	union:_payload	typeref:struct:_payload::_int_channel	file:
_int_channel	../c_runtime.c	/^struct _int_channel {$/;"	s	file:
_int_channel	../c_types/int_simple_interleaver.c	/^struct _int_channel{$/;"	s	file:
_interleaver_args	../c_types/char_simple_interleaver.c	/^struct _interleaver_args {$/;"	s	file:
_interleaver_args	../c_types/int_interleaver.c	/^struct _interleaver_args {$/;"	s	file:
_interleaver_args	../c_types/int_simple_interleaver.c	/^struct _interleaver_args {$/;"	s	file:
_make_pthread_t	../c_runtime.c	/^pthread_t *_make_pthread_t(char *proc_name) {$/;"	f
_make_pthread_t	../c_types/char_simple_interleaver.c	/^pthread_t* _make_pthread_t(){$/;"	f
_make_pthread_t	../c_types/int_simple_interleaver.c	/^pthread_t* _make_pthread_t(){$/;"	f
_payload	../c_runtime.c	/^union _payload {$/;"	u	file:
_payload	../c_types/linked_list.c	/^union _payload{$/;"	u	file:
_poison	../c_runtime.c	/^void _poison(struct _channel *channel) {$/;"	f
_poison	../c_types/char_simple_interleaver.c	/^void _poison(struct _char_channel *channel) {$/;"	f
_poison	../c_types/int_simple_interleaver.c	/^void _poison(struct _int_channel *channel) {$/;"	f
_print_dot_node	../c_runtime.c	/^void _print_dot_node(struct _channel *chan) {$/;"	f
_print_int_args	../c_types/int_interleaver.c	/^struct _print_int_args {$/;"	s	file:
_printer_args	../c_types/char_simple_interleaver.c	/^struct _printer_args {$/;"	s	file:
_printer_args	../c_types/int_simple_interleaver.c	/^struct _printer_args {$/;"	s	file:
_pthread_node	../c_runtime.c	/^struct _pthread_node {$/;"	s	file:
_pthread_node	../c_types/char_simple_interleaver.c	/^struct _pthread_node{$/;"	s	file:
_pthread_node	../c_types/int_simple_interleaver.c	/^struct _pthread_node{$/;"	s	file:
_ref_counting_lock	../c_runtime.c	/^pthread_mutex_t _ref_counting_lock;$/;"	v
_start_new_list	../c_types/linked_list.c	/^struct _cell* _start_new_list(union _payload element){$/;"	f
_tail	../c_runtime.c	/^struct _pthread_node *_tail = NULL;$/;"	v	typeref:struct:_pthread_node
_thread_list_lock	../c_runtime.c	/^pthread_mutex_t _thread_list_lock;$/;"	v
_thread_list_lock	../c_types/char_simple_interleaver.c	/^pthread_mutex_t _thread_list_lock;$/;"	v
_thread_list_lock	../c_types/int_simple_interleaver.c	/^pthread_mutex_t _thread_list_lock;$/;"	v
_tokenGen_args	../c_types/char_simple_interleaver.c	/^struct _tokenGen_args {$/;"	s	file:
_tokenGen_args	../c_types/int_simple_interleaver.c	/^struct _tokenGen_args {$/;"	s	file:
_token_gen_for_array_size_five_args	../c_types/int_interleaver.c	/^struct _token_gen_for_array_size_five_args {$/;"	s	file:
_wait_for_finish	../c_runtime.c	/^void _wait_for_finish(bool print_dot) {$/;"	f
_wait_for_finish	../c_types/char_simple_interleaver.c	/^void _wait_for_finish(){$/;"	f
_wait_for_finish	../c_types/int_simple_interleaver.c	/^void _wait_for_finish(){$/;"	f
_wait_for_more	../c_runtime.c	/^bool _wait_for_more(struct _channel *channel) {$/;"	f
_wait_for_more	../c_types/char_simple_interleaver.c	/^bool _wait_for_more(struct _char_channel *channel) {$/;"	f
_wait_for_more	../c_types/int_simple_interleaver.c	/^bool _wait_for_more(struct _int_channel *channel) {$/;"	f
action	../flowc.ml	/^  let (action, file) =$/;"	v
action	../flowc.ml	/^type action = | Ast | Sast | Compile | Dot$/;"	t
add_front	../c_types/linked_list.c	/^struct _cell* add_front(union _payload element, struct _cell *tail){$/;"	f
arguments	../ast.ml	/^    arguments : variable_declaration list; has_definition : bool;$/;"	r	type:function_declaration
back	../c_types/char_simple_interleaver.c	/^    int back;     \/\/ One past the last element$/;"	m	struct:_char_channel	file:
back	../c_types/int_channel.c	/^    int back;   	\/\/ One past the last element$/;"	m	struct:int_channel	file:
back	../c_types/int_interleaver.c	/^    int back;   	\/\/ One past the last element$/;"	m	struct:int_channel	file:
back	../c_types/int_simple_interleaver.c	/^    int back;   	\/\/ One past the last element$/;"	m	struct:_int_channel	file:
bin_op	../ast.ml	/^type bin_op =$/;"	t
body	../ast.ml	/^    body : stmt list$/;"	r	type:function_declaration
built_in_funcs	../semantic_analysis.ml	/^  let built_in_funcs =$/;"	v
chan	../c_runtime.c	/^  struct _channel *chan;$/;"	m	struct:_channel_list_node	typeref:struct:_channel_list_node::_channel	file:
chan	../c_types/char_simple_interleaver.c	/^    struct _char_channel *chan;$/;"	m	struct:_printer_args	typeref:struct:_printer_args::_char_channel	file:
chan	../c_types/int_interleaver.c	/^    struct int_channel *chan;$/;"	m	struct:_print_int_args	typeref:struct:_print_int_args::int_channel	file:
chan	../c_types/int_simple_interleaver.c	/^    struct _int_channel *chan;$/;"	m	struct:_printer_args	typeref:struct:_printer_args::_int_channel	file:
chan1	../c_types/char_simple_interleaver.c	/^    struct _char_channel *chan1;$/;"	m	struct:_interleaver_args	typeref:struct:_interleaver_args::_char_channel	file:
chan1	../c_types/int_interleaver.c	/^    struct int_channel *chan1;$/;"	m	struct:_interleaver_args	typeref:struct:_interleaver_args::int_channel	file:
chan1	../c_types/int_simple_interleaver.c	/^    struct _int_channel *chan1;$/;"	m	struct:_interleaver_args	typeref:struct:_interleaver_args::_int_channel	file:
chan2	../c_types/char_simple_interleaver.c	/^    struct _char_channel *chan2;$/;"	m	struct:_interleaver_args	typeref:struct:_interleaver_args::_char_channel	file:
chan2	../c_types/int_interleaver.c	/^    struct int_channel *chan2;$/;"	m	struct:_interleaver_args	typeref:struct:_interleaver_args::int_channel	file:
chan2	../c_types/int_simple_interleaver.c	/^    struct _int_channel *chan2;$/;"	m	struct:_interleaver_args	typeref:struct:_interleaver_args::_int_channel	file:
check_arg_declaration	../semantic_analysis.ml	/^  let check_arg_declaration (env : environment) (decl : variable_declaration)$/;"	v
check_binop	../semantic_analysis.ml	/^  let check_binop (e1 : typed_expr) (e2 : typed_expr) (op : bin_op) (env: environment) :$/;"	v
check_declaration	../semantic_analysis.ml	/^  let check_declaration (env : environment) (decl : declaration) :$/;"	v
check_expr	../semantic_analysis.ml	/^  let rec check_expr (env : environment) (e : expr) : typed_expr =$/;"	v
check_function_call	../semantic_analysis.ml	/^  let check_function_call (name : string) (actual_list : typed_expr list)$/;"	v
check_function_declaration	../semantic_analysis.ml	/^  let check_function_declaration (env : environment)$/;"	v
check_progam	../semantic_analysis.ml	/^let check_progam (prog : program) : s_program =$/;"	v
check_stmt	../semantic_analysis.ml	/^  let rec check_stmt (env : environment) (stmt : stmt) :$/;"	v
check_stmt_list	../semantic_analysis.ml	/^  and check_stmt_list (env : environment) (stmt_list : stmt list)$/;"	v
check_unop	../semantic_analysis.ml	/^  let check_unop (e : typed_expr) (op : unary_op) : typed_expr =$/;"	v
check_variable_declaration	../semantic_analysis.ml	/^  let check_variable_declaration (env : environment)$/;"	v
checked_expr	../semantic_analysis.ml	/^        let checked_expr = check_expr env e$/;"	v
checked_expr1	../semantic_analysis.ml	/^        let checked_expr1 = check_expr env e1$/;"	v
compile	../compile.ml	/^let compile (program : s_program) (dot : bool) : string =$/;"	v
data	../c_runtime.c	/^  union _payload data;$/;"	m	struct:_cell	typeref:union:_cell::_payload	file:
data	../c_types/linked_list.c	/^	union _payload data;$/;"	m	struct:_cell	typeref:union:_cell::_payload	file:
declaration	../ast.ml	/^type declaration =$/;"	t
declaration_id	../ast.ml	/^  { declaration_type : flow_type; declaration_id : string;$/;"	r	type:variable_declaration
declaration_initializer	../ast.ml	/^    declaration_initializer : expr$/;"	r	type:variable_declaration
declaration_type	../ast.ml	/^  { declaration_type : flow_type; declaration_id : string;$/;"	r	type:variable_declaration
dequeue_int	../c_types/int_channel.c	/^int dequeue_int(struct int_channel *channel){$/;"	f
dequeue_int	../c_types/int_interleaver.c	/^int dequeue_int(struct int_channel *channel){$/;"	f
direction	../ast.ml	/^type direction = | In | Out | Nodir$/;"	t
dot_graph	../printer.ml	/^let dot_graph = ref ""$/;"	v
dot_graph	../sprinter.ml	/^let dot_graph = ref ""$/;"	v
dot_initializer	../ast.ml	/^type dot_initializer =$/;"	t
dot_initializer_id	../ast.ml	/^  { dot_initializer_id : string; dot_initializer_val : expr$/;"	r	type:dot_initializer
dot_initializer_val	../ast.ml	/^  { dot_initializer_id : string; dot_initializer_val : expr$/;"	r	type:dot_initializer
enqueue_int	../c_types/int_channel.c	/^void enqueue_int(int element, struct int_channel *channel){$/;"	f
enqueue_int	../c_types/int_interleaver.c	/^void enqueue_int(int element, struct int_channel *channel){$/;"	f
env	../semantic_analysis.ml	/^  let env =$/;"	v
environment	../semantic_analysis.ml	/^type environment =$/;"	t
expr	../ast.ml	/^  and expr =$/;"	t
expr_details	../sast.ml	/^  expr_details =$/;"	t
expr_details	../semantic_analysis.ml	/^        let (expr_details, t) = check_expr env e$/;"	v
flow_type	../ast.ml	/^type flow_type =$/;"	t
front	../c_types/char_simple_interleaver.c	/^    int front;$/;"	m	struct:_char_channel	file:
front	../c_types/int_channel.c	/^    int front;$/;"	m	struct:int_channel	file:
front	../c_types/int_interleaver.c	/^    int front;$/;"	m	struct:int_channel	file:
front	../c_types/int_simple_interleaver.c	/^    int front;$/;"	m	struct:_int_channel	file:
func_body	../semantic_analysis.ml	/^    let func_body =$/;"	v
func_node	../semantic_analysis.ml	/^    let func_node =$/;"	v
funcs	../semantic_analysis.ml	/^    funcs : function_entry list; in_loop : bool$/;"	r	type:environment
function_declaration	../ast.ml	/^type function_declaration =$/;"	t
function_entry	../semantic_analysis.ml	/^type function_entry =$/;"	t
function_name	../ast.ml	/^  { return_type : flow_type; function_name : string;$/;"	r	type:function_declaration
get_tail	../c_types/linked_list.c	/^struct _cell* get_tail(struct _cell* head){$/;"	f
graph	../flowc.ml	/^           let graph = "digraph G{" ^ (!Printer.dot_graph ^ "}") in$/;"	v
graph	../flowc.ml	/^           let graph = "digraph G{" ^ (!Sprinter.dot_graph ^ "}") in$/;"	v
has_definition	../ast.ml	/^    arguments : variable_declaration list; has_definition : bool;$/;"	r	type:function_declaration
head	../c_types/int_interleaver.c	/^struct pthread_node* head = NULL;$/;"	v	typeref:struct:pthread_node
in_loop	../semantic_analysis.ml	/^    funcs : function_entry list; in_loop : bool$/;"	r	type:environment
init_int_channel	../c_types/int_channel.c	/^int init_int_channel(struct int_channel *channel){$/;"	f
init_int_channel	../c_types/int_interleaver.c	/^int init_int_channel(struct int_channel *channel){$/;"	f
input	../c_types/char_simple_interleaver.c	/^    char input;$/;"	m	struct:_tokenGen_args	file:
input	../c_types/int_interleaver.c	/^    int *input;$/;"	m	struct:_token_gen_for_array_size_five_args	file:
input	../c_types/int_simple_interleaver.c	/^    int input;$/;"	m	struct:_tokenGen_args	file:
int_channel	../c_types/int_channel.c	/^struct int_channel{$/;"	s	file:
int_channel	../c_types/int_interleaver.c	/^struct int_channel{$/;"	s	file:
interleaver	../c_types/char_simple_interleaver.c	/^void *interleaver(void *_args) {$/;"	f
interleaver	../c_types/int_interleaver.c	/^void *interleaver(void *_args) {$/;"	f
interleaver	../c_types/int_simple_interleaver.c	/^void *interleaver(void *_args) {$/;"	f
is_arithmetic	../semantic_analysis.ml	/^  let is_arithmetic (expr : typed_expr) : bool =$/;"	v
is_declared_global_var	../semantic_analysis.ml	/^  let rec is_declared_global_var (name: string) (symbol_table: symtab) : bool =$/;"	v
is_logical	../semantic_analysis.ml	/^  let is_logical (expr : typed_expr) : bool =$/;"	v
length	../c_runtime.c	/^  int length;$/;"	m	struct:_cell	file:
length	../c_types/linked_list.c	/^	int length;$/;"	m	struct:_cell	file:
lexbuf	../flowc.ml	/^  let lexbuf = Lexing.from_channel file in$/;"	v
lock	../c_types/char_simple_interleaver.c	/^    pthread_mutex_t lock;$/;"	m	struct:_char_channel	file:
lock	../c_types/int_channel.c	/^    pthread_mutex_t lock;$/;"	m	struct:int_channel	file:
lock	../c_types/int_interleaver.c	/^    pthread_mutex_t lock;$/;"	m	struct:int_channel	file:
lock	../c_types/int_simple_interleaver.c	/^    pthread_mutex_t lock;$/;"	m	struct:_int_channel	file:
main	../c_types/char_simple_interleaver.c	/^int main() {$/;"	f
main	../c_types/int_interleaver.c	/^int main() {$/;"	f
main	../c_types/int_simple_interleaver.c	/^int main() {$/;"	f
main	../tests/helloworld_v1.c	/^int main() {$/;"	f
make_pthread_t	../c_types/int_interleaver.c	/^pthread_t* make_pthread_t(){$/;"	f
name	../semantic_analysis.ml	/^  { name : string; param_types : flow_type list; ret_type : flow_type$/;"	r	type:function_entry
new_env	../semantic_analysis.ml	/^         let (new_env, snode) = check_declaration (fst acc) decl$/;"	v
next	../c_runtime.c	/^  struct _cell *next;$/;"	m	struct:_cell	typeref:struct:_cell::_cell	file:
next	../c_runtime.c	/^  struct _channel_list_node *next;$/;"	m	struct:_channel_list_node	typeref:struct:_channel_list_node::_channel_list_node	file:
next	../c_runtime.c	/^  struct _pthread_node *next;$/;"	m	struct:_pthread_node	typeref:struct:_pthread_node::_pthread_node	file:
next	../c_types/char_simple_interleaver.c	/^    struct _pthread_node *next;$/;"	m	struct:_pthread_node	typeref:struct:_pthread_node::_pthread_node	file:
next	../c_types/int_interleaver.c	/^	struct pthread_node *next;$/;"	m	struct:pthread_node	typeref:struct:pthread_node::pthread_node	file:
next	../c_types/int_simple_interleaver.c	/^    struct _pthread_node *next;$/;"	m	struct:_pthread_node	typeref:struct:_pthread_node::_pthread_node	file:
next	../c_types/linked_list.c	/^	struct _cell *next;$/;"	m	struct:_cell	typeref:struct:_cell::_cell	file:
node_num	../printer.ml	/^let node_num = ref 0$/;"	v
node_num	../sprinter.ml	/^let node_num = ref 0$/;"	v
ochan	../c_types/char_simple_interleaver.c	/^    struct _char_channel *ochan;$/;"	m	struct:_interleaver_args	typeref:struct:_interleaver_args::_char_channel	file:
ochan	../c_types/char_simple_interleaver.c	/^    struct _char_channel *ochan;$/;"	m	struct:_tokenGen_args	typeref:struct:_tokenGen_args::_char_channel	file:
ochan	../c_types/int_interleaver.c	/^    struct int_channel *ochan;$/;"	m	struct:_interleaver_args	typeref:struct:_interleaver_args::int_channel	file:
ochan	../c_types/int_interleaver.c	/^    struct int_channel *ochan;$/;"	m	struct:_token_gen_for_array_size_five_args	typeref:struct:_token_gen_for_array_size_five_args::int_channel	file:
ochan	../c_types/int_simple_interleaver.c	/^    struct _int_channel *ochan;$/;"	m	struct:_interleaver_args	typeref:struct:_interleaver_args::_int_channel	file:
ochan	../c_types/int_simple_interleaver.c	/^    struct _int_channel *ochan;$/;"	m	struct:_tokenGen_args	typeref:struct:_tokenGen_args::_int_channel	file:
outfile	../flowc.ml	/^           let outfile = open_out "out.dot" in$/;"	v
param_types	../semantic_analysis.ml	/^  { name : string; param_types : flow_type list; ret_type : flow_type$/;"	r	type:function_entry
parent	../semantic_analysis.ml	/^  { parent : symtab option; variables : variable_declaration list$/;"	r	type:symtab
poison	../c_types/int_channel.c	/^void poison(struct int_channel *channel) {$/;"	f
poison	../c_types/int_interleaver.c	/^void poison(struct int_channel *channel) {$/;"	f
poisoned	../c_types/char_simple_interleaver.c	/^    bool poisoned;$/;"	m	struct:_char_channel	file:
poisoned	../c_types/int_channel.c	/^    bool poisoned;$/;"	m	struct:int_channel	file:
poisoned	../c_types/int_interleaver.c	/^    bool poisoned;$/;"	m	struct:int_channel	file:
poisoned	../c_types/int_simple_interleaver.c	/^    bool poisoned;$/;"	m	struct:_int_channel	file:
print_dot_node	../printer.ml	/^let print_dot_node node_desc =$/;"	v
print_dot_node	../sprinter.ml	/^let print_dot_node node_desc =$/;"	v
print_int	../c_types/int_interleaver.c	/^void *print_int(void *_args) {$/;"	f
print_string_of_binop	../printer.ml	/^let print_string_of_binop op =$/;"	v
print_string_of_binop	../sprinter.ml	/^let print_string_of_binop op =$/;"	v
print_string_of_decl	../printer.ml	/^let print_string_of_decl = function$/;"	v
print_string_of_decl	../sprinter.ml	/^let print_string_of_decl = function$/;"	v
print_string_of_expr	../printer.ml	/^let rec print_string_of_expr = function$/;"	v
print_string_of_expr	../sprinter.ml	/^let rec print_string_of_expr = function$/;"	v
print_string_of_func_decl	../printer.ml	/^let print_string_of_func_decl fdecl =$/;"	v
print_string_of_func_decl	../sprinter.ml	/^let print_string_of_func_decl fdecl =$/;"	v
print_string_of_program	../printer.ml	/^let print_string_of_program (prog: program) =$/;"	v
print_string_of_program	../sprinter.ml	/^let print_string_of_program (prog: s_program) =$/;"	v
print_string_of_stmt	../printer.ml	/^let rec print_string_of_stmt = function$/;"	v
print_string_of_stmt	../sprinter.ml	/^let rec print_string_of_stmt = function$/;"	v
print_string_of_type	../printer.ml	/^let print_string_of_type t =$/;"	v
print_string_of_type	../sprinter.ml	/^let print_string_of_type t =$/;"	v
print_string_of_var_decl	../printer.ml	/^let print_string_of_var_decl vdecl =$/;"	v
print_string_of_var_decl	../sprinter.ml	/^let print_string_of_var_decl vdecl =$/;"	v
printer	../c_types/char_simple_interleaver.c	/^void *printer(void *_args) {$/;"	f
printer	../c_types/int_simple_interleaver.c	/^void *printer(void *_args) {$/;"	f
proc_name	../c_runtime.c	/^  char *proc_name;$/;"	m	struct:_pthread_node	file:
program	../ast.ml	/^type program = declaration list$/;"	t
program	../flowc.ml	/^  let program = Parser.program Scanner.token lexbuf in$/;"	v
pthread_node	../c_types/int_interleaver.c	/^struct pthread_node{$/;"	s	file:
queue	../c_runtime.c	/^  char queue[100];$/;"	m	struct:_char_channel	file:
queue	../c_runtime.c	/^  double queue[100];$/;"	m	struct:_double_channel	file:
queue	../c_runtime.c	/^  int queue[100];$/;"	m	struct:_int_channel	file:
queue	../c_types/char_simple_interleaver.c	/^    char queue[100];$/;"	m	struct:_char_channel	file:
queue	../c_types/int_channel.c	/^    int queue[100];$/;"	m	struct:int_channel	file:
queue	../c_types/int_interleaver.c	/^    int queue[100];$/;"	m	struct:int_channel	file:
queue	../c_types/int_simple_interleaver.c	/^    int queue[100];$/;"	m	struct:_int_channel	file:
read_ready	../c_types/char_simple_interleaver.c	/^    pthread_cond_t read_ready;$/;"	m	struct:_char_channel	file:
read_ready	../c_types/int_channel.c	/^    pthread_cond_t read_ready;$/;"	m	struct:int_channel	file:
read_ready	../c_types/int_interleaver.c	/^    pthread_cond_t read_ready;$/;"	m	struct:int_channel	file:
read_ready	../c_types/int_simple_interleaver.c	/^    pthread_cond_t read_ready;$/;"	m	struct:_int_channel	file:
references	../c_runtime.c	/^  int references;$/;"	m	struct:_cell	file:
references	../c_types/linked_list.c	/^	int references;$/;"	m	struct:_cell	file:
ret_type	../semantic_analysis.ml	/^  { name : string; param_types : flow_type list; ret_type : flow_type$/;"	r	type:function_entry
return_type	../ast.ml	/^  { return_type : flow_type; function_name : string;$/;"	r	type:function_declaration
return_type	../semantic_analysis.ml	/^  { return_type : flow_type option; symbol_table : symtab;$/;"	r	type:environment
s_arguments	../sast.ml	/^    s_arguments : s_variable_declaration list; s_has_definition : bool;$/;"	r	type:s_function_declaration
s_body	../sast.ml	/^    s_body : s_stmt list$/;"	r	type:s_function_declaration
s_declaration	../sast.ml	/^type s_declaration =$/;"	t
s_declaration_id	../sast.ml	/^  { s_declaration_type : flow_type; s_declaration_id : string;$/;"	r	type:s_variable_declaration
s_declaration_initializer	../sast.ml	/^    s_declaration_initializer : typed_expr$/;"	r	type:s_variable_declaration
s_declaration_type	../sast.ml	/^  { s_declaration_type : flow_type; s_declaration_id : string;$/;"	r	type:s_variable_declaration
s_dot_initializer	../sast.ml	/^type s_dot_initializer =$/;"	t
s_dot_initializer_id	../sast.ml	/^  { s_dot_initializer_id : string; s_dot_initializer_val : typed_expr$/;"	r	type:s_dot_initializer
s_dot_initializer_val	../sast.ml	/^  { s_dot_initializer_id : string; s_dot_initializer_val : typed_expr$/;"	r	type:s_dot_initializer
s_function_declaration	../sast.ml	/^type s_function_declaration =$/;"	t
s_function_name	../sast.ml	/^  { s_return_type : flow_type; s_function_name : string;$/;"	r	type:s_function_declaration
s_has_definition	../sast.ml	/^    s_arguments : s_variable_declaration list; s_has_definition : bool;$/;"	r	type:s_function_declaration
s_program	../sast.ml	/^type s_program = s_declaration list$/;"	t
s_return_type	../sast.ml	/^  { s_return_type : flow_type; s_function_name : string;$/;"	r	type:s_function_declaration
s_stmt	../sast.ml	/^type s_stmt =$/;"	t
s_variable_declaration	../sast.ml	/^type s_variable_declaration =$/;"	t
size	../c_types/char_simple_interleaver.c	/^    int size;$/;"	m	struct:_char_channel	file:
size	../c_types/int_channel.c	/^    int size;$/;"	m	struct:int_channel	file:
size	../c_types/int_interleaver.c	/^    int size;$/;"	m	struct:int_channel	file:
size	../c_types/int_simple_interleaver.c	/^    int size;$/;"	m	struct:_int_channel	file:
sprogram	../flowc.ml	/^  let sprogram =$/;"	v
stmt	../ast.ml	/^type stmt =$/;"	t
string_of_actual_list	../semantic_analysis.ml	/^  let string_of_actual_list actual_list =$/;"	v
string_of_binop	../semantic_analysis.ml	/^  let string_of_binop =$/;"	v
string_of_type	../printer.ml	/^let rec string_of_type = function$/;"	v
string_of_type	../semantic_analysis.ml	/^  let rec string_of_type =$/;"	v
string_of_type	../sprinter.ml	/^let rec string_of_type = function$/;"	v
string_of_type_list	../semantic_analysis.ml	/^  let string_of_type_list type_list =$/;"	v
string_of_unop	../semantic_analysis.ml	/^  let string_of_unop =$/;"	v
supported_channels	../compile.ml	/^let supported_channels = [ Int; Char; Double ]$/;"	v
supported_lists	../compile.ml	/^let supported_lists = [ Int; Char; Double; Channel (Int, Nodir) ]$/;"	v
symbol_table	../semantic_analysis.ml	/^  { return_type : flow_type option; symbol_table : symtab;$/;"	r	type:environment
symtab	../semantic_analysis.ml	/^type symtab =$/;"	t
thread	../c_runtime.c	/^  pthread_t thread;$/;"	m	struct:_pthread_node	file:
thread	../c_types/char_simple_interleaver.c	/^    pthread_t thread;$/;"	m	struct:_pthread_node	file:
thread	../c_types/int_interleaver.c	/^	pthread_t thread;$/;"	m	struct:pthread_node	file:
thread	../c_types/int_simple_interleaver.c	/^    pthread_t thread;$/;"	m	struct:_pthread_node	file:
thread_list_lock	../c_types/int_interleaver.c	/^pthread_mutex_t thread_list_lock;$/;"	v
tokenGen	../c_types/char_simple_interleaver.c	/^void *tokenGen(void *_args) {$/;"	f
tokenGen	../c_types/int_simple_interleaver.c	/^void *tokenGen(void *_args) {$/;"	f
token_gen_for_array_size_five	../c_types/int_interleaver.c	/^void *token_gen_for_array_size_five(void *_args) {$/;"	f
translate_expr	../compile.ml	/^  let rec translate_expr (expr : typed_expr) : string =$/;"	v
translate_type	../compile.ml	/^  let rec translate_type (ftype : flow_type) =$/;"	v
typed_expr	../sast.ml	/^  and typed_expr =$/;"	t
unary_op	../ast.ml	/^type unary_op = | Retrieve | Negate | Not | ListLength | ListTail$/;"	t
variable_declaration	../ast.ml	/^type variable_declaration =$/;"	t
variables	../semantic_analysis.ml	/^  { parent : symtab option; variables : variable_declaration list$/;"	r	type:symtab
wait_for_finish	../c_types/int_interleaver.c	/^void wait_for_finish(){$/;"	f
wait_for_more	../c_types/int_channel.c	/^bool wait_for_more(struct int_channel *channel) {$/;"	f
wait_for_more	../c_types/int_interleaver.c	/^bool wait_for_more(struct int_channel *channel) {$/;"	f
wait_for_more	../compile.ml	/^  let wait_for_more (exp: string) (t: flow_type) : string =$/;"	v
write_ready	../c_types/char_simple_interleaver.c	/^    pthread_cond_t write_ready;$/;"	m	struct:_char_channel	file:
write_ready	../c_types/int_channel.c	/^    pthread_cond_t write_ready;$/;"	m	struct:int_channel	file:
write_ready	../c_types/int_interleaver.c	/^    pthread_cond_t write_ready;$/;"	m	struct:int_channel	file:
write_ready	../c_types/int_simple_interleaver.c	/^    pthread_cond_t write_ready;$/;"	m	struct:_int_channel	file:
writing_channels	../c_runtime.c	/^  struct _channel_list_node *writing_channels;$/;"	m	struct:_pthread_node	typeref:struct:_pthread_node::_channel_list_node	file:
