package asli
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
Interpreter for Arm's Architecture Specification Language (ASL)
Install
dune-project
Dependency
Authors
Maintainers
Sources
0.2.0.tar.gz
md5=f4581fd209256823fa4d569ac96c8cee
sha512=fd4a74294beb9eeeafa80c9224b5dc30f5e5ebde4d53fa601929d283b6ca72154de313874321774914f738ac6f0d640e59452f7d03cb1db7b3a019b48b82e0d4
doc/asli.libASL/LibASL/Asl_ast/index.html
Module LibASL.Asl_astSource
Source
type l = | Unknown| Int of string * l option| Generated of l| Range of Lexing.position * Lexing.position
Location tracking
Identifiers used for variable names, function names, etc.
There are two kinds of identifier:
- Ident is generated by the parser - it is just a string
- FIdent is generated by the disambiguation part of the typechecker and includes a unique label to distinguish different entities with the same name in the source syntax.
Type Identifiers
Source
type binop = | Binop_Eq| Binop_NtEq| Binop_Gt| Binop_GtEq| Binop_Lt| Binop_LtEq| Binop_Plus| Binop_Minus| Binop_Multiply| Binop_Divide| Binop_Power| Binop_Quot| Binop_Rem| Binop_Div| Binop_Mod| Binop_ShiftL| Binop_ShiftR| Binop_BoolAnd| Binop_BoolOr| Binop_BoolIff| Binop_BoolImplies| Binop_BitOr| Binop_BitEor| Binop_BitAnd| Binop_Append| Binop_Concat| Binop_DUMMY
Source
and expr = | Expr_If of expr * expr * e_elsif list * expr| Expr_Binop of expr * binop * expr| Expr_Unop of unop * expr| Expr_Field of expr * ident| Expr_Fields of expr * ident list| Expr_Slices of expr * slice list| Expr_In of expr * pattern| Expr_Var of ident| Expr_Parens of expr| Expr_Tuple of expr list| Expr_Unknown of ty| Expr_ImpDef of ty * string option| Expr_TApply of ident * expr list * expr list| Expr_Array of expr * expr| Expr_LitInt of intLit| Expr_LitHex of hexLit| Expr_LitReal of realLit| Expr_LitBits of bitsLit| Expr_LitMask of maskLit| Expr_LitString of string
Source
type lexpr = | LExpr_Wildcard| LExpr_Var of ident| LExpr_Field of lexpr * ident| LExpr_Fields of lexpr * ident list| LExpr_Slices of lexpr * slice list| LExpr_BitTuple of lexpr list| LExpr_Tuple of lexpr list| LExpr_Array of lexpr * expr| LExpr_Write of ident * expr list * expr list| LExpr_ReadWrite of ident * ident * expr list * expr list
Source
type stmt = | Stmt_VarDeclsNoInit of ty * ident list * l| Stmt_VarDecl of ty * ident * expr * l| Stmt_ConstDecl of ty * ident * expr * l| Stmt_Assign of lexpr * expr * l| Stmt_FunReturn of expr * l| Stmt_ProcReturn of l| Stmt_Assert of expr * l| Stmt_Unpred of l| Stmt_ConstrainedUnpred of l| Stmt_ImpDef of ident * l| Stmt_Undefined of l| Stmt_ExceptionTaken of l| Stmt_Dep_Unpred of l| Stmt_Dep_ImpDef of string * l| Stmt_Dep_Undefined of l| Stmt_See of expr * l| Stmt_Throw of ident * l| Stmt_DecodeExecute of ident * expr * l| Stmt_TCall of ident * expr list * expr list * l| Stmt_If of expr * stmt list * s_elsif list * stmt list * l| Stmt_Case of expr * alt list * stmt list option * l| Stmt_For of ident * expr * direction * expr * stmt list * l| Stmt_While of expr * stmt list * l| Stmt_Repeat of stmt list * expr * l| Stmt_Try of stmt list * ident * catcher list * stmt list option * l
Source
type decode_pattern = | DecoderPattern_Bits of bitsLit| DecoderPattern_Mask of maskLit| DecoderPattern_Wildcard of ident| DecoderPattern_Not of decode_pattern
Source
type encoding = | Encoding_Block of ident * ident * instr_field list * opcode_value * expr * (int * bitsLit) list * stmt list * l
Source
and decode_body = | DecoderBody_UNPRED of l| DecoderBody_UNALLOC of l| DecoderBody_NOP of l| DecoderBody_Encoding of ident * l| DecoderBody_Decoder of instr_field list * decode_case * l
Source
type declaration = | Decl_BuiltinType of ident * l| Decl_Forward of ident * l| Decl_Record of ident * (ty * ident) list * l| Decl_Typedef of ident * ty * l| Decl_Enum of ident * ident list * l| Decl_Var of ty * ident * l| Decl_Const of ty * ident * expr * l| Decl_BuiltinFunction of ty * ident * (ty * ident) list * l| Decl_FunType of ty * ident * (ty * ident) list * l| Decl_FunDefn of ty * ident * (ty * ident) list * stmt list * l| Decl_ProcType of ident * (ty * ident) list * l| Decl_ProcDefn of ident * (ty * ident) list * stmt list * l| Decl_VarGetterType of ty * ident * l| Decl_VarGetterDefn of ty * ident * stmt list * l| Decl_ArrayGetterType of ty * ident * (ty * ident) list * l| Decl_ArrayGetterDefn of ty * ident * (ty * ident) list * stmt list * l| Decl_VarSetterType of ident * ty * ident * l| Decl_VarSetterDefn of ident * ty * ident * stmt list * l| Decl_ArraySetterType of ident * sformal list * ty * ident * l| Decl_ArraySetterDefn of ident * sformal list * ty * ident * stmt list * l| Decl_InstructionDefn of ident * encoding list * stmt list option * bool * stmt list * l| Decl_DecoderDefn of ident * decode_case * l| Decl_Operator1 of unop * ident list * l| Decl_Operator2 of binop * ident list * l| Decl_NewEventDefn of ident * (ty * ident) list * l| Decl_EventClause of ident * stmt list * l| Decl_NewMapDefn of ty * ident * (ty * ident) list * stmt list * l| Decl_MapClause of ident * mapfield list * expr option * stmt list * l| Decl_Config of ty * ident * expr * l
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>