diff options
author | johnvg | 2004-04-02 12:00:33 +0000 |
---|---|---|
committer | johnvg | 2004-04-02 12:00:33 +0000 |
commit | bde39f2cbeef6e4ee07149d429ab90b8ef894d3e (patch) | |
tree | df8bda341bb519b86aa4dc94e02c86e70b3dcbcd /frontend/syntax.dcl | |
parent | export strictness of argument of empty_cache (diff) |
implement foreign export with stdcall
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1483 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'frontend/syntax.dcl')
-rw-r--r-- | frontend/syntax.dcl | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/frontend/syntax.dcl b/frontend/syntax.dcl index 41eb1dd..e28c750 100644 --- a/frontend/syntax.dcl +++ b/frontend/syntax.dcl @@ -96,10 +96,17 @@ instance == FunctionOrMacroIndex , mod_type :: !ModuleKind , mod_imports :: ![ParsedImport] , mod_imported_objects :: ![ImportedObject] - , mod_foreign_exports :: ![IdentPos] + , mod_foreign_exports :: ![ParsedForeignExport] , mod_defs :: !defs } +:: ParsedForeignExport = + { pfe_ident :: !Ident + , pfe_line :: !Int + , pfe_file :: !FileName + , pfe_stdcall :: !Bool + } + :: ParsedModule :== Module [ParsedDefinition] :: ScannedModule :== Module (CollectedDefinitions (ParsedInstance FunDef) IndexRange) @@ -175,7 +182,7 @@ cIsNotAFunction :== False | PD_Instances [ParsedInstance ParsedDefinition] | PD_Import [ParsedImport] | PD_ImportedObjects [ImportedObject] - | PD_ForeignExport !Ident !{#Char} !Int + | PD_ForeignExport !Ident !{#Char} !Int !Bool /* if stdcall */ | PD_Generic GenericDef // AA | PD_GenericCase GenericCaseDef // AA | PD_Derive [GenericCaseDef] // AA @@ -1327,7 +1334,7 @@ instance == OverloadedListType = CP_Expression !Expression | CP_FunArg !Ident !Int // Function symbol, argument position (>=1) | CP_LiftedFunArg !Ident !Ident // Function symbol, lifted argument ident - + :: IdentPos = { ip_ident :: !Ident , ip_line :: !Int |