Hets - the Heterogeneous Tool Set

Copyright(c) Klaus Luettich and Christian Maeder and Uni Bremen 2002-2003
LicenseGPLv2 or higher, see LICENSE.txt
MaintainerChristian.Maeder@dfki.de
Stabilityprovisional
Portabilityportable
Safe HaskellSafe-Inferred

Common.Id

Contents

Description

This module supplies positions, simple and mixfix identifiers. A simple identifier is a lexical token given by a string and a start position.

  • A place is a special token within mixfix identifiers.
  • A mixfix identifier may have a compound list. This compound list follows the last non-place token!
  • Identifiers fixed for all logics

Synopsis

Documentation

newtype Range

position lists with trivial equality

Constructors

Range 

Fields

rangeToList :: [Pos]
 

concatMapRange :: (a -> Range) -> [a] -> Range

newPos :: String -> Int -> Int -> Pos

construct a new position

incSourceColumn :: Pos -> Int -> Pos

increment the column counter

showPos :: Pos -> ShowS

show a position

Tokens as Strings with positions that are ignored for Eq and Ord

type SIMPLE_ID = Token

simple ids are just tokens

mkSimpleId :: String -> Token

construct a token without position from a string

nullTok :: Token

null token

mkNumStr :: String -> Int -> String

create a numbered string

mkNumVar :: String -> Int -> Token

create a numbered simple identifier (for variables)

isSimpleToken :: Token -> Bool

test if the first character indicates a legal simple CASL identifier

catPosAux :: [Token] -> [Pos]

collect positions

catRange :: [Token] -> Range

collect positions as range

toRange :: Token -> [Token] -> Token -> Range

shortcut to get positions of surrounding and interspersed tokens

placeholder stuff

place :: String

the special place

isPlace :: Token -> Bool

is a place token

equality symbols

equalS :: String

also a definition indicator

exEqual :: String

mind spacing i.e. in e =e= e

typeTok :: Token

token for type annotations

mixfix identifiers with compound lists and its range

mkId :: [Token] -> Id

construct an Id from a token list

genNamePrefix :: String

a prefix for generated names

genToken :: String -> Token

create a generated simple identifier

genNumVar :: String -> Int -> Token

create a generated, numbered variable

genName :: String -> Id

create a generated identifier

mkGenName :: Id -> Id

create a generated identifier from a given one excluding characters

isGeneratedToken :: Token -> Bool

tests whether a Token is already a generated one

appendNumber :: Id -> Int -> Id

append a number to the first token of a (possible compound) Id, or generate a new identifier for invisible ones

injToken :: Token

the name of injections

mkUniqueName :: Token -> [Id] -> Id

projToken :: Token

the name of projections

typeId :: Id

the postfix type identifier

applId :: Id

the invisible application rule with two places

eqId :: Id

the infix equality identifier

exEq :: Id

show stuff

noShow :: Bool -> ShowS -> ShowS

shortcut to suppress output for input condition

showSepList :: ShowS -> (a -> ShowS) -> [a] -> ShowS

intersperse seperators

showIds :: [Id] -> ShowS

shows a compound list

showId :: Id -> ShowS

shows an Id, puts final places behind a compound list

splitting identifiers

splitMixToken :: [Token] -> ([Token], [Token])

splits off the front and final places

getListBrackets :: Id -> ([Token], [Token], [Id])

return open and closing list bracket and a compound list from a bracket Id (parsed by caslListBrackets)

reconstructing token lists

expandPos :: (Token -> a) -> (String, String) -> [a] -> Range -> [a]

reconstruct a list with surrounding strings and interspersed commas with proper position information that should be preserved by the input function

getPlainTokenList :: Id -> [Token]

reconstruct the token list of an Id including square brackets and commas of (nested) compound lists.

getTokenList :: String -> Id -> [Token]

reconstruct the token list of an Id. Replace top-level places with the input String

conversion from SIMPLE_ID

stringToId :: String -> Id

a string as Id

isSingle :: [a] -> Bool

efficiently test for a singleton list

isSimpleId :: Id -> Bool

test for a SIMPLE_ID

fixity stuff

placeCount :: Id -> Int

number of place in Id

isMixfix :: Id -> Bool

has a place

begPlace :: Id -> Bool

Id starts with a place

endPlace :: Id -> Bool

Id ends with a place

isPostfix :: Id -> Bool

