package asli
Interpreter for Arm's Architecture Specification Language (ASL)
Install
Dune Dependency
Authors
Maintainers
Sources
0.2.0.tar.gz
md5=f4581fd209256823fa4d569ac96c8cee
sha512=fd4a74294beb9eeeafa80c9224b5dc30f5e5ebde4d53fa601929d283b6ca72154de313874321774914f738ac6f0d640e59452f7d03cb1db7b3a019b48b82e0d4
doc/asli.libASL/LibASL/Asl_ast/index.html
Module LibASL.Asl_ast
Source
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)"
>