starts with a place

isInfix :: Id -> Bool

starts and ends with a place

position stuff

posOfId :: Id -> Range

compute a meaningful position from an Id for diagnostics

tokenRange :: Token -> [Pos]

compute start and end position of a Token (or leave it empty)

mkTokPos :: String -> Pos -> [Pos]

sortRange :: [Pos] -> [Pos] -> [Pos]

joinRanges :: [[Pos]] -> [Pos]

idRange :: Id -> [Pos]

compute start and end position of a declared Id (or leave it empty). Do not use for applied identifiers where place holders are replaced.

class GetRange a where

This class is derivable with DrIFT. Its main purpose is to have a function that operates on constructors with a Range field. During parsing, mixfix analysis and ATermConversion this function might be very useful.

Minimal complete definition

Nothing

Methods

getRange :: a -> Range

rangeSpan :: a -> [Pos]

Instances

GetRange Bool 
GetRange Char 
GetRange Double 
GetRange Int 
GetRange () 
GetRange NamedObject 
GetRange Sentence 
GetRange Id 
GetRange Token 
GetRange Range 
GetRange IRI 
GetRange Name 
GetRange Annotation 
GetRange Semantic_anno 
GetRange AssocEither 
GetRange PrecRel 
GetRange Display_format 
GetRange Annote_text 
GetRange Annote_word 
GetRange Diagnosis 
GetRange Sentence 
GetRange Item 
GetRange Entity 
GetRange QName 
GetRange RDFEntity 
GetRange Axiom 
GetRange TurtleDocument 
GetRange RawSymb 
GetRange RawSymb 
GetRange OntologyDocument 
GetRange Axiom 
GetRange SYMB_ITEMS 
GetRange SYMB_OR_MAP 
GetRange SYMB_MAP_ITEMS 
GetRange NAME_OR_SEQMARK 
GetRange TERM_SEQ 
GetRange TERM 
GetRange ATOM 
GetRange ImplEq 
GetRange AndOr 
GetRange BOOL_SENT 
GetRange QUANT 
GetRange SENTENCE 
GetRange IMPORTATION 
GetRange MODULE 
GetRange COMMENT 
GetRange PHRASE 
GetRange TEXT 
GetRange TEXT_META 
GetRange BASIC_ITEMS 
GetRange BASIC_SPEC 
GetRange Symbol 
GetRange MaudeText 
GetRange Symbol 
GetRange Sentence 
GetRange ComorphismDef 
GetRange LogicDef 
GetRange BASIC_SPEC 
GetRange EXP 
GetRange Symbol 
GetRange FORMULA 
GetRange BASIC_SPEC 
GetRange Symbol 
GetRange FORMULA 
GetRange BASIC_SPEC 
GetRange Symbol 
GetRange SYMB_OR_MAP 
GetRange TYPE 
GetRange SYMB 
GetRange SYMB_KIND 
GetRange SYMB_MAP_ITEMS 
GetRange SYMB_ITEMS 
GetRange OP_SYMB 
GetRange PRED_SYMB 
GetRange QUANTIFIER 
GetRange Constraint 
GetRange Equality 
GetRange Relation 
GetRange Junctor 
GetRange VAR_DECL 
GetRange COMPONENTS 
GetRange ALTERNATIVE 
GetRange DATATYPE_DECL 
GetRange PRED_HEAD 
GetRange PRED_TYPE 
GetRange OP_HEAD 
GetRange OP_TYPE 
GetRange OpKind 
GetRange SortsKind 
GetRange Symbol 
GetRange RawSymbol 
GetRange RSTables 
GetRange RSSymbol 
GetRange RSScheme 
GetRange RSRelationships 
GetRange RSRel 
GetRange RSQualId 
GetRange RSRelType 
GetRange Symbol 
GetRange Component 
GetRange ConstraintFORMULA 
GetRange DL_FORMULA 
GetRange CardType 
GetRange COL_SIG_ITEM 
GetRange PROCESS 
GetRange CommType 
GetRange TypedChanName 
GetRange FQ_PROCESS_NAME 
GetRange ProcProfile 
GetRange PROC_ALPHABET 
GetRange RENAMING 
GetRange Rename 
GetRange RenameKind 
GetRange EVENT_SET 
GetRange EVENT 
GetRange PARM_PROCNAME 
GetRange PROC_ITEM 
GetRange CHANNEL_DECL 
GetRange CspBasicExt 
GetRange CspSen 
GetRange CspRawSymbol 
GetRange CspSymbol 
GetRange C_FORMULA 
GetRange MODALITY 
GetRange COCOMPONENTS 
GetRange COALTERNATIVE 
GetRange CODATATYPE_DECL 
GetRange C_SIG_ITEM 
GetRange C_BASIC_ITEM 
GetRange EM_FORMULA 
GetRange FormPrefix 
GetRange BoxOp 
GetRange EM_SIG_ITEM 
GetRange MODALITY 
GetRange ModOp 
GetRange EM_BASIC_ITEM 
GetRange ModDefn 
GetRange FrameForm 
GetRange SYMB_OR_MAP 
GetRange SYMB_MAP_ITEMS 
GetRange SYMB 
GetRange SYMB_ITEMS 
GetRange FORMULA 
GetRange BASIC_ITEMS 
GetRange BASIC_SPEC 
GetRange PRED_ITEM 
GetRange Symbol 
GetRange H_FORMULA 
GetRange NOMINAL 
GetRange MODALITY 
GetRange H_SIG_ITEM 
GetRange RIGOR 
GetRange H_BASIC_ITEM 
GetRange M_FORMULA 
GetRange MODALITY 
GetRange M_SIG_ITEM 
GetRange RIGOR 
GetRange M_BASIC_ITEM 
GetRange Context 
GetRange KeyDef 
GetRange KeyAtt 
GetRange RangedProp 
GetRange Rule 
GetRange Relation 
GetRange RelType 
GetRange Concept 
GetRange Sen 
GetRange RawSymbol 
GetRange Symbol 
GetRange Sign 
GetRange TermExt 
GetRange FunDef 
GetRange FplOpItem 
GetRange FplSortItem 
GetRange FplExt 
GetRange Number 
GetRange AtomicWord 
GetRange Name 
GetRange FormulaData 
GetRange GeneralFunction 
GetRange GeneralData 
GetRange GeneralTerm 
GetRange StatusValue 
GetRange InferenceStatus 
GetRange InferenceItem 
GetRange FormulaItem 
GetRange InfoItem 
GetRange TheoryName 
GetRange FileSource 
GetRange ExternalSource 
GetRange IntroType 
GetRange ParentInfo 
GetRange DagSource 
GetRange Source 
GetRange PrincipalSymbol 
GetRange SystemTerm 
GetRange DefinedFunctor 
GetRange DefinedPlainTerm 
GetRange DefinedAtom 
GetRange DefinedTerm 
GetRange PlainTerm 
GetRange FunctionTerm 
GetRange Term 
GetRange DefinedPred 
GetRange DefinedProp 
GetRange DefinedPlainFormula 
GetRange DefinedType 
GetRange AssocConnective 
GetRange THFUnaryConnective 
GetRange THFPairConnective 
GetRange Quantifier 
GetRange THFQuantifier 
GetRange THFConnTerm 
GetRange THFSequent 
GetRange THFAtom 
GetRange THFBinaryType 
GetRange THFUnitaryType 
GetRange THFTopLevelType 
GetRange THFSubType 
GetRange THFTypeableFormula 
GetRange THFTypeFormula 
GetRange THFTypedConst 
GetRange THFVariable 
GetRange THFQuantifiedFormula 
GetRange THFUnitaryFormula 
GetRange THFBinaryTuple 
GetRange THFBinaryFormula 
GetRange THFLogicFormula 
GetRange THFFormula 
GetRange FormulaRole 
GetRange Annotations 
GetRange Include 
GetRange SystemComment 
GetRange DefinedComment 
GetRange Comment 
GetRange TPTP_THF 
GetRange Type 
GetRange SymbolTHF 
GetRange BasicSpecTHF 
GetRange SignTHF 
GetRange Constraint 
GetRange Link 
GetRange Object 
GetRange Model 
GetRange MultiplicityElement 
GetRange Property 
GetRange TypedElement 
GetRange Class 
GetRange Datatype 
GetRange DataTypeOrClass 
GetRange Type 
GetRange TypeOrTypedElement 
GetRange NamedElement 
GetRange Metamodel 
GetRange STRING 
GetRange OCL 
GetRange RelInvok 
GetRange WhenWhere 
GetRange PropertyTemplate 
GetRange ObjectTemplate 
GetRange Domain 
GetRange PrimitiveDomain 
GetRange RelVar 
GetRange Relation 
GetRange PropKey 
GetRange Key 
GetRange Transformation 
GetRange Sen 
GetRange Sign 
GetRange Pattern 
GetRange RelationSen 
GetRange Sen 
GetRange Sign 
GetRange TPTP 
GetRange SPTerm 
GetRange SFSymbol 
GetRange HsDecls 
GetRange SYMB_OR_MAP 
GetRange SYMB_MAP_ITEMS 
GetRange SYMB 
GetRange SYMB_ITEMS 
GetRange CMD 
GetRange EXPRESSION 
GetRange BASIC_ITEM 
GetRange BASIC_SPEC 
GetRange VAR_ITEM 
GetRange OP_ITEM 
GetRange Symbol 
GetRange SYMBORMAP 
GetRange SYMBMAPITEMS 
GetRange SYMB 
GetRange SYMBITEMS 
GetRange ID 
GetRange FORMULA 
GetRange BASICITEMS 
GetRange BASICSPEC 
GetRange PREDITEM 
GetRange Symbol 
GetRange TypeArg 
GetRange VarDecl 
GetRange Term 
GetRange OpAttr 
GetRange TypeScheme 
GetRange Type 
GetRange TypePattern 
GetRange BasicSpec 
GetRange RawSymbol 
GetRange Symbol 
GetRange Constrain 
GetRange Sentence 
GetRange LibName 
GetRange AnyLogic 
GetRange Text 
GetRange Mor 
GetRange Spc_Wrap 
GetRange Frm_Wrap 
GetRange TH_BASIC_ITEM 
GetRange G_symb_map_items_list 
GetRange G_symb_items_list 
GetRange G_symbol 
GetRange G_basic_spec 
GetRange RELATION_REF 
GetRange TERM_OR_ENTITY_REF 
GetRange CORRESPONDENCE 
GetRange LABELED_ONTO_OR_INTPR_REF 
GetRange Logic_name 
GetRange Logic_code 
GetRange LogicDescr 
GetRange FIT_ARG 
GetRange G_hiding 
GetRange G_mapping 
GetRange MINIMIZATION 
GetRange APPROXIMATION 
GetRange RESTRICTION 
GetRange RENAMING 
GetRange SPEC 
GetRange FIT_ARG_UNIT 
GetRange UNIT_TERM 
GetRange UNIT_BINDING 
GetRange UNIT_EXPRESSION 
GetRange UNIT_REF 
GetRange REF_SPEC 
GetRange UNIT_SPEC 
GetRange UNIT_DECL_DEFN 
GetRange ARCH_SPEC 
GetRange VSEforms 
GetRange Procdecls 
GetRange ItemNameMap 
GetRange ALIGN_ARITY 
GetRange ALIGN_ARITIES 
GetRange MODULE_TYPE 
GetRange EQUIV_TYPE 
GetRange VIEW_TYPE 
GetRange IMPORTED 
GetRange PARAMS 
GetRange GENERICITY 
GetRange DownloadItems 
GetRange LIB_ITEM 
GetRange LIB_DEFN 
GetRange Text 
GetRange a => GetRange [a] 
GetRange a => GetRange (Maybe a) 
GetRange a => GetRange (Set a) 
GetRange a => GetRange (Annoted a) 
GetRange (TiDecl PNT) 
GetRange f => GetRange (TERM f) 
GetRange f => GetRange (FORMULA f) 
GetRange f => GetRange (PRED_ITEM f) 
GetRange f => GetRange (OP_ATTR f) 
GetRange f => GetRange (OP_ITEM f) 
GetRange f => GetRange (SORT_ITEM f) 
GetRange f => GetRange (TH_FORMULA f) 
GetRange s => GetRange (TH_BSPEC s) 
GetRange s => GetRange (S2 s) 
GetRange (Ranged a) 
(GetRange a, GetRange b) => GetRange (a, b) 
(GetRange s, GetRange a) => GetRange (SenAttr s a) 
(GetRange s, GetRange f) => GetRange (SIG_ITEMS s f) 
(GetRange b, GetRange s, GetRange f) => GetRange (BASIC_ITEMS b s f) 
(GetRange b, GetRange s, GetRange f) => GetRange (BASIC_SPEC b s f) 

getPosList :: GetRange a => a -> [Pos]